Notes Functions

BoxyLady user manual

The instructions below assume that notes mode has been entered as explained previously.

Before musical notes can be generated, tempo, volume, and instruments should be selected with the following commands.

#SLOT: chooses SLOT as the currently selected instrument. Should not be issued within global. The implementation may choose to ignore this or raise an error.

rel(NOTE): Specifies that future notes will be relative to NOTE (in pitch notation), which is given as an absolute pitch (thus typically requiring several ' marks as the parser's default pitch is rather low. Does not generate notes itself.

tempo(TEMPO): Specifies the tempo, in crotchets per minute.

amp(VOL): Specifies overall volume of subsequent notes generated (0-1 typical range).

Many more music functions are available in notes mode.


rem("TEXT") and echo("TEXT") also work in notes mode.

! gives a brief "hash mark" to the console to show progress.

Musical effects

These all apply to the current context only.

stereo(L R): Sets the stereo position of subsequent notes. Acts multiplicatively with amp.

envelope(PARAMETER LIST): Defines an envelope to apply to subsequent notes. This is the correct way to apply an envelope to apply to "instrument" patches, rather than apply to the patch directly in sample mode (which will have strange effects).

vib(PARAMETER): Allows vibrato and pitch-sweep to be applied to subsequent notes.

transpose(NOTE): Normally, pitches are defined such that music written at a'''' will be played at a'''' where this is 440Hz. Here, notes written at a'''' will now be played back at pitch NOTE.

transpose(rel): The pitch c is now defined as the absolute pitch of the last note generated. Useful for chords libraries.

tuning(TYPE): TYPE can be one of 12tet 19tet pythagorean 4cmt for selection of 12-tone equal temperament, 19-tone, pythagorean, or quarter-comma meantone tuning. The note A is selected as that which is kept constant under different tunings. Note that notes enharmonically equivalent under 12tet are not under 19tet.

arp(DELAY): Normally, notes in a chords context begin simultaneously. Here, notes are delayed by DELAY (s) to provide an arpeggio effect.

R: This command should only be used in the top-level context of a seq-generated slot, and at the end after any notes. This provides a short extra rest (using the current note duration) at the end of the sequence allowing for reverberation, affecting only the P-TIME of the slot, not the T-TIME.

rall(t=DURATION f=FACTOR): Initiates a rallentando (gradual slowing) in the current context. The tempo is slowed to a factor FACTOR of its starting value, over a time period of DURATION.

Definitions created by def are included in the current by \SLOT. These calls can be nested. They do not create a new context automatically.

Other generated sequences or loaded patches can also be included using \SLOT. The current stereo and amplitude are applied to them, and they fill time in the same way as notes do.

!outer(COMMANDS) calls the outer, sample mode and performs the commands COMMANDS. For advanced use only. Attempting to use this to modify the sample currently being written will lead to unpredictable results.