Thumbnail

Sound Servo (PC Mic)

Maps PC microphone volume to servo positions - control multiple servos (e.g., robotic mouth) with scalar, min/max and invert options.

How to add the Sound Servo (PC Mic) robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Audio category tab.
  5. Press the Sound Servo (PC Mic) icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Sound Servo (PC Mic) robot skill.


How to use the Sound Servo (PC Mic) robot skill

The Sound Servo (PC Mic) skill uses the volume (amplitude) coming from your computer’s audio input device (your microphone) to move a servo. In simple terms: quiet = one servo position and loud = another servo position, with smooth movement in between.

Common beginner use: robot mouth movement. When you talk into the mic, the servo can open/close a mouth as your voice gets louder/softer.

You can control more than one servo in two ways:

  • Use Multi Servo in the settings to mirror the same movement to additional servos (great for multiple mouth parts, eyebrows, etc.).
  • Add multiple instances of this skill (useful if you want different settings/ranges for different servos).
Important: Robots are noisy (motors, servos, speakers). For best results, do not mount the microphone on the robot. Place the mic on the PC/laptop, wear a headset mic, or place a mic in the room away from the robot.

How It Works (Beginner Explanation)

This skill constantly measures your microphone’s loudness. That loudness becomes a number (the Level), and then:

  • The Level is multiplied by a Scalar (a sensitivity multiplier).
  • The result is converted into a servo position between your Minimum and Maximum position settings.

If the servo hardly moves, increase the Scalar and/or increase your mic input level in Windows. If the servo slams to max too easily, reduce the Scalar and/or reduce the mic input level.


Main Window

Sound Servo (PC Mic) main window annotated

1. Level Value

Shows the current sound level detected by your microphone input. By default, the skill uses the Right channel. If you speak or make noise and this number doesn’t change, Windows likely isn’t using the microphone you think it is (see the Resources section below).

2. Servo Position

Displays the servo position being sent, limited by the Minimum and Maximum values you set. This value comes from: Level × Scalar, then mapped into your servo range.

3. Pause Checkbox

Temporarily stops listening to the microphone. Use this when you want to adjust settings without the servo constantly moving, or when testing your robot.

4. Audio Waveform

A visual “is my mic working?” display. If you talk and you see waveform movement, ARC is receiving audio.


Settings

Sound Servo (PC Mic) settings window annotated

Renames the skill instance. Helpful when you have more than one Sound Servo skill in the same ARC project.

Select which EZ-B (controller) the servo is connected to. If you only have one EZ-B connected, it is usually Index 0.

How often ARC reads the mic level and updates the servo. Lower values (faster updates) can look smoother but may cause more jitter. The range is 100 to 60000 ms, default is 100 ms.
Beginner tip: Start with the default. If the mouth looks “laggy,” try lowering slightly; if it looks too twitchy, try increasing.

Select the digital port on the EZ-B where the servo signal wire is connected (example: D0, D1, etc.).

A multiplier that makes the microphone level create a larger or smaller servo movement. The range is 0.25 to 9.75, default is 1.5.
  • Servo barely moves: increase Scalar (ex: 1.5 → 3.0).
  • Servo hits max too easily: decrease Scalar (ex: 1.5 → 1.0).

The lowest servo position the skill will send (often “mouth closed”).

Controls: left-click to adjust; right-click to type a value.
Beginner tip: Choose a value that does not strain the servo or the mouth mechanism.

The highest servo position the skill will send (often “mouth open”).

Controls: left-click to adjust; right-click to type a value.
Beginner tip: Start with a conservative max (smaller opening), then increase slowly to avoid binding.

Lets you choose additional servos to follow the same movement as the “master” servo. This is useful when one microphone level should move multiple parts together.

Reverses the direction of the servo movement. Use this if the servo moves the “wrong way” (for example, it opens when it should close).

Stores the microphone Left channel level in a variable. Only used with stereo microphones.

Stores the microphone Right channel level in a variable. This is the default channel used by most mono microphones.

Quick Start (Step-by-Step)

  1. Connect a servo to your EZ-B and make sure it works using a basic servo control first.
  2. Add the Sound Servo (PC Mic) skill to your ARC project.
  3. In Settings, choose your Board Index and Port.
  4. Set Minimum (mouth closed) and Maximum (mouth open) positions.
  5. Talk into the microphone and watch the Waveform and Level Value.
  6. If movement is too small or too big, adjust the Scalar (and optionally your Windows mic volume).
  7. If the motion is backwards, enable Invert Direction.

Requirements

Headset or External Mic (Strongly Recommended)

Example headset microphone

A headset or external mic usually works much better than a laptop’s built-in mic. Built-in mics often pick up motor noise, room echo, and even the robot’s own speaker audio. A closer mic (headset) gives cleaner sound, which results in smoother and more predictable servo motion.


Resources: Configure Your Microphone in Windows

If the waveform/level isn’t responding (or the servo movement is weak), you may need to select the correct microphone and adjust the input gain.

Windows microphone input settings example
  1. Right-click the speaker icon in the Windows system tray.
  2. Select Open Sound settings.
  3. Under Input, select the microphone you want to use. Speak and confirm the on-screen input meter (VU meter) moves.
  4. Click Device properties and adjust the Volume slider. (Many users end up around ~78, but your setup may differ.)
  5. Aim for your normal speaking voice to register around the middle of the input meter—this gives the skill room to detect quiet and loud sounds.
Troubleshooting tip: If the robot’s mouth is always open or always closed, you’re usually either (1) listening to the wrong input device, (2) the mic volume is too high/low, or (3) the Scalar needs adjustment.

ARC Pro

Upgrade to ARC Pro

Get access to the latest features and updates before they're released. You'll have everything that's needed to unleash your robot's potential!

Author Avatar
PRO
Canada
#1  

@DJ I was using this skill today and it turns out, in the "Add New Robot Skill" Audio window, there's a skill called "Sound servo (EZB)" that is a duplicate of "Sound servo (PC Mic)".

And No, I don't have it confused with "Sound servo (EZB Playback)", I know that it's a duplicate because if I add the "Sound servo (PC Mic)" to a project, then add "Sound servo (EZB)" I get the following error:

User-inserted image

I just wanted to let you know before the next release.

Author Avatar
PRO
Synthiam
#2  

Ah i see that - fixed for next update:) thanks!