Creative Commons images are CC BY-NC-SA 3.0

WAV Trigger
project on project

Pinball Sounds and Music
by Bob Blomquist

Description: The WAV Trigger is a unique high-fidelity polyphonic audio player with surprising capabilities. Supporting up to 2048 uncompressed 16-bit, 44.1kHz wav files – the same quality as an audio CD – the WAV Trigger can play and mix up to 14 stereo tracks simultaneously and independently, with very low latency. Tracks can be controlled via 16 programmable trigger inputs, or by using a native serial control protocol or even MIDI.

Trigger inputs can be connected directly to switches and buttons, or to digital outputs from sensors or another microcontroller. Alternate functions can be specified using a free cross-platform GUI application, and allow triggers to play sequential or random tracks, pause and resume groups of tracks and even control volume. An Arduino library allows for complex serial control like real-time mixing, starting multiple tracks in sample-sync and smooth cross-fading between tracks.

On-board sample rate conversion allows for smoothly changing playback speed/pitch from 0.5x to 2x. in real-time.

MIDI allows you to use the WAV Trigger as a polyphonic sampling synthesizer to play your own sounds from any MIDI keyboard controller. MIDI Channels and Note numbers are mapped to track numbers, and MIDI Controllers adjust volume as well as attack and release times. MIDI Program Change is supported to switch between up to 16 banks of 128 sounds. The WAV Trigger audio engine even implements, pitch bending, voice stealing (oldest playing voices are used for new MIDI Notes when all 14 voices are being used), note attack (fade-in), note release (fade-out) and latency averages 8 ms.

The WAV Trigger supports both SDSC (up to 2GB) and SDHC (up to 32GB) type microSD cards.

Check the link in the documents below to keep up with the latest Firmware updates!

Note: This product is a collaboration with Robertsonics. A portion of each sales goes back to them for product support and continued development.


  • Supports up to 2048 uncompressed 16-bit stereo WAV files up to 44.1kHz – CD quality
  • Polyphonic! Play and mix up to 14 stereo tracks independently and simultaneously
  • Sample-accurate starting and playback of up to 14 parallel stereo tracks
  • Trigger-to-sound delay: 8 msecs typ, 12 msecs max
  • MIDI control: Velocity-sensitive triggering of up to16 banks of 128 tracks
  • Real-time playback rate control and MIDI Pitch Bend
  • Pause and resume individual or groups of tracks. Multiple random trigger ranges
  • True line-level stereo output: 2.1V RMS ground centered, 100dB SNR
  • On-board mono audio amplifier and speaker connector: 2W into 4 Ohms, 1.25W into 8 Ohms
  • 16 trigger inputs are individually adjustable for contact closure, 3.3V or 5.0V control
  • Trigger inputs can be individually inverted, and/or set to be edge, latched or level sensitive
  • Volumes adjustable from +10dB to -70dB in 0.5dB increments
  • Firmware volume fades (attacks & decays) and cross-fades
  • A dedicated “Play” status digital output pin
  • 3.3V and 5.0V output pins
  • Extensive serial control. Arduino library available. Pin compatible with SparkFun FTDI Basic


Recommended Products

