A multi looper hardware arduino project

...and how to do so...
User avatar
4865 posts since 12 Jun, 2001 from Wusik Dot Com

Post Mon Aug 19, 2019 1:00 pm

Hey guys, it has been a while, but I want to work on a new Hardware project (as a hobby, so it won't take time from my other project), just like I have done with Beat707.com before. This time I want to release under the Wusik brand. Please, read below and let me know what you think, and if you can, check my Patreon page at the bottom of this message on how to help me fund this project. :-)

If you don't know me, I'm WilliamK from Wusik.com. I have been working for nearly 20 years on software plugins and for nearly a decade with my Beat707.com projects. I will add my BIO at the end of this message.

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

Wusik Open Loop Performer (WOLE)
Hardware Arduino Based, Fully Open Source

The idea is to create a dawless system where you can play loop files from pre-recorded sessions and mix real-time. With options as play-once, play-looped and other performance-related options. Everything is done with stuff I can buy in my local electronics shop, so no fancy 32 bits stuff. :-p The idea is to keep things as simple as possible, and easy to solder, build, ... Options like Volume, Mute and Solo will be done in an external mixer, which is not included in this project. The best thing here is that we will end up with open hardware and software design, easy to tweak and hack. There are a lot of playback options out there, but this option here allows to sync everything and also has external sync options such as light/LED relays. I'm not adding any MIDI sequencing or external CV triggering as this is not what this is for.

An example of usage:

- Module 1: A=Regular Drums, B=Drum Fills (Looped, Play button-down sets to trigger on the next SYNC and in every SYNC until Play is pressed again or Master-Stop);
- Module 2: A=Intro Bass, B=Regular Bass (as above);
- Module 3: A & B Synth Riffs (as above);
- Module 4: Extra drums (as above);
- Module 5: Vocal Riffs (Not looped, play and stop with the Play button, not in sync);
- Module 6: 4 x External LEDs (just like Module 1).
- External Synth Keyboard to play something else LIVE during the performance.
- External Mixer with enough inputs to connect all modules and the synth.

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

Hardware Specs For Each "Slave" Sound Looper. Based on my old Beat707 Playa project:
https://github.com/WilliamKWusik/Beat70 ... t707-Playa

- ATmega328 DIP running at 20Mhz;
- Flash Winbond W25Q64 DIP (64 Megabits - 8 Megabytes), 22038hz mono 10 bits output. Total of around 300 seconds (5 minutes) of playback. But I will try to increase samplerate by increasing the speed of the ATmega328 to 20Mhz and use a buffer IC for the flash module, so we can get a better sample-rate;
- Modules can receive new samples from a "Master" module SD Card (in the correct WAV format) and this gets stored to the external Winbond Flash IC;
- PWM 10 bits mono audio output or an option to use it as a relay for lights/LEDs (read more below);
- Multiple button inputs to select options such as loop on/off, ... (when the loop is disabled it will play only one time the current audio);
- LEDs for some of the buttons above, to indicate if it is playing;
- DIP switches to select the ID of the module (or just jumpers);
- Play button, with the internal option set from the "master" module below, to determinate if audio must trigger or just play as you hold the button;
- Up to 16 "slave" modules can be added and connected to the "Master" module;
- You can have up to 2 audios that can be selected by using an A/B button, with a LED to indicate which one plays. Each audio requires its own buffer so adding more is not possible. The selection is only applied when a new audio starts, as the buffer is always at the start;
- Sync sent from the "Master" module. This is not MIDI sync, but rather a start-of-the-sample signal to inform "slave" modules to re-start any audio that has been marked as LOOPED. This is a pin that connects to all other "Slave" modules input sync pins, avoiding using 2IC in real-time as it would not get a perfect time for each Sync to each "Slave" module;
- Option to play the audio right away, or blink a led to tell it's going to be played as soon as a new SYNC signal is received by the Master module;
- Each module will have audio with the same length as all other modules, and this is also set in the Master module so that the module knows when to SYNC with "Slave" modules;
- Option in software to play selected modules with the Master Play button, otherwise, nothing plays until you hit Play in a module;
- Master A/B overwrite. This is handy for when you have different A & B audios and want to change all with one click.

Playback Options

- Play One Time;
- Play Looped until Stop or Play is hit again;
- Play while you hold the play button down;
- Prepare to play when all loops are back to the start (receives a SYNC from the Master module);
- A/B sound selection switch (or button with the software on/off option).

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

"Master" Module

- ATmega328 DIP 20 MHZ;
- SD Card with WAV files ready to be used. Files must have the same exact sample size so they stay in sync with each other. A software solution for Windows/OSX/Linux will be provided to create such files, all ready to be written to the SD Card. Multiple subfolders can be created to divide files into zones. Keep in mind that sending new sounds to all "slave" modules can take a while;
- This module can send new samples to multiple "Slave" modules (each has a unique ID setup by using DIP switches);
- Sync Button to sync all "slave" modules;
- 2IC LCD to display the file structure and extra custom information provided by the user. All this is read from the SD Card, and the software mentioned above can take care of that, or the user can provide files manually, as they are plain WAV (mono uncompressed) and TXT files;
- Extra settings can be set for the "slave" modules. So things that are done once and not in real-time, can be done with the Master navigation system + LCD;
- Navigation buttons;
- Master Play and Stop, which sends the required sync signal to the "slave" modules. This is not a MIDI signal, just a pulse at the start of the audio and again when it rolls-over;
- Communication will be done using 2IC, so multiple modules can be added to the same BUS without problems;
- The initial design is to have everything set up in a single PCB with the Master module and 6 "Slave" modules all inside. But this could change. The best thing would be a modular design, but that makes things a bit harder in some areas, especially for a case.

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

The Two Modes
Each "slave" module has two modes.

- Audio Playback;
- External Relay.

The last option can be used to blink external LEDs or lights in sync with the rest of the music. Up to 4 outputs can be used and are stored as audio WAV in the SD Card. Sequencing can be done with the software mentioned before, which will take a sequence of 4 relays and create the proper WAV file.

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

As I said at the start, I need help funding this project, as I don't have everything ready here (some parts are missing). And to create some case designs I will need to get even more stuff. Still, it should be easy to finish this one up if I can get a bit of help from the community. Check my Patreon page below and see if any of the tiers is ok with you. Another way of helping is to purchase anything from Wusik.com, just tell me that you are funding this project by sending me a message, so I know. ;-)



Cheers, WilliamK

--------------- --------------- --------------- --------------- --------------- --------------- ---------------

"I'm William Kalfelz - aka Wusik - and I started this project several years ago (2001 to be more exact). Wusik Station (now in version 9 for both Win/OSX) is a fantastic synth and my leading product. Wusik 8008, my second major release, is a sample playback modular synth featuring an easy-to-use interface. My other products include a great VST/AU sequencer/host called Wusik SQ200 and a chainer called Wusik P2000. I also work (as a hobby) with Arduino DIY based projects at Beat707.com. Finally, if you want to know more about me, you can watch this video where I talk about myself and discuss Bipolar Disorder."

My other projects so far:

Return to “DIY: Build it and they will come”