You are here: The Oldskool PC/Oldskool PC Software/MONOTONE
UPDATE: All MONOTONE releases and updates are now hosted at github. Visit the github repository for MONOTONE.. This page will no longer be updated.
Download MONOTONE alpha 0.37b
Changes in 0.35:
+ Added Tandy/PCjr 3-voice support. No volume or noise channel yet. * Got really tired of the sluggish pattern editor performance when trying to write a 4-track tune and spent another 6 hours converting string operations in the pattern repaint routine to highly-optimized assembler. Navigating a pattern is now tolerable, although it's still not as snappy as if I weren't forced through some OOP inefficiency.
For older updates, check monotone.rev in the .zip file.
MONOTONE started as a bit of a joke between Necros and myself, where we were laughing about how nobody had created a tracker for the PC speaker. I like vintage PC challenges (see 8088 Corruption for another example), so I went about making one. MONOTONE's original design goals were:
As development continued, I decided to use the opportunity to finally see what all of the fuss was about with Object Oriented Programming (OOP) and designed MONOTONE as my first OOP exercise. This increased development time greatly (it took me three months of free time to complete, which is a heck of a lot of time for such a simple program), but had the benefit that song data handling, output device handling, screen handling, and the player engine are all objects. This allows descendants of each object to only need a few routines to support a completely new screen/file format/output device. (This decision has turned out to be fruitful, as people have already ported MONOTONE's engine to other devices; see External Links below.)
A very basic version of MONOTONE that met these goals was entered into Block Party 2008's Wild Competition and happily won 2nd place. Here is a short video of me demonstrating MONOTONE as part of the competition.
MONOTONE development is ongoing, but already it's quite a useful little program, so you are encouraged to download it and try it out. Full source code is included, so you can alter MONOTONE to your needs.
The documentation in the .zip file contains more information than this web page, so feel free to grab it and take a look.
TrackMan068 provides yet another example of what is possible in MONOTONE's limited capacity:
The full roadmap is in the manual, but here's the quick rundown on the development milestones:
Version 1 is finished and has 8 protracker-compatible effects; supports PC speaker, Adlib, and Tandy/PCjr; it runs on any 128KB or greater PC with a color monitor. Half the editor functions are still missing, but those are on hold for version 2:
Version 2 will add support for up to 12 tracks; will switch to ST3 effects/notation and editor commands; volume control; generic "instruments" with ADSR envelopes, arpeggio control, but also extensions for chip-specific stuff like noise channel control; more sound devices such as true multi-squarewave PC speaker output, the CMS/Game Blaster, and the Bank Street Music Writer card; more powerful and flexible editor features; support monochrome screens and 80-column mode (needed for additional track display).
Version 3 -- no idea. I've thought of full OPL2/OPL3 manipulation, but there are so many other FM trackers out there that I think it would be pointless to try to become YET another adlib tracker.
If you'd like to follow MONOTONE development, suggest improvements, request features, etc. feel free to join the MONOTONE mailing list.
Sprite_TM ported the MONOTONE playback engine to the AVR! (specifically, an ATTiny84) Here's a video of it in action. He also figured out a low-cost way to decrease the size of the file format, which I will document in the manual when I get a chance.
Need to record the output of the PC speaker?
Feel free to show MONOTONE some love on pouet.