Hi Folks,
I’m not new to MP3 Triggers or Arduino, but am new to the Qwiic system. I’m hoping you can either confirm my hopes (or dispel) them about achieving simultaneous multiple channel playback. This is something I’ve been trying to achieve for years, but have failed at every turn.
I’m a sound artist and am currently generating multiple simultaneous single tones in various sculptures (sine waves via Pure Data on a Mac Mini and a zillion aggregated USB sound cards. As you can imagine, this a VERY unstable system and I’m desperate to find a more streamlined and reliable way to achieve multi-channel output with a small footprint (and price tag)
Here’s what I need to do:
-Play 6 MP3’s on 6 Channels simultaneously, ideally from a single source (Arduino Uno or Artemis)
My question:
Can I do it by connecting 3 (or 6 if ) Qwiic MP3 Triggers to a Qwiic Mux Breakout - 8 Channel (via Qwiic Shield for Arduino to my UNO or just to an Atemis)
https://www.sparkfun.com/products/14685#documents-tab
I may not be understanding what the Qwiic Mux 8 Channel Breakout does, and if so I apologize. If that’s the case, what would be your suggestions for getting 6 (or more) channels to play simultaneously?
All the Mux is doing is allowing devices with the same name to exist in the same system. Say you have three kids all named ‘Mike’ and you have them separated in three different rooms. If you were all in one room and you called for Mike then they could talk over each other causing chaos. But since they are isolated, you can go from room to room talking to a specific Mike.
Physically, you should be able to attach 6, even 8, to the mux and be fine. You’ll just have to do some leg-work in the code.
Maybe you’re already aware of it and perhaps it’s just not in the budget, but Tsunami plays up to 32 simultaneously, independent 44.1KHz, 16-bit mono tracks routed to any of 8 outputs. It’s very flexible, but one thing you can do is start and loop 8 sounds in sync, with each sound going to a separate output, using a single input trigger (or even automatically on power up.) It’s designed specifically to support multi-channel audio.
Unfortunately, I see that it’s out of stock with no re-supply estimate, so it may be suffering from coronavirus related supply problems.
Brandon,
Thanks for the excellent analogy! It sounds like if I’m willing to do the coding, it might work for my purpose. The advantage being that the whole system is modular and I can plug/unplug components as-needed.
Robertsonics,
I did not know about the Tsunami! It’s definitely in the budget if it can do what I think you are saying. I’ve been using the Robertsonics Wav Trigger for years in numerous projects, but my ambition was always stymied by the 2 channel limitations. (for instance, in one sculpture I’ve made where I required 4 channels, I had to employ two wav triggers to achieve 4 simultaneous channels using a common jumper to sync them both.)
So, if I’m understanding this right, each Tsunami can output 8 independent channels as a stand-alone player (with no Arduino), correct?
So, if one were inclined to do so, could you connect 4 Tsunamis (via an Arduino) to achieve 32 independent channels? If so, could I max out an Ardunio Uno and use all the available PWM outputs to sync 6 Tsunamis for 48 outputs?
What about 120 outputs if I use an Arduino Mega?
So, if I’m understanding this right, each Tsunami can output 8 independent channels as a stand-alone player (with no Arduino), correct? <<
Yes. Each trigger (using the normal trigger function) lets you specify both a track number and an output. An alternate trigger function allows you to start from 1 to 8 tracks, each to a separate output, with a single trigger. Done this way, the tracks will be in sample-sync with one another.
You certainly can use multiple Tsunamis, with each one giving you 8 more independent outputs. If you’re controlling them with an Arduino, and want independent control of each output, you’ll either need 8 digital outputs per Tsunami, or 1 serial port per Tsunami, because everything you can do with triggers, you can also do with serial control using the Arduino Library.
The only thing to keep in mind is that multiple Tsunamis are not synchronized with one another. You can start tracks on different Tsunamis at the same time, but they aren’t guaranteed to be in sample sync.
Hope this helps.
This is such great news! I’ve been searching for a reliable method of achieving tons of independent outputs and this is exactly what I was hoping for. Luckily, the only “synchronization” I need is for all tracks to start basically at the same time. I don’t have precise moments in the sound I am making that need to meet up, it’s more amorphous and free-form. The way I will be using these large output arrays is by recording each track as a single sine wave into an mp3 file. They will all play simultaneously on my sculpture to achieve audible polyphony.
As I mentioned before, I was using a single common jumper (via a button toggle) between two original WAV triggers to start Track 1 on both. I suppose I could do the same for each output on multiple Tsunamis.
If I want Arduino serial control, you are saying that I would basically need basically either one Uno per Tsunami or one Mega per 4 Tsunamis, right?
If I want Arduino serial control, you are saying that I would basically need basically either one Uno per Tsunami or one Mega per 4 Tsunamis, right?
You would need more than one serial output. For the small amount of data you’re sending software serial on the Uno would probably be sufficient. Software serial lets you turn regular I/O pins into serial capable pins.
Keep in mind that Tsunami is a 3.3V device and its inputs are not 5V tolerant. To use an Uno or Mega you’ll need to shift the TX voltage level. I typically will use a 3.3V Teensy for serial control of Tsunami. The Teensy 3.6 has 6 serial ports.
Also, if you want to control more than one Tsunami from a single Arduino board, you’ll either need to modify the Tsunami Arduino Library to support using multiple instances on different serial ports (you could just create a new library class for each hardware serial port) or use the library source code to write your own multi-port version.
If all you’re doing is starting and stopping tracks, you don’t really need to receive anything from Tsunami, so you really only need to hook up the TX → RX for each Tsunami.
Once again, thanks for going above-and-beyond in answering all my questions! Happily, my Tsunami arrived today and I hope to begin playing with it this weekend. Before I do, I’ve got one last set of questions regarding your comments about the 3.3v limitations:
I understand that if I wanted to connect it to a microcontroller, I should use something like the Teensy or Pro Mini over an UNO.
What if I want to run it as a stand-alone trigger? Can I power it with a regular 5v-15v wall wart? Any amperage limitations? I read somehwere that WAV files are power hungry. What is the ideal stand-alone power supply?
I’d suggest going through the SparkFun Tsunami hookup guide which will answer most of your questions. Don’t apply 5V directly to either the trigger inputs or the serial RX input - these should only see 3.3V.