30 nov 2024
status: working
I like modular synthesizers and want to play them live.
However, a keyboard requires you to be constantly interacting with it for there to be sound.
I wanted something that would let me perform the knobs part of the synth.
The answer is a sequencer, but most of the sequencers I saw were too repetitive
for me, and I wanted something that would be more interesting to listen to.
I thought the solution was a MIDI file player sequencer, so I ordered one from
Orgautomatech
and built a module in my synth case to house it.
I played around with it, but it left me wanting more interactivity.
I felt like I had to build my own, one that would fulfill my desires.
The most foundational parts of this sequencer are its charts and scripts.
A chart is a representation of a song that has concrete and abstract musical information side-by-side.
An example of concrete musical information would be a note with a set position, pitch, duration, and volume.
An example of abstract musical information would be a key signature, chord marking, or
slash.
In essence, abstract musical information cannot be represented using a piano roll.
A script is a set of instructions that the sequencer uses to interpret the chart's abstract elements.
Since there is no definitive way to voice and play a "Db diminished 7" chord,
the script negotiates the transition from abstract to concrete.
How exactly the script does this is up to how the script is written.
The script can have values that are "exposed" to the performer for live manipulation.
These values appear on a MIDI controller's label that corresponds with a knob to control the value.
For the kind of music I wanted to make with this project, I identified 4 parts: bass, drum, keys, and lead.
Though "keys" is technically a misnomer, as it has nothing implicitly to do with a keyboard, but everything to
do with being plural.
Overall, the setup consists of the MIDI sequencer, a transporter MIDI controller,
and 4 parts, each with their own synthesizer and MIDI controller.
The transporter is a MIDI controller that has media transport controls (play, pause, stop) for the synthesizer.
The sequencer is never physically interacted with, as its only purpose is to be controlled by the transporter
to tell the synthesizers what to play, using the values from the controllers in the script associated with the
chart we are playing.