Gameboy project week 3: A simple MIDI ROM
January 20th, 2013nitromidi1 is a very simple Gameboy MIDI ROM. It can be used with an Arduinoboy or Nanoloop USB MIDI adapter. It’s not meant to be all that practically useful atm. Rather, I created it to have all the plumbing in place for future MIDI software.
It currently responds to the following things:
- MIDI channel 1 only.
- Gameboy pulse channel 1 only.
- Note ons. (But currently not note offs!)
- The typical “panic” button. (Channel mode messages $7B, all notes off and $78, all sound off.)
- The pitch wheel, currently with a fixed range of +/-7 semitones.
- CC 71/$47 which controls the pulse width of the wave.
- CC 72/$48 which is a combined attack/release control, ie. the second nibble of the envelope byte. The control scans from short decay to long decay to constant volume output to slow rise to fast rise. In other word, the following envelope values mapped onto a knob: 1-7,8,F-9.
As noted above, it doesn’t respond to note offs, so be careful with rising envelopes! - It has no GUI except a lines pattern indicating CPU usage. This is literally
made by changing the background palette when the CPU is busy.
Have fun, and report any bugs/anomalies/feature requests.
January 20th, 2013 at 6:47 pm
love the idea of the weekly project, what about a github repo of all the weekly projects source code?
January 20th, 2013 at 6:54 pm
The way these programs are written, I suspect it will lead to more questions about what some parts of the code are doing, alternatively questioning my sanity. I want the code to be somewhat clean if I’m going to put on public display. (Of course, anyone with a debugger can still have a look.)
April 6th, 2013 at 8:55 am
thank you for the midi love