Sound Servo (PC Speaker)

How to add the Sound Servo (PC Speaker) 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 Speaker) 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 Speaker) robot skill.

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

Use your PC's audio output (speakers) to control servos! You can control many servos with this skill by using the Multi Servo option in the settings or adding multiple instances of the skill. Specify the scalar to increase the dynamic range of the audio about the servo's position. Don't worry if that sounds confusing; play with it, and see what you get.

Use this skill to move the mouth of your robot. If a track is playing, you can move your robot's mouth to the audio level.

Main Window

1. Level Value
This is the detected sound level being sent to the PC speakers.

2. Servo Position
Displays the current servo position between the maximum and minimum values in the Settings menu. This value is controlled by the level value multiplied by the scalar in the Settings menu.

3. Pause Checkbox
This checkbox pauses the capture of audio.

4. Audio Waveform
This gives visual feedback for your PC's audio output.


1. Title Field
This field contains the title of the skill. You can change it if you'd like. *Note: Changing the title will also change the title in the controlCommand() associated with this skill.

2. Board Index Drop-down
Select the EZ-B index number that your servo is connected to.

3. Update Speed Drop-down
This is the sample rate that the level that will be detected. The selectable range is 100 to 60000, and the default value is 100 milliseconds.

4. Port Drop-down
Select the digital port that your servo is connected to.

5. Scalar Drop-down
This selectable multiplier will scale the level value to a servo position. The selectable range is 0.25 to 9.75, and the default scale value is 1.5.

6. Minimum Position Adjust
Press the left mouse button to adjust the minimum servo position value. Right-click to enter it with the keyboard.

7. Maximum Position Adjust
Press the left mouse button to adjust the maximum servo position value. Right-click to enter it with the keyboard.

8. Multi Servo Edit Window
This window allows you to select multiple servos that you'd like to mirror the movement of the master servo.

9. Invert Direction Checkbox
This checkbox lets you invert the servo's direction when a position value is sent. Ex: When normally a 180 position value makes the servo move all the way left, with the inverted directed checkbox enabled, it will move right when 180 is sent.

10. Variable Field
This variable is for the detected audio output level.


Upgrade to ARC Pro

Stay on the cutting edge of robotics with ARC Pro, guaranteeing that your robot is always ahead of the game.


The variable is called "$SoundLeft". Is there a $SoundRight? I would like to split my sound track so that I can have my robot monitor the left track for the voice (and thus have the mouth open) and the right track for the music.

Thomas Messerschmidt Creator of Simone the A.I. Fembot