Soundboard (EZB)

+ How To Add This Control To Your Project (Click to Expand)
  1. Load the most recent release of ARC.
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Control from the button ribbon bar in ARC.
  4. Choose the Audio category tab.
  5. Press the Soundboard (EZB) icon to add the control to your project.
This soundboard will play audio files through the EZ-B v4 speaker. You may load WAV or MP3 files into the library to have multiple audio files. Use the ControlCommand() scripts to trigger specific audio files.

Main Window

1. Stop Button
This button stops the audio coming from the Soundboard.

2. Clean Button
If audio files are deleted from the tracklist they will leave a blank row. This button removes the blank rows from the tracklist.

3. Clipping Indicator
If the volume level bar is increased too high this indicator will turn red and let you know that the audio is clipping. Clipping is a form of audio distortion where the top and bottom of the sound wave are "clipped" off resulting in lower quality sound at a higher volume.

4. Volume Display
This displays the current volume percentage coming from the Soundboard. This value can be from 1(lowest) to 200% (highest) depending on the volume slider's position.

5. Volume Slider
This slider adjusts the volume of the audio coming from the Soundboard.

6. Track Number Column
This column is where the track number is listed. These numbers are important when using controlCommand() scripts.

7. Tracklist Column
This column is where the track titles (+ file format) are listed. Left-click on this area to add a track to the corresponding numbered row.

8. Track Management Buttons
These buttons play the audio, edit the track to include timed scripts, and delete the track.


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
Use this drop-down to select the board number that your EZ-B v4 represents. Double-check the number in the connection skill.

3. Get Music! Button
If you are connected to the internet, this button links you to the where you can download royalty-free music.

How to Use Soundboard (EZB)

1) Add the Soundboard (EZB) Skill to your ARC project (Project -> Add Skill -> Audio -> Soundboard (EZB)).

2) Click on the skill's Track List then find and add an .mp3 or .wav file to the Soundboard.

3) Ensure you are connected to an EZ-B v4 with the ARC software then press the play button and listen for audio to come out of the EZ-B v4 speaker.

Track Editor

The Track Editor is a unique feature to this skill. It allows you to add scripts to multiple timestamps in the track in order to execute robot movements (or other actions) that correspond with the audio track. Simply right-click on the audio waveform to have access to the following options:

  • Add Script Here: Adds a script to the selected timestamp.

  • Delete selected script: Deletes the script from the timestamp.

  • Play from here: Plays the audio track from the selected position.

  • Set selection start: Sets the audio track starting position for the selected timestamp.

  • Set Selection End: Sets the audio track finishing position for the selected timestamp.

  • Clear Range: Clears any "Start" and/or "End" positions added to the track.

  • Delete Selection: Deletes everything in between any set "Start and "End" positions.

  • Cut Selection: Cuts everything in between any set "Start and "End" positions.

  • Copy Selection: Copies everything in between any set "Start and "End" positions.

  • Paste Selection: Pastes everything in between any set "Start and "End" positions.

  • Delete Everything Before Here: Deletes the part of the waveform before the selected area.

  • Delete Everything After Here: Deletes the part of the waveform after the selected area.

  • Actions: Adds Auto Position actions instantly to the track into order to create quick dances and animations.

Code Samples

Every Soundboard ControlCommand() is published in the Cheat Sheet tab. Pressing the Cheat Sheet tab will display the ControlCommands() for all skills, including the Soundboard. To play/stop a track from a script, you would use commands such as:

controlCommand("Soundboard v4", "Track_0")
controlCommand("Soundboard v4", "Track_Random")
controlCommand("Soundboard v4", "Stop")


An EZ-B v4 I/O Controller.


To create your own sound recordings or edits to play in the Soundboard you can use open source audio software such as Audacity. Note that the sound files will have to be saved in .wav or .mp3 format. Here's a community tutorial on using Audactiy for sound clips.

There's a also a community tutorial for using the Soundboard skill in general: here

Related Content

Soundboard PC & Soundbard EZ-B Tutorial.

Soundboard PC & Soundbard EZ-B Tutorial.

