MIDI Tracker
Introduction
I love to hack, to tweak, to fix, to create, to destroy, to design ... PCB's, hardware, software, 3D objects...
For a long time, I have been fantasizing about creating my own music, I love chiptunes, the acid sound (in house, techno, tekno, hardcore, rave, trance, ...) I borrowed a TB-303 "acid sound generator" (YouTube) once, but it was a complex beast and I was afraid to mess it up, after I returned it I kept on dreaming and buying stuff to play with, but it never really took off, each device is a world of possibilities and settings and I kept forgetting how each machine works and what I had stored in memory, it is just too black-box for me.
I grew up in the Scream Tracker era where you could fill patterns with notes that play samples to build up a song, with columns that define volume / effects / speed etc:
I was collecting devices that speak MIDI so I started to try to control them using open source PC software, this route felt better, but I kept thinking that "to really really understand what I was doing, I should create my own sequencer software" ... C# looked very promising, I have programmed in many languages, but somehow had still not tried to program in C# yet, which would be quite fitting for programming music in, and so my journey started, it became a thing that I worked on daily for an hour, adding stuff, designing objects that represented my devices, until I had something that felt good enough to start talking about... I have had this domain name for ages, but used it almost only for my e-mail, that had to change, it is time to start showing the world what I am doing..!
This is a great excersize for me: Sharing stuff that is not up to my standard and probably never will :D
This page will (hopefully) become a work of art, someday, adding bit by bit until I have nothing left to add.
Hardware
My ever growing dust-collecting collection of MIDI / audio devices is getting out of hand, time to put them to use!
Roland TB-03 Boutique
Manual
Acid / Bass Line generator based on the TB-303
Roland TR-06 Boutique
Manual
Drum computer based on the TR-606
Roland JD-08 Boutique
Manual
Miniature version of the JD-800 warship sized synthesizer
Alesis SR18 Drum Machine
Manual
A gift from a friend, fixed the broken buttons by 3D printing springy spacers
I am thinking about hacking it to replace the blue light, my whole setup is red...
Arturia KeyStep controller & sequencer
Manual
Bought it second hand to replace my USB-MIDI-only keyboard
Modified Gameboy pocket
Added a light emitting display for readability
Added a 3V3 step-down converter to power via USB
Runs ROMs from a DIY MBC1 512KB flash cartridge
Connects to MIDI via a DIY ArduinoBoy interface
Axoloti
Open source synthesizer / audio processor / multi-tool, use-case:
a rompler
or sampler
But who knows, this thing is capable of way more than just recording / playing samples...
Alecto PRO-33 mixer
Also a gift from a friend, this mixer is about as old as I am, but in way better shape!
I have added labels with the device names under the sliders to know what is what.
Behringer U-Phoria UMC204HD
24-Bit/192 kHz USB Audio/MIDI Interface
I recently found out that it records 2 mono inputs, so I have no recordings, yet...
Nobomi.cz stereo ARM2SID
Arduino UNO with a RetroComp.cz ARM2SID shield
OTraki USB MIDI Interface
Started with this PC MIDI interface, now replaced by the UMC204HD
Edifier R1280T speakers
Simple shelf speakers that help me make lots of noise
Software
This chapter is to be added next, probably...
I am thinking about publishing it on GitHub or something in the near future.
Song notation
I am a Linux user and like things to be in a text file format, so I tried to create music by editing a text file which starts to work, it's getting tedious to work this way though, so I hope to start working on a pattern editor front-end soon. Ofcourse this will still be in a terminal window, because a GUI seems to be overkill (at the moment...)
[INFO]
BPM 120
NAME 303
ARTIST ROBO
[TRACK]
PATTERN INIT
PATTERN BL01
PATTERN BL02
[PATTERN]
NAME INIT
DEVICE TB-03
KEYBOARD BassLine
COLUMNS Slide Accent
01 00 7F
[PATTERN]
NAME BL01
DEVICE TB-03
KEYBOARD BassLine
COLUMNS Note Velocity
01 D-2 3F
02 D-3 7F
03 D-3 3F
04 D-3 3F
05 D-3 7F
06 D-3 3F
07 D-3 3F
08 D-3 3F
[PATTERN]
NAME BL02
DEVICE TB-03
KEYBOARD BassLine
COLUMNS Note Velocity Slide
01 D-2 3F 7F
02 D-3 7F 00
03 D-3 3F 7F
04 D-3 3F 00
05 D-3 7F 7F
06 D-3 3F 00
07 D-3 7F 7F
08 D-3 7F 7F
What you see here: Blocks containing information about parts of the song
[INFO] = Song information, only BPM is currently used (in a hacky delay way...)
[TRACK] = Pattern playlist, multiple can be mentioned to be played simultaneous
[PATTERN] = List of instructions for a device, columns can be added to tweak knobs
A device can contain multiple instruments
The TB-03 only has a BassLine and is played with notes like a keyboard
The TR-06 contains multiple percussion instruments, played with a Velocity
A BassDrum, SnareDrum, LowTom, HighTom, ClosedHiHat, OpenHiHat and a Cymbal
User interface
I like the terminal as a user interface, there is probably some way to create C# multi-OS GUI's, but I have not tried that yet. For now it seems to be good enough, I have been working on showing borders and windows to simulate a GUI so that will probably be the only way to interact with this program for the foreseeable future...
That's all for now!
I hope to add more soon, thanks for reading!
Questions? Well, that's a bit of a problem, I don't think I'll add interaction here, the internet sucks.
You can reach me by sending a message to mail @ the domain name you are visiting right now!
C# MIDI Tracker Roland Boutique TB-03 TR-06 JD-08 Alesis SR18