Genesis of the project

Let’s start !

So let’s start this blog with a first post introducing the project i’m planning to create, why i’m creating it and why it sound so cool to me !

MIDILooper ? So what’s that stuff ?

Good question ! Before that, let me quickly introduce myself… I’m a computer scientist since several years. Programming stuff, analyzing code, debugging programs, this is my things ! I spend ( … nearly ūüôā … )all my days reading and writing C/C++/python code for various stuff and in various domains (Video games, CG software, embedded software…)

Beside of that i’m also (at least trying to be…) a musician. I use the following instruments

  • A Seagull S6 acoustic guitar (recorded using a Audio Technica AT 2031)
  • A Yamaha P95 Digital piano.
  • A Novation Mininova¬†synthesizer.
  • An Akai MPC500.

All of those instruments are mixed using a Behringer Xenyx 1002 Analog mixer.

The Piano, Guitar and synthesizer are then send back to the Roland Boss RC300 Loop-station. And the output of the loop-station is also mixed down to the Xenyx mixer.

The Boss RC300 Also act as a master controller: It send tempo ticks to the MPC500 and the Novation in order to keep them in sync with what i’m playing.

In short, i can record and loop 3 separates instruments tracks on the RC300 plus one extra track coming from the MPC500.

  • Here are some pictures of this setup:

IMG_20131118_203341 IMG_20131118_203414

  • And a nice graph showing how devices are connected:


So What ?

I’m very happy with the setup, but there one thing that annoy me:¬†The 3 instruments tracks are audio track.

This is very good for piano, guitar or even voices, but for the Gaia synthesizer, it really reduce the expression potential. Let me explain:

This synthesizer have a huge amount of nobs and slider that can be tweak while playing in order to change the shape of the generated sound (for example change cutoff frequency of a low pass filter, or frequency of a LFO…)

The point is that when i record and then loop a musical phrase played on the GAIA, i cannot change the generated sound anymore. Thit is because the RC300 record the full audio data going out of the synth.
So as soon as the looped start, the sound is not generated anymore by the synth.

What i would like to do is the following:
Play a musical phrase on the GAIA, record it somewhere, loop that recorded phrase and WHILE the loop is playing, tweak nobs and sliders to change the sound played.

The theoretical solution:

Fortunately there is one theoretical solution, let me explain :
The Gaia SH01, like most of the actual synthesizer is made of 2 main “components”

  • A sound engine.
  • Controller.

The sound engine is what actually create the sound, you ask him: “Please play a C note for this amount of time, with this intensity and with this kind of sound” and he generate the sound you ear in real time. The type of generated sound depends on various settings controlled by several nobs and sliders. (The same nobs and sliders i want to tweak during a loop). Using those nobs and sliders, i can change the sound in real time, BUT, i have to tweak them WHILE i’m playing on the GAIA’s keyboard

The controller, to be simple, is the GAIA’s keyboard. When i play a note on the keyboard, a digital command is generated which contain all the informations about the played note. (But no sound, because sound is generated by the sound engine) This command is then send to the sound engine which play the specified note

Those commands are in fact MIDI commands.MIDI is a very popular standard allowing several musical devices to communicate with each others.

The Gaia have 2 MIDI plugs:

  • A MIDI OUT: All the MIDI commands generated by the keyboards are directly send to this output (in order to be send to the MIDI IN of an other instrument for example…)
  • A MIDI IN: The Gaia receive all the MIDI command send on this plug and play them directly using the sound engine.

So here is the goal of this project:
Create a small device, that can record a sequence of MIDI commands coming from an external device (the Gaia in my case), and that can send back this sequence to an other (or the same) device and loop that sequence over time.