This tutorial will guide you through how to set up and use the "Soundboard" controls to give your robot the ability to...
The Robot Program Episode 009: Getting Six To Move

The Robot Program Episode 009: Getting Six To Move

This lesson will demonstrate how to connect to and move the Revolution Six robot. Follow along with The Robot Program...
The Robot Program Episode 006: Introducing EZ-Builder

The Robot Program Episode 006: Introducing EZ-Builder

This lesson introduces the EZ-Builder Robot Software by exploring options and describing features. At the end of this...
The Robot Program Episode 003: Getting JD To Move

The Robot Program Episode 003: Getting JD To Move

This lesson will demonstrate how to connect to and move the Revolution JD robot. Follow along with The Robot Program...
Breaking Out The Sound From The V4 Ezb

Breaking Out The Sound From The V4 Ezb

Hi all, EDIT: the below post has been changed to reflect changes to correct wrong information and show the successes I...
Break Out Sound Hack: Ez-B V4 External Sound Hack

Break Out Sound Hack: Ez-B V4 External Sound Hack

Hey everyone! Following Dave Schulpius's tutorial for adding a 3.5mm headphone jack to the ez-b I successfully connected...
Amplifying Audio From A Iotiny

Amplifying Audio From A Iotiny

Im using the soundboard exb to play audio files but they are very faint.  Is there a way to add an amplifier like on the...

Soundboards EZB And PC

It my understanding after studying tutorials that Soundboard PC can't edit a file. Only the Soundboard EZB allows you to edit the sound file,...

How Play Audio Local On Pc?

Im new here and i have a simple Question? How can i Play MP3 files on Local PC? (The PC is IN the Robot so i want to use the 3.5mm line Out from the...
Soundboard Ticking-Noise Scriptcode - Energy Pulse

Soundboard Ticking-Noise Scriptcode - Energy Pulse

Dear Synthiam Crew and Friends, its an old problem since the beginning of EZB. The Ticking/ Clicking-Noise from the EZB...
Hi there,

I have been trying to get my JD robot to play sounds and songs in response to some voice commands. I used the block ControlCommand(soundboard_v4, "Track_1") in the speech recognition settings but when I use the command, the robot does not play the sounds. I am able to play the sounds from the soundboard only if I go in and edit the tracks. It does not let me play by pressing the play button on the soundboard window either.

What have I been doing wrong? There must be something I have missed.
#2   — Edited
Good morn, 

When you open ARC - turn off your anti -virus - I can't connect  to ARC with mine.

I just tested - I made a small mp3 file in audacity. called test5.mp3

Opened ARC,  clicked on audio, opened soundboard (PC) loaded the file, then I added "speech recognition, added in the java script with controlCommand("Soundboard", "Track_0");

Too come out of your "robot" - open ARC , you need to connect to robot (EZB4) open soundboard EZB  add - speech recognition - add in the in the java script with - controlCommand("Soundboard v4", "Track_0");

I only had one track, so it is "Track_0"   -  I added a second track, so it is "Track_1" - and so on, and on...

In the computer world, we count 0 , 1, 2 ,3 etc...  not 1, 2, 3 etc...

It works well.

Hope this helps you

#3   — Edited
Hello @Kat777

I noticed that there's an underscore in your code that shouldn't be there on "Soundboard v4".

Otherwise, the track should play in the Soundboard skill when you press play. I've never seen any issues with this unless a script is already using the Soundboard control or the volume is at 0.
#6   — Edited
Hi guys,

Here is an update. I have the latest version of ARC and my commands were written the same as in the cheat sheet. The underscore in my earlier comment was a typo. I managed to get my program working by switching off the speech recognition controls after activating the sequence using a voice command. If I leave the voice recognition on, my program terminates after taking in the background noise.

One thing I have noticed though, is some of the sounds I have included in my program do not play all the way through. I have included a short "BOING" sound that should play for 2 seconds but it gets cut 200 ms in. Is there a way of fixing this that you can recommend?
You can make them a bit longer with silence at the end. If they’re short the network buffering may cut it short. That’s pretty much at the mercy of the operating system and any networking hardware. 

What do you mean by switching off the speech recognition controls? Do you mean that they’re removed/deleted from the project?

lastly, is the microphone a Bluetooth connection?
Hi DJ,

I'll try adding some silence on the end of the shorter tracks.

By switching off the speech recognition controls I meant I click the pause button on the speech recognition window in ARC so that the speech recognition is not picking up the background sounds and causing the program to cancel prematurely.

At the moment, I have been using my laptop's built-in microphone not a Bluetooth enabled device. Going to invest in a pair of noise-cancelling headphones eventually.
#9   — Edited
Are you able to reproduce that behavior of causing ARC to cancel prematurely? If so, I’d like a screenshot of the error if possible. Being at the mercy of OS hardware drivers makes diagnosing these things challenging sometimes. 

A copy of the error message should get us aligned to find out what’s going on

Ps / answers to this question are specific to speech recognition so I have moved them to here:
#10   — Edited
Update: I added 1 second of silence to each end of my "boing" sound mp3 using Audacity and reuploaded the track to my soundboard. The sound should play for about 0.8 seconds in total (2.8 sec including the start and end silences). It runs how it should when I press play on the soundboard, but when I try to play the sound it as part of a bigger program, it plays the first 0.2 seconds and then moves onto the next part of the program. 

I think if worst comes to the worst, I'll try to use a different track for my audio (a longer sound) but the weird thing is that this cutting off effect has happened with one of my longer tracks too.
#11   — Edited
It could be that your script is not pausing long enough for the sound to play before it moves to the next command. Try inserting a sleep command after the command to play the sound. In your case it should be a bit longer then 2.8 seconds. Three seconds should be good. The command should look like this:

If you have a sleep command then make sure it's 3 seconds or longer. This will pause the script until the sound is played before moving to the next command. 

Let us know how it goes.
#12   — Edited
Hurrah! It worked! The key was making the sleep time longer than the duration of the sound played. Thank you so much, Dave :)
Wow, I'm glad I was able to help and you found a solution. It's an old problem that a lot of people run into. Not really a problem but the way scripting works. Sometimes it's hard to understand how a script processes commands and what happens as it runs. 

