Music for Tablets – Real Time Counterpoint for the iPad


A unique kind of sequencer with multiple playback “heads” lets you make counterpoint in real-time on your iPad or computer.


by Warren Burt, March 2016


A canon is one of the basic structures of music.  You’re all familiar with them – “Row Row Row Your Boat” and “Frere Jacques” are two examples of what happens when a melody is sung by several different voices, but starting at different times.  More elaborate examples of this are called “counterpoint,” and this technique has been at the heart of Western Classical Music since at least the 1100s.  Even earlier examples of this technique may exist:  for example the “Ugarit Tuning Text” is a cuneiform text that seems to be an approximately 3400 years old, and seems to be instructions for tuning a lyre, with an example of music for it, which seems to be in 2 part counterpoint.  In any case, the technique has been around for a very long time.

A fugue is an elaboration on the canon idea.  A melody begins, and after a short time, another version of the melody begins, at a particular delay and in a particular transposition, while the first melody continues, making an accompaniment for itself.  Other voices may enter as well, and after a while, this “strict” counterpoint gives way to a freer section (called an “episode”) and imitations and episodes alternate in various ways for the remainder of the piece.  In the 20th century, the concept of the fugue and canon was greatly extended, with composers such as Conlon Nancarrow ( and Larry Polansky ( being two composers whose work expands the ideas of fugue and canon greatly.

Alexander Randon is a software designer based in San Francisco, who has created several interesting real-time composing/performing programs for both iOS and Android platforms.  His Arpeggionome and Arpio apps are very versatile extensions of the arpeggiator concept (for iOS and Android respectively), and now he has developed “Fugue Machine,” which is a very versatile iOS iPad-based counterpoint generating program.

Simply stated, it’s a piano-roll sequencer, which allows four different “playback heads” to read the piano-roll, at different speeds and transpositions, and in different directions.  And it allows you to change things in real time, so you can perform elements of your counterpoint while they’re happening.  It outputs MIDI, so you can use it to control any other soft-synth, either on the iPad you’re using, or (using programs like MusicIO or Studiomux), on any computer you happen to have available. At the moment, the four channels output only on one chosen MIDI channel, but Randon says he’s working on the idea of each channel having its own discrete MIDI channel. Expect this in a future update. STOP PRESS: The latest update has arrived! Each channel can now be sent out on a separate MIDI channel. As well, Program Change messages can now also be sent with each pattern.


Let’s take a look at the main panel.  This is a blank piano roll panel.  At the far left is a panel which selects the pitch range being displayed in the main window.  At the top is a panel which allows you to select a portion of the piano roll to be played, and below that, a window which can be expanded or contracted, which selects the portion of the piano roll that will be displayed and played.  At the right is a transposition panel which allows 2 octaves (one octave up and down) of transposition, in scale degrees.  In the panel itself, the four vertical colored lines show the position of each of the “play heads” at any one moment.  At the bottom are the controls for the four voices, each has an on button (arrow), an off button (square) and a “performance panel” opening button (2 notes). Individual voices can be turned on and off with these buttons and real-time performance adjustments can be made by pressing the “2 notes” button.  At the bottom left is a play button (white arrow) and at the bottom right is a stop button (white square).  In the top right is a button (three dots) which opens an auxiliary panel with controls which can be changed in real time.  So there is lots of power here for live performance.


As seen above, this is the piano roll with some pitches entered in.  Duration is shown by length of the bar, pitch by position, and the small meter at the right end of each bar shows the velocity. Velocity can be changed by selecting that particular note with a light touch, then using a three-fingered swipe up and down.  It sounds tricky, but it’s actually quite easy.  One thing to note here is that pitch selection in Fugue Machine is not chromatic.  You are selecting pitches from seven degrees of a “diatonic” scale.  What those seven degrees are is determined by two interacting controls at the right side of the screen. 


In the Options Panel which pops up when you touch the “three dots” control at the upper right, there is an option to transpose the mode to any one of ten options – the seven “white key” modes, plus Harmonic Minor, Phrygian Dominant and Lydian Dominant.  There is another transposition control at the right bar of the screen, which also transposes the whole piano roll up and down by scale degrees.  If the transposition bar is set to the middle position (no transposition) and the Key is set to C, when the scales are changed with the Scale control, they will all start on the same note. This is particularly useful for those wanting to have Philip Glass style mode changes in the middle of a line, among other effects.  Of course, if you were controlling an instrument with a microtonal tuning loaded (such as Thumbjam), each change of mode could be an excursion into a whole other harmonic world.  At the top of this panel is Patterns, where you can access the preset piano roll patterns as well as your own patterns – these can be switched in real time – change is instant, without any hesitation or stuttering.  Below that is a tempo control, settable from 4 to 300 bpm.  Again, this can be controlled in real time so that smooth tempo changes can be manually performed.

More controls are shown here, for Loop Length (up to 8 bars of 16th notes – this is more useful than it might first appear), overall volume and reverb.  Reverb is only effective if the Internal Synth is selected in “Settings.”  If external MIDI is selected, then reverb level is set by the external app.









More options are shown here, including Settings, About, Quick Start, Parameter Reference, and Troubleshooting.  The Settings menu contains MIDI in and out settings (including receiving Program Changes), Sequencer Settings, Ableton Link settings, Pattern Backups, and options to show Note Values and Playhead Notes, and information about MIDI parameters.  Show Note Values allows the names of the pitches to be displayed in the piano roll note bars, if you’re zoomed in close enough.  Show Playhead Notes allows the notes shown in the Keyboard View at the far left to reflect changes in transposition and inversion for each individual voice.







Quick Start and Parameter Reference are quick Help files.  A typical page is shown above – this one shows how velocity is set and changed for each note in the piano roll.











This screenshot shows the settings for the playback parameters for each individual voice.  In this instance, the pink 8th notes shows that the parameters for Voice 2 are being set. This is the core of Fugue Machine’s power, and why it’s such an interesting program, as many many different kinds of structures can be obtained just by resetting these parameters – in real time, as well as before “play” is pressed. The parameters, left to right, are Style, in which you set either forward, reverse, forward then reverse, or reverse then forward playing through the selected portion of the piano roll; Tempo, where you select the speed at which the selected portion of the piano roll is played.  This can be divisions of the main tempo of /64, /32, /16, /8, /4, /2; at speed (i.e. tempo 1), and multiples of the tempo x2, x4 and x8.  Additionally each division or multiplication has three variations, quarter note (at speed); dotted quarter (3/2 speed), and triplets (2/3 speed).  Those are all the tempo divisions and multiplications available for now.  I would hope that in the future, Randon would consider introducing other rates, such as 3, 5, 7, 9, 11, 13 etc., so we could get truly complicated rhythmic relationships between the lines.  But for the moment, working with the divisions and multiplications by 2 and 3/2 and 2/3 of those does give plenty of scope for rhythmic variation.

The next Voice Parameter control is Start, which specifies at what rhythmic division you want this voice to begin at when a reset happens.  Like all the other parameters, this can be different for each voice.  The next control is Invert.  If this is selected (as it is in this voice) the lowest note becomes the highest note, and vice-versa, with the voice turned upside down.  Octave and Pitch controls are next.  Octaves for each voice can be changed up to + and -8 octaves, and Pitch Controls can be changed up to – and +12 scale degrees (not semitones, but scale degrees in the chosen scale).  Finally, there is a sliding control to control the Velocity range that will be applied to that voice.  This can be inverted by simply reversing which of the controls is on top and which on the bottom. 

So all these controls taken together can make really varied textures and counterpoints.  Add to that the fact that you can switch between piano roll patterns in real time, and change the Performance Parameters in real time, as well as changing the Options parameters, such as mode, key and transposition, all in real time, and you have a very powerful machine for making contrapuntal music where each line is derived from the same musical melody, or melodic pattern.


But wait, as they say on the Veg-O-Matic commercials, there’s more.  In this screen shot, you can see an 8 bar pattern, of which only the middle portion is selected.  So at this moment, that’s the only part of the piano roll that will be played.  If, using the top bar, you change which parts of the piano roll is selected, then that new portion of the piano roll will be played.  In a recent piece, I used Fugue Machine to control Thumbjam with a Grand Piano timbre in a number of microtonal scales and with constant changes of portion of the piano roll that was selected, as well as changes of tempo, mode, key, etc.  Needless to say, with that amount of control, even a mere eight measures of melodic material was more than enough to sustain interest for quite a while.

In short, this is a wonderful compositional tool, very cleverly conceived of and very nicely implemented.  I recommend it highly if you want to deeply explore the world of canons and polyrhythms, and have a lot of fun doing so.  And at only $9.99 USD, what’s not to love?


Fugue Machine: Real Time Counterpoint for the iPad – $9.99 USD available at the App Store

Browse SB articles
SoundBytes mailing list


Welcome to SoundBytes Magazine, a free online magazine devoted to the subject of computer sound and music production.


If you share these interests, you’ve come to the right place for gear reviews, developer interviews, tips and techniques and other music related articles. But first and foremost, SoundBytes is about “gear” in the form of music and audio processing software. .


We hope you'll enjoy reading what you find here and visit this site on a regular basis.

Hit Counter provided by technology news