Customer Comments

  • This looks like the system i need but i have a question about how to wire it¿ Another circut wod be used to trigger it which would normaly trigger a nonpowerd board thus has pos and neg conections. When i conect it to the wav player would i just connect the neg to the track trigger to make it go low¿ conversly would using the pos with a voltage regulator and setting the wav to play when high work as well¿ (depends on which is the control). Both would use (the same) 12vdc power source and the pos output is 12vdc.

  • I’ve got 2 questions. I’m planning on setting up a microswitch to trigger a sound (and will add more switches/sounds later) but I was wondering if you can set the sample to be momentary because I’d like the sound to happen only when the circuit is broken (via the switch) and to stop and reset the sample when the circuit is closed again so it’s ready for playback as soon as the switch is opened again. Possible?

    I’m not sure if I should get WAV Trigger or MP3 Trigger? Polyphony could be handy for multisound installs. Polyphony seems the main difference/advantage?


    • Trigger inputs can be configured using the init file and the Init File Maker application. One of the options is “Level Sensitive”, which will produce the behavior you want - track starts when the trigger is activated and plays only as long as the trigger remains active. The trigger sense can be changed from low to high using the “Invert” option. I suggest you download the Init File Maker app and have a look.

      You want the WAV Trigger. The MP3 Trigger lacks the programmable trigger features.

  • I have purchased 5 WAV triggers over the last year and plan on buying more. I do have one small issue and was wondering if anyone else has seen it. I have re-trigger disabled for all triggers and for the most part it works. But every once in a while it will re-trigger if a button is pressed during playback. An easy test to recreate this issue is to have re-trigger disabled then continuously press and release a button. It may take a while but you will find that it does re-trigger sometimes. Has anyone seen this or know of a fix or something i am missing. Thanks

    • This is the first I’ve heard of this - thanks for reporting it. I’ll have a look to see if I can recreate and get to the bottom of it.

      • Thanks for the reply. I look forward to hearing what you found.

        • I am unable to duplicate your issue - it seems to work correctly for me. With re-trigger disabled, I’ve not been able to get it to restart while the track is playing. What’s “a while”? Are you using the most recent firmware version?

          • I can duplicate the issue within 10-20 presses here on the work bench. I don’t know which firmware version they have. I just got a new one 2 weeks ago, I assumed it would have the latest firmware. I have these connected to a PA system in a retail store. Customers can press a button to page for help to a location. The issue is very minor once installed because customers typically only press it once and its rare to have more than 1 button pressed at a time. But it does happen and I have heard it re-trigger in the store. I was going to video the issue but its to late, I’ve already installed it. Maybe on the next one.

  • What voltage level are the UART pins? Can’t seem to find documentation regarding whether they are 3.3V and/or 5V tolerant.

  • For Serial control, is it possible to communicate with the Wav Trigger directly from an Arduino or do I have to use the FTDI as an interface?

  • Great board however using it as a random jukebox over many months now I am realising many of my 200 tracks are never played and some tracks are played way too often. I accept the random track selection is a pseudo random function and I reckon every time it is powered off and on again it resets the pseudo random string to the beginning again. Is this true? And if so is it possible to seed the random string?

    • Yes, that’s true, although I’m surprised to hear that some tracks don’t play at all. I thought I had tested that pretty carefully. It’s a great suggestion, and one that’s been on the list for some time. Coming up with a different seed each power cycle probably means implementing an ADC to read a “random” analog value. I’m working on other things at the moment so it may take me a bit.

      In the meantime, may I suggest that a Teensy, the WAV Trigger Serial Control Library and a little code would give you the ability to have any random functionality you care to create. The library allows you to easily start any track on the microSD card, and you can use the WAV Trigger Play Output (PLO) pin to determine when tracks are finished.

      • Thanks for that. I’ve been wanting to get some finer control over this wonderfully resourceful board for some time now so this is a good incentive to master Serial Control.

  • would there be a maximum length of a single file for any reason?? I have one 90min file to be played when triggered.

  • I just try to insert a stereo volume pot at the output of the wav trigger, but I face a hum. Any idea ?

  • Hey folks! I just ordered this fella to run a trigger module/metronome combo for my drumset. I’m wondering if it’s possible to send the trigger and metronome sounds to different places. I don’t want the metronome playing through the front of house speakers for the audience to hear. Is this possible?

    • There is not an option on the board that allows for multiple audio files to play to different audio outputs. I’m assuming you want the metronome track to play from the WAV Trigger as well? The simplest solution would be to use two WAV Triggers: one that’s connected to the house speakers and one to your monitor/headphones. You can tie the triggers on both boards together so they’re triggered at the same time, but their audio can be outputted to the two sources.

  • Would you be willing to post the bootloader .hex for the STM chip or even sell the chip pre-programmed by itself? I would like to roll my own board using CLASS D power amp, switching PSU and a couple of other features. I think I know the answer but thought I’d ask anyway. Thanks.

    • Check out the firmware updates link above. I you still have questions email and they should be able to help you out.

  • Anticipating the first question… This version just updates the shipping firmware to the latest rev (v1.21) and updates the above product description with the latest firmware feature set. New capabilities include support for 2048 tracks, real-time playback speed/pitch control and enhanced trigger and MIDI features. It’s no different than if you had bought the previous version and updated the firmware.

    Also, here’s the link to the Arduino serial control library, and here’s a short tutorial on serial control with an Uno.

    • Fantastic product, I have used many of them!

      I’d like to add a vote for potential updates: It would be great if the Wav Trigger could send a signal to a connected Arduino when the current track finishes to add in another level of automation. Thanks!

      • Thanks for the feedback. Depending on what you mean by “current track”, there are several ways to get this type of info from the WAV Trigger now: The PLO output pin on the WAV Trigger goes low whenever any track is playing, and is high when no tracks are playing. You can connect this to a digital input pin on your Arduino and use it to tell when audio is playing or not.

        Secondly, the GET_STATUS serial command will cause the WAV Trigger to respond with a STATUS message that contains a list of all the tracks that are currently playing, allowing you to determine when individual tracks are completed. Even though the Arduino library does not yet implement this command, it’s still available to use in your Arduino code. See the Serial Control Protocol section here.

        Hope this helps.

        • Ah fantastic, many thanks for that, I will do some experimenting. I want to start a playlist consisting of randomly determined tracks by the press of one button so I think using the PLO output as a flag will help me with this. Thanks!

          • You may be able accomplish this without an Arduino. You can program a trigger input to provide the Random function over a range of tracks. Then using the trigger type selection (edge or latched), you can program the desired behavior of the trigger (press once to start continuous random play vs having to press again to play the next selection.) This is all built into the WAV Trigger.

            Once caveat is that the Random track selection is actually pseudo random - meaning that it’s a random sequence of the tracks, but it will be the same random sequence after each power cycle.

  • GREAT little board.. We have used over 30 of these since January 2015.. Very powerful… Lots of applications.. GREAT JOB ROBERTSONICS !!

  • Does anyone have the physical dimensions of this board handy? I don’t see it on the product page or within the specs.


    • Hi, we’ve recently been adding the dimensions in our Eagle design files. This revision went through before that became the standard, however, you can open any of our board files in Eagle and use the measure tool to get any of the dimensions you need. I took a screen shot of the WAV Trigger after I added the dimensions for your convenience. Thanks. The units are in inches.

  • What an awesome product. Do you need to ‘close’ a file after playing it? I have an issue where some of my songs are becoming corrupted, and either will not open or if I open the file no my pc there are gaps of silence. I have tried two different memory cards from different manufacturers. Happens on two Wav Trigger boards as well. Thank You

    • The WAV Trigger is a “read only” device, and contains no code capable of writing to or modifying the data on the SD card, so I would be very surprised if it were corrupting anything. I’d suspect other things first. If you would like me to have a look at a “corrupted” file, please email it to me at info(at)robertsonics(dot)com. If it’s larger than 4MB, please email me first and we can coordinate a large file transfer.

      • I’ve had similar issues that are somehow are related to the SD card. I have an installation where the WAV trigger is inside an old radiio. It has 8 audio files playing on a loop and the visitor can change which file plays by selecting a different channel. In the code the WAV trigger just controls the volume of each file, it turns the volume of the active file up and keeps others muted.

        The problem is that the WAV trigger eats up SD cards. Every few weeks I need to replace it because two issues that come up. Either the WAV trigger jams and just starts glitching one track (playing a very small part of some file on a loop) or the audio of some of the files starts getting noisy (little glitching or crackling). Both of these issues get fixed by swapping out the SD card with a new one.

        These issues usually also go away temporarily after rebooting the whole system, but if the issue has showed up once, it will be repepated after it has been running for a few hours. A longer-term fix is to swap the sd card. I’ve tried three WAV triggers and all of them start doing this after a while.

        Any idea how to fix that?

      • Thanks will do. Just re-written the files again so will have to wait for it to do it again.

  • Hi is fast forward/rewind and queing in the future? Very interested but these are essential to my application. Robert, great work on this. It fills a need already.

    • How would you want this to work? When you say fast forward/ rewind, do you really mean going immediately to a specific time in the track? And what do you mean by queueing? The WAV Trigger already provides a load/pause function, which supports preloading multiple tracks and then resuming them so they start in sample-sync.

      And are you talking about serial commands or trigger functions?

  • I would like to hook up a midi keyboard, but it has more than 16 keys, so how could I play more than sixteen notes of a single instrument? Does this support looping of sounds as in the case of holding down a key? Also, what’s a good source to download instrument samples? Thanks

    • The WAV Trigger supports up to 2048 tracks. When the serial port is put into MIDI mode, midi channels and note numbers are mapped to track numbers as follows (with the current firmware): Track = (MIDI Channel * 128) + MIDI Note Number.

      Because SD card memory is not an issue, I advise you to loop your sounds in the WAV file and just make the tracks longer than you’d ever hold a note. The WAV Trigger does not currently support arbitrary loop points or seamless looping - looping is always over the entire track and there can be a small (< 5ms) gap at the loop point.

      Here’s a tutorial with links to some Mellotron sound files. Any instrument sample sets that you can load into a sound editor are potentially good to use with the WAV Trigger. I make my own using soft synths.

  • Is there any way to send the audio output through wires instead of using the 3.5mm jack? I’m sending signal to wire inputs on a class-D amplifier, and I don’t have enough room to fit a 3.5mm plug. I searched the hookup guide, user guide, and datasheet and couldn’t find an answer.

    • Not using an existing connector. You could always just solder 3 wires to the pins/pads of the 3.5mm jack.

      • Haha, I was afraid that would probably be the only option. I’ll give it a try, thanks!

  • Hello,

    I was wondering if it would be possible to take advantage of the Bank Up/Down when using regular triggers.

    I’ve re-purposed an old MIDI pedalboard to launch samples (which works great so far), but since the number of pedals is limited, using Bank Up/Down could allow me to expand the number of samples.

    Any chance that could be implemented in a future update (if not already doable)?

  • Hey there! Looks like a fun little board. One question, though (and please keep in mind I’m new at this). Is it possible to trigger these sounds via remote control? I’m currently building an R2D2 robot and looking for a way to play sounds. This board looks good but I’d need to be able to trigger the sounds from a remote control and also in response to onboard signals from the R2 (i.e. if the proximity detector sees an obstruction, tell the WAV trigger to play a sound).

    Any suggestions on a (preferably easy) way to accomplish this?

    • Hi, that would be very achievable with this board. Your best option would be to have two microcontrollers (like Arduino) talking to each other over the wireless solution of your choice (I prefer Bluetooth, but you could use XBees, RF, WiFi, etc). On one end you could have your buttons and switches. On the other end, the micro is connected to the wireless transceiver as well as the WAV trigger. A button press on one end could be transmitted over the air, to the other micro, which would then pull the corresponding pin low on the WAV trigger. It’s also possible to fine a wireless solution that has it’s own GPIO built it, so you could circumvent the microcontroller altogether.

      • Thanks! Upon further looking I may decide to go with the MP3 board just for more storage/triggers (R2 has a lot of sounds!). But your explanation still holds. Incoming order soon!

        • You mean like this?

          The WAV Trigger holds 2048 tracks vs the MP3 Trigger’s 255. There are few things the MP3 Trigger can do that the WAV Trigger can’t do better. Just saying.

          Actually, you could connect an XBee S1 module directly to the WAV Trigger’s RX pin and send serial commands over XBee with no on-board Arduino. Just a thought.