Often I'll want two actions to happen at the same time without a pause that normally would have the second command cancel out or stop the first action. Kinda like what happened to you with your sound file. To make this work I'll make a second script with the second command action. Then in the first script that holds the first command, after that command is executed, I'll state a (ControlCommand) to start that second script. Because of Windows ability to do Multithreading both commands will run from the two different scripts. That is as long as they are not using the same control like a sound board. 

Have fun! Keep us posted on your progress. We love this stuff!
#14   — Edited
I agree Dave, I have noticed the "sleep" has to be longer in many situations.

Kat777, check out the Speech Synthesis below , I explained how to add all the windows hidden voices for you.

"Sleep" is a nice command that needs to be used often even though EZ Script is blazing fast. However you need to time the action you are waiting for yourself and figure out how long to make the sleep time. Usually not a big issue. However sometimes a better and more elegant command to use is "Wait". It's a little more involved to use then "Sleep" but more friendly to the command process and will make things more "automatic". Using the proper wait command you won't have to personally time your actions. This will keep something from starting before you want it to or cut some other action off. There are many versions of this command. To see all of them, in ARC, just do a "wait" search inside an EZ Script control under the "Script Help" tab.
#16   — Edited
I see that in Ez script, not so much in the java or python  tabs

Thanks Dave for bringing up the "wait" function.

I know nothing at this point about writing Java or python scripts.
#18   — Edited
EZ script does it all anyway

I am happy there is EZ script, it reminds me where we all came from EZ -Robot -  it was easy :-)

#19   — Edited
Arc doesn’t support Java. It does use JavaScript, however. It has a sleep command documented here:

ezscript is actually very slow in comparison to JavaScript. 

A more efficient option is to wait until the sound is completely played by monitoring the audio status variable in a loop. Add a sound (wait) in the Blockly UI and take a look at the JavaScript code.

here’s an example screenshot since I’m on my phone 
User-inserted image

and I created the code example by adding a sound (wait) in blockly 
User-inserted image