Monotone by Hornet [web]
(note: this documentation is unfinished) MONOTONE A tracker for simple output devices on the PC A Trixter/Hornet Production "On the Leading Edge of the Trailing Edge!" ---[Quickstart for the experienced tracker musician: If you already know what a tracker is, you can get started with just this information: - Look at KEYLIST.TXT (the shipping keyboard configuration). - If you like it, print out KEYLIST.TXT and use it as a reference. - If you don't like it, run MTCONFIG and redefine keys to your liking. - Because MONOTONE was written to support simple devices, the interface favors note entry over all other operations. This means it probably doesn't navigate like you are used to. The shipping navigation scheme is this: - Left hand on letter keys to enter notes - Right hand on numeric keypad to move around and change the default octave - Moving left/right immediately moves to the prev/next track's note entry With this scheme, you can enter the bulk of the song (the note data) with single keystrokes (no shift/ctrl/etc.) and without moving your hands from their default positions. ---[Design and Concepts: MONOTONE is a tracker. For those unfamiliar with trackers, a tracker is a song editor/player that lets you compose a song by entering notes and effects into a "pattern" made up of rows and columns. (Each column is called a "track", hence the name.) Patterns are then strung together by an "order list" to make a complete song. While several PC trackers already exist, MONOTONE was designed from the ground up as a tracker for extremely simple sound devices (ie. significantly less capabilities than the Adlib or Sound Blaster cards). Until MONOTONE, such devices have had no representation whatsoever on the PC. A "simple" sound device is one with the following characteristics: - MUST produce sound (ie. a tone at a particular frequency) - MAY have volume control - MAY have more than one hardware channel - MAY have one or more noise generators Sound devices which meet only the basic criteria include: - The internal PC speaker - Any simple sine/sawtooth/triangle/square wave generator Sound devices which meet (and are generally limited to) all four criteria that have appeared on the PC in one form or another include: - Texas instruments SN76489 (IBM PCjr, Tandy 1000 series) - Phillips SAA 1099 (Creative Music System/Game Blaster) - General Instrument AY-3-8910 (Bank Street Music Writer card) (While many other sound devices available on the PC can greatly exceed these criteria, such as General MIDI or the Yamaha YM3812 (Adlib), they are not the target audience for MONOTONE. Using such devices is still possible in MONOTONE, but none of their extended features will be accessible.) For maximum output device flexibility, all tracking is done against a "virtual" sound device that matches one or more of the above criteria. This is done by implementing a simple state machine in software, which takes the song data and processes it into virtual channels. For actual output, the virtual channel data is mapped to the hardware via each hardware's software object. This allows the song to sound as consistent as possible across different hardware devices. Because the hardware these devices are found on is usually quite limited (IBM PCjr, Tandy 1000, x86 8-bit ISA clones, etc.), MONOTONE was designed for maximum compatibility with that hardware. This was quite intentional -- what good is support for the IBM PCjr 3-voice sound chip if the program itself won't run on an IBM PCjr? To that end, MONOTONE's minimum hardware and software requirements are: - Any IBM PC or true compatible - 128KB of RAM - One floppy disk drive - Color display (monochrome support will be in a future release) ---[Implementation Details: MONOTONE differs from previous Amiga and PC trackers in a few ways, mostly because it was designed from the ground up to be as hardware "agnostic" as possible. Some of these differences are because we are not limited to the Amiga's legacy (hardware periods, etc.) and others are because of a rethinking of how a tracker should be designed for a low-resource PC: - Full octave range (A0 to C9, one more octave than an 88-key piano) - Perfect equal temperament (ie. middle C is *exactly* middle C) - Pattern navigation is optimized for note entry, not data entry Despite these differences, the basic interface "concept" in MONOTONE remains identical to most other trackers. ---[Known Limitations: Several features were omitted to meet an initial April 2008 release date. As a result, the 0.3 release of MONOTONE has the following limitations: - PC Speaker arpeggiator output only - Number of tracks limited to 4 - No support for monochrome cards/monitors The complete feature list described in this manual will be implemented incrementally at later dates. For practical reasons, MONOTONE is limited to the following: - Maximum number of tracks: 12 ---[User Notes: - If you want a particular keyboard combination and the keyboard config utility isn't registering it, blame your keyboard BIOS. For maximum compatibility on PC clones, MONOTONE uses the BIOS keyboard routine for input. Some combinations are simply not registered depending on the clone BIOS. (If it's any consolation, some keypresses aren't registered by IBM's own XT BIOS! For example, keypad "5" all by itself isn't processed, nor is Ctrl+Insert, nor Alt+Enter.) If your keypress combo isn't picked up by the utility, blame the BIOS and choose another. - Until I have a chance to optimize it, the pattern "repaint" routine takes up enough CPU time that it interferes with playback slightly. If you are using MONOTONE on a 4.77MHz 8088, try tabbing over to the Order List (or switching to the Status Screen) before starting playback for smoother results. (Any machine 8 MHz or faster will not have this problem.) ---[Composer Notes: Output Device: PC Speaker - If targeting the PC Speaker, whether 1-voice or multivoice, try not to sustain notes if it's not necessary. The pc speaker is not good at reproducing harmony, so as much time as you can give each invidual channel is best. (In other words, the more staccato the note, the better the chance that other notes may be heard.) - Due to the nature of the "dominant channel" arpeggiator, the only way each note will have a chance to be heard is if the speed is (numtracks) or higher. For example, if you have three tracks with notes on them and the tickspeed is set at 2 ticks, the first and second notes will sound but the third won't because on the third tick the row is advanced. Unless the third note was still sounding in the next row, it will never have a chance to sound. Output Device: Tandy/PCjr 3-voice - to be written Output Device: Creative Music System/Gameblaster 12-voice - to be written Output Device: Bank Street Music Writer card - No notes, but if you actually own one of these you can consider yourself one of the luckiest people alive. There is only one of these left in the world documented to still exist (owned by me) -- if you have one, drop me a line! ---[Special Thanks Jason B. yesso Phoenix FireLight virt ---[Roadmap MONOTONE will flesh out every feature possible for the first version of the file format, which does not account for more than 8 effects, or a concept of "instruments" or volume. Future plans for MONOTONE includes a second file format that does support these features, which would then naturally lend itself to: - More than 4 channels (although this is mainly held back by screen repaint) - Descendant TSong objects to load Protracker MODs, which also means: - Descendant TPlayer object to play Protracker MODs - ADSR "instrument" envelopes (attack, decay, sustain, release) handled by the player engine ---[Contact Information I can be reached at trixter@oldskool.org. If you'd like to follow MONOTONE development and releases, subscribe to the MONOTONE mailing list at http://list.oldskool.org/listinfo/monotone
[ back to the prod ]