There’s a new program in the repository! It’s the Chiptune Player, which plays a list of tunes of up to four voices each, written in AMPLE notation.
The Chiptune Player started its life a couple years ago as an adaptation of the Tiny Synth by David Johnson-Davies, with an added set of features that use miniMO’s hardware to control a playlist. The program was in essence completed back then, but I thought it would be better not to publish it until I had a number of original, modular-related programs in the catalog, so I recorded a couple demos and put it aside. Just a few weeks ago, one of those demos was brought up in the forum; I think those conditions are now fulfilled, so I revised the program, and here we are!
The Chiptune player, like the Tiny synth, is capable of playing back up to four-voice polyphony tunes written in AMPLE notation. Unlike Tiny Synth, though, it holds a playlist over which you have control during playback: you can rewind the current tune, set it to repeat, and change its tempo; you can skip to the next tune, go back to the beginning of the playlist, or set the whole playlist to auto-play. You can set the program to stop between tracks and continue if miniMO receives an external trigger, and the tempo control is also linked to an external input; in this way the program can act as a sound source in a modular setup, more so if you consider that at very fast tempos even the simplest of melodies become interesting sound effects.
The tunes themselves are written in a music notation called AMPLE, originally devised for the BBC microcomputer; here I refer you to the original article on Tiny Synth, which explains the basics beautifully. In my experience, the notation is simple enough that you can transcribe melodies almost right away.
Let’s see a simple example from the program’s playlist:
12, 0:CDEFGABCDEFGABCbagfedcbagfed 24, c^
12, sets the duration of a note, expressed in “ticks”; the player is clocked at 64 ticks per second. This duration applies to every note, until you specify a new duration
0: sets the octave number (0 is the middle).
CD means D, after C, ascending
Cb means b, after C, descending (which C depends on the context: in this example, the melody has reached an octave above middle C)
^ is a silence
To summarize, the above example plays the (diatonic) scale of C major up and down an octave, from middle C, making the last note twice the regular length.
Writing complex pieces is also possible but can be tedious, if done entirely by hand. I went as far as to transcribe a Chorale by Bach, and to that extent I prepared a worksheet in google sheets (feel free to copy and reuse), which is quite rudimentary, but helpful nevertheless.
Finally, a note about the change of name: since miniMO is already a tiny synth, I thought the name would be confusing -and I think Chiptune Player better describes what the program does.