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 TB-03

Roland TR-06 Boutique Manual

Drum computer based on the TR-606

Roland TR-06

Roland JD-08 Boutique Manual

Miniature version of the JD-800 warship sized synthesizer

Roland JD-08

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...

Alesis SR18

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