Note Duration in Chipmusic Software

Due to a comment by Viznut, I’ve had quick look into music made with the PDP-1 (circa 1960). This was a popular machine in the early hacker culture that grew out of universities such as MIT. A few of the audio hacks are documented in MIT’s HAKMEM (1972). Writing this post, it gradually turned into a form of platforms studies or media-specific analysis, describing note duration on different trackers/hardware, and considering the compositional consequences of it. The scope of platforms here is limited, and comments about alternatives are appreciated.

Sometime between 1960 and 1964, Peter Samson made the music software Harmony Compiler along with additional hardware, enabling 4 channels of square wave audio. Dan Smith and others used it to compose music, or “encode” as they say themselves, which was saved on paper tape (materiality matters!). Peter Samson had previously made music software for the TX-0 (1956), that you controlled with a light pen! Oh the joy. At bitsavers you can find files that seem to be related to his software. And if you want to try to get in on the PDP-fun you can check this video where Peter Samson talks after 80 minutes.

J.S. Bach, Organ Concerto No. 1 in G Major, 3rd movement, BWV
592 being played on DEC PDP-1.Photographer unknown, from here

Harmony Compiler was text-based. According to Smith‘s memory, a melody could look like: 7t4 7t4 8t4 7t4 9t4 8t2. 7t4 means note 7 at duration 4, and you could replace the t with other letters to change e.g staff (bass, tenor) and tempo. For each note you have to state the duration of it, just like in traditional sheet music. I remember using similar ways to make ringtones on my Nokia mobile phone only a few years ago. And in fact, this principle is still the basis for the dominant way of sequencing music today: piano roll sequencing. For each note you enter, the duration of the note must be graphically declared with the mouse. Replacing mouse with light-pen, this is what you did with Samson’s TX-0 software from the 50s.

In step sequencers and trackers, you don’t have to set neither duration nor tempo in the sequencer. You can if you want to, but each step has a predefined length in time and every instrument has a fixed duration. This is true in particular for trackers using synthetical sounds, with its roots in Soundmonitor (C64, 1986). To vary the duration, you use effects to sustain the duration and alter volume envelopes. For example, in JCH Editor for C64 there is a default volume-setting in the instrument, but by writing ‘+++’ in the tracker, you extend the duration of the sound. So in the picture below, the C-4 note on the right lasts longer than usual. There is also an effect to change the volume envelope, so you can make the duration shorter. But effects are abstracted one level; with the command SXX you point to line XX in an effect table where you set the volume.

jchJCH 20.G4 (C64, 1991), screenshot taken from HVMEC

Synthetic trackers are typically not ideal for playing with more complex volume dynamics. One reason is limitations in the platform that generates the sounds. As a composer you cannot set the volume any way you please; you are dependent on the so called ADSR capabilities of the hardware/software (the volume curve generator). A special example is the C64, where the dynamics are highly determined by the hardware due to the ADSR-bug in the soundchip. It means that you can never be completely sure that an instrument will play with the same volume envelope. It depends on what ADSR-values the previous instrument had, and when it was executed. Also, some ADSR-settings tend to produce clicks, which can make it frustrating to program clean delays for example.

This is easier with sample-based trackers such as Protacker (Amiga, 1990), since you can set absolute volume levels at any point. In these tracker you can also use instruments with fixed volume curve. An audio sample sounds the same each time you trigger it. But the duration varies with different notes, because a higher note means a higher speed, and therefore the sample ends faster. Usually this is fixed by looping the sample, and setting the volume directly in the tracker instead. Each time you initiate the sound, you have to manually set the volume decrease: A0F, A0F in the 1st channel below. Without copy-paste functions, it takes a lot of work to write the same volume envelope each time an instrument is triggered. Being a somewhat lazy composer thus only increases the amount of volume dynamics.

protracker-3.15Protracker 3.15 (Amiga, 1993), screenshot from xmp @ sourceforge

In a sense then, we are back to the explicit note duration style of Harmony Compiler. To complete the circle, we can consider the tracker-like software that works with explicit note duration. HVMEC defines such software as editors, rather than trackers. In the screenshot of DMC below, you can see the pattern editor on the right side. Notes share space with commands (DURation, SouND, SLiDE), which means that step #8 (ADR.00) in this channel, might not be the same place in time as step #8 in the other channels. This adds a new layer of trickery, and I remember cursing a lot when using this back in the days. But the detachment of channels and the lack of overview, means that you can play with polyrhythms very easily – a feature I always appreciated also in LSDj. It is as far as I know, not very common in your average piano roll software, where the master clock is an authoritative master.

dmcDMC 5.1 by Brian & DJB (C64, 1997), screenshot from HVMEC

To conclude then – it seems that from the software discussed here, the sample-based ones give the most direct control over volume duration. In my view, this is reflected in the amount of volume/duration dynamics in Amiga MOD-music compared to C64-music. But, the difference is not necessarily between sample-based or synthetic trackers. In Musicline Editor (Amiga 1995) you can control synthetic sounds with pattern effects for both instrument volume, ADSR and channel volume. But this flexibility is possible only because the synthesis is made in software. In LSDj (Gameboy) there are also different ways to experiment with the volume, but it’s determined by the hardware’s limitations in ADSR.