Customer Reviews

4.5 out of 5

Based on 8 ratings:

5 star
4 star
3 star
2 star
1 star

3 of 3 found this helpful:

simply amazing

I’ve been looking for a music synthesizer for several of my projects and found the existing MIDI synth chips less than pleasant to listen to; lots of noise and poor sound quality. The WAV Trigger is simply amazing for me. To be able to select among 2k sounds, at CD quality, and play up to 12 at once for less than $50 is simply amazing. The software to test and change the trigger options is great. You can even operate the board without a microprocessor by connecting to the 16 channels of trigger input. The only additional feature I’d ask for is to be able to dynamically change the balance (the relative Right/Left amplitude). I think this board will keep me busy for the next 6 months of research and development.

1 of 1 found this helpful:

Best card out there

Polyphonic and ease of use. This fill the needs of my microdrum project perfectly. Thanks for your hard work.

1 of 1 found this helpful:

Three WAV Triggers

Two WAV Triggers are operated just to trigger pre-recorded WAV files by signals from a Raspberry Pi running Python GPIO code. This limited the number of sounds. However, thanks to excellent support on a forum from Robertsonics, a third WAV Trigger is operated by two wires from an Arduino which decodes six bits and an interrupt bit from Python running on a second Raspberry Pi. This provides five polyphonic octaves (and with more bits could do more) of custom sounds recorded from Mathematica code than can run on a Raspberry Pi. And yes, latency is low even through the layers of code.

1 of 1 found this helpful:

pretty amazing

I built exhibits at a Museum… when you have to fade audio in and out… layer audio… control the volume… all via a pretty easy serial protocol. great product Sparkfun!

Wav Trigge


The Wav Trigger is working perfectly.

I’m working to make electronic drums.

The Wav Trigger’s strong points, as advertised, is that it can play polyphonic sounds, playing .wav files (which is really better than MP3, as there is no delay due to the MP3 format).

I think it could be useful to develop an Arduino shield version of the Wav Trigger, as it could avoid using a computer to change the sounds of the pins. I planned to use simple press buttons + a LCD to change the tracks, but I m not sure I can do it with the WAV Trigger.

Anway, it’s a good product.


Very awesome board

It´s great, do exactly what it promises to do.

Worked just as promised

We only used it in the most simple fashion but basically plug and play. Thank you.

WAV Trigger

easy to start any sounds project … it’s helpful to my project and I waiting now for FTDI to get in deep of wonderful sparkfun products