Play WAV/MP3 via EZ-B v4, manage tracks, add timed scripts for synced robot actions, control via ControlCommand(), volume and clipping indicators.
How to add the Soundboard (EZB) robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Audio category tab.
- Press the Soundboard (EZB) 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 Soundboard (EZB) robot skill.
How to use the Soundboard (EZB) robot skill
The Soundboard (EZB) Skill lets your robot play sound files through the EZ-B v4 speaker. You can load WAV or MP3 files into the Soundboard list (track list). When you add a file, ARC automatically converts it into a format the EZ-B v4 can play.
You can play tracks by clicking the play button in the Skill, or by using ControlCommand() in scripts
(for example: when a button is pressed, when speech is recognized, or when an animation starts).
Main Window
1. Stop Button
Stops audio that is currently playing from this Soundboard.
2. Clean Button
If you delete tracks, the list can show empty (blank) rows. Clean removes those blank rows and re-compacts the list.
This is helpful to keep track numbers tidy.
3. Clipping Indicator
Turns red when the audio is too loud and becomes distorted (clipping).
If you see clipping, lower the volume slider to improve sound quality.
4. Volume Display
Shows the current Soundboard volume as a percentage. It ranges from 1% (very quiet) up to 200% (very loud).
5. Volume Slider
Adjusts the playback volume for this Soundboard. If you hear distortion, reduce this slider until the clipping indicator stays off.
6. Track Number Column
Shows the track number for each row. These numbers matter because scripts use them (example: Track_0 plays the first track).
7. Tracklist Column
Shows each track’s filename and format. Left-click in this area to choose an audio file and place it on that row.
8. Track Management Buttons
Buttons for each track let you:
Play the audio,
Edit the track (add timed scripts),
or Delete it from the list.
Settings
1. Title Field
This is the name of the Skill as it appears in your ARC project.
You can rename it to something like Robot Sounds or Dance Music.
ControlCommand() calls.
Example: if you rename it from Soundboard v4 to Robot Sounds, then your script must use
controlCommand("Robot Sounds", ...).
2. Board Index Drop-down
Select which EZ-B v4 this Soundboard should use.
If you only have one EZ-B connected, this is usually Board 0.
If you have multiple boards, match this to the board number shown in your Connection skill.
3. Get Music! Button
Opens freemusicarchive.org where you can download royalty-free music
(internet connection required).
How to Use Soundboard (EZB) (Beginner Steps)
-
Add the Skill
In ARC go to: Project → Add Skill → Audio → Soundboard (EZB). -
Add an audio file
Click in the Tracklist column on an empty row, then select a.mp3or.wavfile. The file will be added and converted automatically. -
Connect to the EZ-B v4
Make sure ARC is connected to your EZ-B v4 using the appropriate connection skill. If you are not connected, the Soundboard cannot play through the EZ-B speaker. -
Press Play
Click the track’s Play button and confirm you hear audio from the EZ-B v4 speaker. -
(Optional) Adjust volume
Use the Volume Slider. If the clipping indicator turns red or the sound is harsh, reduce the volume.
Track Editor (Timed Scripts)
The Track Editor lets you synchronize robot actions with audio. You can place scripts at specific timestamps so ARC can do things like: move servos, change LEDs, start an animation, or trigger other skills while the sound plays.
How to access the editor: Click a track’s Edit button (in the Track Management Buttons). Inside the editor, right-click on the waveform to see options.
- Add Script Here: Adds a script at the selected timestamp.
- Delete selected script: Removes the script from that timestamp.
- Play from here: Plays starting from the clicked point (useful for testing timing).
- Set selection start: Marks the start of a selection range.
- Set Selection End: Marks the end of a selection range.
- Clear Range: Clears the selection start/end markers.
- Delete Selection: Deletes the selected audio portion.
- Cut Selection: Cuts the selected audio portion (remove and place on clipboard).
- Copy Selection: Copies the selected audio portion.
- Paste Selection: Pastes audio from the clipboard into the track.
- Delete Everything Before Here: Deletes audio from the start up to the clicked point.
- Delete Everything After Here: Deletes audio from the clicked point to the end.
- Actions: Automatically inserts “Auto Position” actions to quickly create simple dances/animations.
Control Commands (Playing Sounds from Scripts)
This Skill supports ControlCommand(), so you can trigger sounds from any ARC script (for example, from buttons, events, speech recognition, or an Auto Position action).
You can find the exact commands for your project by opening the Cheat Sheet tab in ARC (it lists control commands for all skills).
Play a specific track by number
controlCommand("Soundboard v4", "Track_0")
Replace Track_0 with the track number you want (example: Track_10 plays track 10).
Track numbers come from the Track Number Column.
Play a track but ignore timed scripts in the Track Editor
controlCommand("Soundboard v4", "Track_0", "ignoreScript")
Useful when you want only the sound, without any movements/actions you embedded into the audio using the Track Editor.
Play a random track
controlCommand("Soundboard v4", "Track_Random")
Stop playback
controlCommand("Soundboard v4", "Stop")
"Soundboard v4") must match your Soundboard Skill title exactly.
If you renamed the Skill, update your scripts accordingly.
Requirements
Requires an EZ-B v4 I/O Controller.
Resources (Creating and Editing Audio)
To record or edit your audio files, you can use free, open-source audio software like
Audacity.
Save your final files as .wav or .mp3 before adding them to the Soundboard.
- Audacity sound editing tutorial: How To Edit Sounds Files For Use In EZ-Robot
- General Soundboard tutorial: Soundboard (PC Soundboard + EZ-B) Tutorial
Related Tutorials
Break Out Sound Hack: Ez-B V4 External Sound Hack
Soundboard PC & Soundbard EZ-B Tutorial.
The Robot Program Episode 009: Getting Six To Move
The Robot Program Episode 006: Introducing ARC
The Robot Program Episode 003: Getting JD To Move
Breaking Out The Sound From The V4 Ezb
Related Robots
Related Questions
Soundboard Ticking-Noise Scriptcode - Energy Pulse
$Ezbplayingaudio Variable Not Changing To 1 When Playing...
Error Playing Audio
Using Pwm's On Connection 3
Upgrade to ARC Pro
Experience the transformation – subscribe to Synthiam ARC Pro and watch your robot evolve into a marvel of innovation and intelligence.

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: https://synthiam.com/Docs/Skills/Audio/Speech-Recognition?id=16118
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.
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: Sleep(3000)
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.
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!
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.
EzAng
"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.
I see that in Ez script, not so much in the java or python tabs
Thanks Dave for bringing up the "wait" function.
EzAng