[HT] HighTom
[MT] MidTom
[LT] LowTom
[HC] HighConga
[MC] MidConga
[LC] LowConga
[MA] MAracas
[CP] ClaP
[CL] CLaves
[CB] CowBell
[CH] ClosedHat
[OH] OpenHat
[CY] CYmbal
[RS] RimShot
[SD] SnareDrum
[BD] BassDrum
¿50? Rest
¡64! Dynamics
<12> Pitch
{2} Repeat

TextXoX is a drum machine based on the Park.js Web Audio composition system. The goal of Park.js is to combine the conceptual simplicity of a step sequencer with the algorithmic flexibility of a live coding language. TextXoX uses a slightly simplified subset of the features of Park.js in order to create a simple, but hopefully fun and powerful, drum machine.


TextXoX presents an (optional) brevity challenge. If you are able to keep your composition under 116 characters, click the Twitter icon to send a tweet with the full score of your work along with an embedded link that will bring recipients back to TextXoX, where they can hear your masterpiece. If you're not able to keep it short, that's OK, you can still send the tweet after first truncating the text in the tweet editor page. In this case your Twitter followers will not see the whole score in your tweet, but the composition will remain intact when they click the link and visit the TextXoX site. Either way, you’ll have the opportunity to edit the tweet text before it is sent.

If you'd like to share your work privately, click the envelope icon to send your new work to a friend via email.

Thanks for trying out TextXoX. Please let me know if you have any questions or comments via email or Twitter. Have fun!

Damon Holzborn
Rustle Works


Each TextXoX composition combines one or more Drum Tracks. Each track may use optional modifiers for adding variety in the rhythm, pitch and dynamics (see the Advanced section to learn about modifiers). Just type up your score and hit Start to hear your creation.

Important: After each addition/modification you make to your score, you need to tap the Update button in order to hear the modified work. You do not, however, need to stop and re-start TextXoX in order to update your score. The modified composition will start automatically at the start of the next bar.

Each score consists of a line setting the tempo (optional) followed by one or more Drum Tracks.


The default tempo is 120 beats per minute. If you wish to set a different tempo, you may do so by including a line at the beginning of your score that consists of an & character, followed by the number of beats per minute (without a space between the & and the number). The tempo line is optional. If you do not provide a tempo, it will default to 120 beats-per-minute.

  • &130 = 130 beats per minute

Drum Tracks

Below the tempo, you may include any number of Drum Tracks (well, at least until your computer begs you to stop…). Each Drum Track starts with the code-name of the drum within square brackets.

  • [CH] = ClosedHat
  • [BD] = BaseDrum
  •        etc.

See the buttons to the right of the Score Area for a guide to the drum code-names. Clicking one of these buttons will insert the drum code into the score area.

The rhythm for the Drum Track immediately follows the instrument. A comma represents a beat, and a period represents a rest. The beats and rests are evenly divided across the bar.

  • [BD],    = BassDrum on the downbeat
  • [CH],,,, = ClosedHat on the beat
  • [SD].,., = SnareDrum on the backbeat

That’s all it takes to create a simple beat in TextXoX. For further discussion of rhythm in TextXoX, and to learn how to create modifiers for your tracks to add variety and randomness, visit the Advanced section.

Repeating Rhythms

Single notes or patterns of notes can be repeated with the % symbol.

  • [CL],%    = Claves every sixteenth note
  • [CH],.%   = ClosedHat every eighth note
  • [HT],..,% = HighTom on the first and fourth sixteenth note of each beat


The number of beats and rests you type in a Drum Track will be spaced evenly in time across the bar. This means it’s easy to create interesting polyrhythms by simply including a different number of notes in each track. The following score would result in three Claps played in the time of four RimShots:

  • [CP],,,
  • [RS],,,,

Adding Variety: Using Modifiers

The Modifiers are where it really gets fun. Each of the four Modifiers enable you to add variety to the composition and/or inject randomness. Clicking one of the Modifier buttons to the right of the Score Area will inject it into the score wherever the cursor is currently placed in the Score Area.

Each Modifier applies to the Drum Track immediately preceding it. You may add any number of modifiers to a given track. Modifiers may appear on their own line immediately after the track that they are to modify or on the same line as the track they are to modify.

Rest Modifier

The Rest Modifier creates variety in your rhythms by randomizing whether or not a note will be played. The number(s) contained inside the ¿? provides the percentage. The symbols following that provide further instruction.

  • ¿85?+ = each note has a 85% chance of playing
  • ¿85?- = each note has an 85% chance of not playing

Pitch Modifier

The Pitch Modifier enables the assignment of a random or fixed pitch shift. The number(s) inside the <> provide the amount or range of the pitch shift. The symbols following that provide further instruction.

  • <12>+ = random - 0 to 12 semitones up
  • <6>-  = random - 0 to 6 semitones down
  • <8>/  = random - 0 to 8 semitones up or down
  • <4>^  = fixed - exactly 4 semitones up
  • <2>_  = fixed - exactly 2 semitones down
  • <-2>^ = fixed - exactly 2 semitones down (using negative numbers to create the same effect as the previous)

Dynamics Modifier

The Dynamics Modifier effects the volume of the note. The volume scale of TextXoX ranges from 0 (silent) to 127 (loudest). The base volume of a note (i.e. the volume of a note that has no Dynamics Modifier) is 64. The number(s) inside the ¡! provide the amount or range of the dynamic modification. The symbols following that provide further instruction.

  • ¡40!+  = random - add 0 to 40
  • ¡25!-  = random - subtract 0 to 25
  • ¡10!/  = random - add or subtract 0 to 10
  • ¡30!^  = fixed - add exactly 30
  • ¡35!_  = fixed - subtract exactly 35
  • ¡-35!^ = fixed - subtract exactly 35 (using negative numbers to create the same effect as the previous)

Repeat Modifier

The Repeat Modifier causes the repetition of a note either by subdividing the beat to make a sequence repetitions that are shorter than the note being modified, or multiplying it to create a sequence of repetitions in which each repeated note is the same length of the original note. While divide repeats will fill the same length of time as the note they are modifying (i.e. the new notes will add up the the same length as the original note), multiply repeats will take more time, thus taking the place of subsequent notes in your pattern. Note also that multiply repeats will not extend past the end of a bar, so may not behave as expected when used near or at the end of a bar.

  • {4}+ = random - 0 to 4 multiply repeats
  • {3}- = random - 0 to 3 divide repeats
  • {4}_ = fixed - exactly 4 multiply repeats
  • {2}/ = fixed - exactly 2 divide repeats