Need help deciding on method of controlling Robersonics WAV Trigger

Hey folks,

I recently picked up a Robertsonics WAV Trigger (Tsunami was overly capable for my needs). My goal is to build a sample player using an Arduino Nano as the main control unit for handling input and interfacing and then sending the necessary commands to the WAV trigger to play sounds. The current design I have in mind is connecting a bunch of key switches to the Nano Digital I/O pins that act as triggers for sounds. I want to avoid wiring the switches directly to the WAV Trigger so that I can implement alternative button presses (as in holding a “shift” key to access a different set of functions). However here begins my dilemma.

My initial plan was to control it using MIDI commands from the Nano so that I could take advantage of all the MIDI capabilities like Velocity, Pitch Bend, and Attack+Release control. The aforementioned key switches would trigger MIDI notes to be sent to the WAV trigger. The problem there is that although polyphonic, the WAV trigger does not support MIDI (split) bi-timbrality. The challenge this presents is that (though correct me if I’m wrong) I have to be deliberate with how I order my sounds so if I want to, for example, be able to have a drum kit on 8 switches and then dedicate the rest to playing guitar samples all the files have to be in the same bank (limit of 128 files). It would be difficult because if I want the same drum kit paired with multiple different instrument samples (say piano, synths, or guitars) I would need multiple copies of the same file floating around. That would look like files 0-8 are a drum kit and 9-128 are piano samples, 129-137 are the same drum kit and 138-255 are guitar samples. Then take into consideration that I would like to have multiple drum kits as well, that will easily add up.

The alternative control scheme would be using serial commands, but there is no simple command for Pitchbend or Attack/Release control. For Pitchbend, although not implemented in the library (https://github.com/robertsonics/WAV-Tri … al-Library) I could write a function for that myself based on the User Guide. But, for Attack/Release control, the closest approach I can see is a creative implementation of trackFade(int t, int gain, int time, bool stopFlag) to fade in/out (which is basically attack/release) but that might get messy because I have to be able to guarantee the track fades in all the way before it fades out so the call to fade out would have to be delayed by the time it takes to fade in all the way. Thankfully velocity seems straightforward to implement by relying on some mapping and the trackGain(int t, int gain) function. The main pro to using Serial commands would be that I have full access to all 4096 (I don’t think I will actually have 4096 sound files) sounds in any order I want. That way, I could set one switch to play sound file 0 and then another switch to play sound file 230.

One way to compensate for the limit of 128 sound files per bank (using the MIDI approach) that I have considered is that maybe I could just call a program change on the fly so that pressing a switch triggers both a program change and a midi note message, but I imagine that might get messy quickly as I stack more and more voices.

So I guess my questions are: have I overlooked something, is there a way to mix and match these capabilities, or how best can I compensate for the missing capabilities of choosing one of these approaches over the other?

Thanks!

One approach could be to use multiple instances of the WAV Trigger connected to different digital ports on the Arduino, each with its own set of sounds. This would allow you to have separate sets of functions and control them independently based on the keys pressed.

Alternatively, if you’re willing to spend more money, there are other options available like the Teensy Audio Adapter Board by PJRC (https://www.pjrc.com/store/teensey_audio.html). This board comes with a built-in MIDI interface and is specifically designed for audio applications. It can support polyphonic bi-timbrality and up to 64 voices, which should give you more flexibility in controlling your samples.

In terms of compensation for the missing capabilities, if you’re not strictly dependent on MIDI’s advanced features like pitch bend or velocity control, you could consider using a different approach such as using the Teensy Audio Adapter Board with its built-in MIDI interface. This would allow you to use all 4096 sounds and have full control over attack/release and other parameters.

Overall, I suggest considering different solutions and technologies to see which one best fits your needs and preferences. It’s important to find the right approach that aligns with your project goals while taking into account the limitations of the WAV Trigger and its features.

Good luck!