The point with medium-specific analysis is to keep one thing constant across different media, and even if this was a rather basic attempt, it does give some interesting results and some basics to start from. Then you can start looking at hacks to overcame hardware limitations in volume control, such as for the 2A03.

13 Responses to “Note Duration in Chipmusic Software”

  1. yonxUP Says:

    nice article!!

    another interesting field for the same type of analysis would be the compositional consequences of how chipmusic editors handle note-position (syncopation/triplets etc), which is perhaps the greatest difference from traditional composing using instruments or pianorolls..

  2. TRUE CHIP TILL DEATH • Note Duration in Chipmusic Software Says:

    […] CHIPFLIP. Share […]

  3. Software Chiptune « Chiptuneportugal Says:

    […] Artigo interessante no Chipflip sobre […]

  4. ftc Says:

    A note for nerds: Note that programs which are using “tracker representation” (a la JCH/SDI/defMON, in contrast to “duration representation” a la DMC) on the C64 usually convert the data, under the hood, to “duration representation” when the tunes are finally “packed” to be useable in a demo or so. Another thing: The distinction between tracker/duration representation is actually twofold. It is possible to have duration representation in the actual player code/music data, but still visualize it “as if” it was tracker representation in the music editor, and vice versa. In practice, the representation of the player and the visualization in the music editor tends to go together though. Over and out!

  5. linde Says:

    Good read! Speaking of volumes/envelopes, in the FM synth tracker I’m using (TFM Music Maker – designed for 2x YM2203 chips on the Turbosound FM ZX Spectrum expansion) there is independent volume control of each channel, and I think it’s really convenient when composing now that you mention it. I haven’t given it much thought before, though.

    And regarding differences in tracker representation and player format: I remember reading somewhere that TFM actually makes no distinction between tracks, notes, pitches etc. and the music data as presented to the player is just packed start-to-end streams of the register values. From a coder point of view I guess it would come in handy when adding new effects without making changes to the final play routine, but I’m not sure if it’s a waste of space.

  6. chipflip Says:

    another old (1970) text-based style, used in MUSYS:

    “Here is a typical macro that corresponds to a single note of music:

    NOTE O1.%A. A1.%B. E1.%B/2+7. T1.%C-1. E1.%B/2+2<7. T1.1 T=T+%C @

    The two letter codes identify devices. For example: O1 is oscillator 1, A1 is amplifier 1, and E1 is envelope shaper 1. The definition of NOTE assumes that oscillator 1 has been patched through amplifier 1 and envelope shaper 1. (It was possible to alter the patch dynamically using electronic switches, but not many composers used this facility.) There are also pseudo-devices: T1, for example, indicates a delay.

    A composition consisting of a single note might look like this:

    #NOTE 56, 12, 15;

    This note has pitch 56 (chosen from an eight-octave chromatic scale with notes numbered from 0 to 63), loudness 12 (on a logarithmic scale from 0 to 15), and duration 15/100 = 0.15 seconds. The loudness value also determines the envelope of the note."

    more @

  7. Paper: Amiga Music Programs 1986-1995 « CHIPFLIP Says:

    […] where SidMON offered a higher level of flexibility. I am not sure though. For example, in a previous post I concluded that sample-based software enabled and encouraged more complex handling of note […]

  8. tony Says:

    Do you know much about .it(impulse tracker) format? It is similar to xm and s3m, although it allows some of the power or “duration” notation with envelopes(which xm has as well), and most uniquely, “new note actions”. In most trackers, when a new note is encountered, the old note can either fade out, or keeping playing, depending on what the “new note action”, and the instrument ASDR envelope is set to.

    However, its just this sort of thing which makes purists dismiss .it in favor of .xm. It seems overcoming the duration limitation is right at the breaking point of what a purist will use.

    Impulse tracker format is probably one of the most powerful module formats today.

    • chipflip Says:

      Thanks, I wasn’t aware of that. .it can also use more channels than .xm, right? I’m definitely looking forward to future tracker-standards with more interesting features. It’s time to move on. The matrix-thing in Renoise is an interesting thought, although Renoise songs are not really tracker music in that sense.

  9. MP3 is so passe « CHIPFLIP Says:

    […] much like previous hacker music as found in e.g HAKMEM and Creative Computing in the 1970s, or elsewhere in the […]

  10. Soundtrackers, Hypertrackers and Acidtrackers « CHIPFLIP Says:

    […] Trackers are step sequencers, while editors require the user to set the duration of each note (more here). The term hypertracker excludes programs like Soundmonitor or Future Composer, because they are […]

  11. Ancient Trackers | CHIPFLIP Says:

    […] First of all, let’s define a tracker as a vertical step sequencer with alphanumerical symbols where positioning controls time but not pitch. They are either absolute (for soundtrackers) or referential (as in hypertrackers). Although there are other types of trackers, this covers the bulk of them (read more here and here). […]

  12. Trackers from 1981 and 1983 | CHIPFLIP Says:

    […] trackers don’t do this, but there is a strain of trackers with explicit duration that are sometimes called editors. (note that Muzix81 has a step sequencer for drums […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: