You are here: The Oldskool PC/Oldskool PC Software/MONOTONE

MONOTONE

The Tracker For Extremely Simple Sound Devices

Download MONOTONE alpha 0.34

Changes in 0.34:

  + Implemented Vibrato (4xy).  MONOTONE has reached it's milestone
    for effect support.
  - Had CGA profiling forced on -- this might or might not have caused
    crashes on non-CGA machines, sorry!  This build has all profiling
    turned off.

Changes in 0.33:

  + Implemented effect Portamento To Note (3xy).
  + Implemented effect Arpeggio (0xy).
  + Implemented effect Slide Up (1xx).
  + Implemented effect Slide Down (2xx).
  - Fixed PC speaker and Adlib not shutting down properly.
  - Rewrote the PC speaker code so that it performs the timer reconfig
    in a lot less steps if the speaker is already sounding.  This was
    necessary because implementing slides/portamentos (see above) showed
    that the speaker sound was not very smooth as the code was turning
    the speaker and timer completely off and on between each tick.
  * Spent 8 hours optimizing; player engine is now 40% faster and pattern
    display repaint is now 20% faster.  (On 4.77Mhz machines, this kind
    of optimization matters!)
  * Doubled the size of the manual by adding information in all areas.
    Still unfinished though.
  * Distribution now includes the manual in two formats:  monotone.txt,
    which is the manual formatted for on-screen display as well as any
    dot-matrix or daisywheel printer that supports BS (backspace) and
    FF (form feed), and monotone.rtf, for laser or inkjet printers.
  * Optimized keyboard handling for slightly better speed and smaller
    code.

History: What is MONOTONE?

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.

Roadmap

The full roadmap is in the manual, but here's the quick rundown on the development milestones:

Version 1 will have 8 effects; support PC speaker, Adlib, and Tandy/PCjr; run on any 128KB or greater PC with a color monitor. All of these have been met except the Tandy/PCjr support, and half the editor functions are still missing.

Version 2 will add support for up to 12 tracks; all Protracker effects; volume 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.

Version 3 will add support for a generic instrument concept that will support ADSR volume envelopes, but also some way of specifying hardware-dependant features such as a noise channel; one more sound device, General MIDI, will be added.

Contact Info

If you'd like to follow MONOTONE development, suggest improvements, request features, etc. feel free to join the MONOTONE mailing list.

External Links

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.


[Oldskool Home] [Copyright and Usage] [Disclaimer] [Contact Me]

This page's content was last modified on Jun 1, 2008 9:18 pm.
If anything here has helped you, please consider donating to help keep this site alive.