Pinkmongoose.co.uk

BoxyLady user manual

articulations(...)

This section describes the articulations(...) function, used within notes mode, which allows the articulations applied to notes to be completely redefined.

The articulations function is modal, in that the instructions within it are specialised and executed in order as follows...

new(): resets the articulations and starts again from scratch, otherwise current settings are preserved.

standard_articulations(): assigns the standard set of articulations as described at notes.

list(): lists the current settings.

Any other command that doesn't match to the above, of the form X(LIST_OF_SETTINGS) is taken to assign a new (or replace an existing) form of articulation to be applied to subsequent notes. X is currently limited to a single character, which can be any legal character (i.e. not brackets, =, etc.). The list of possible settings for an articulation are as follows. If these are omitted, the articulation has no effect on that setting. Multiple articulations on a note are evaluated left to right.

amp(A): sets the amplitude multiplier. Values >1 indicate an accent.

amp() is unusual here in that its settings act multiplicatively with settings in notes mode. All the other settings below take precedence over settings in notes mode (and thus can be used to turn these or global settings off as well as on on a note-by-note basis). All note-specific articulations take precedence over those automatically generated by beats(...).

staccato(D): sets the portion of time for which the notes sounds, 0 ≤ D ≤ 1.

start_slur(): this articulation causes a slur to start.

stop_slur(): this articulation causes a slur to stop.

glide(BOOL): a pitch glide fills the whole note.

rev(BOOL): sets reverberation for notes after their rhythmic duration.

D_rev(NUM DENOM) D_rev(NUM): sets an explicit note duration as does the function in notes mode.

env(ENVELOPE) envelope(ENVELOPE): applies a volume envelope to the note, taking priority over any other envelope setting. No built-in articulation uses this, nor those outlined below.

env_adjust(BOOL): automatic adjustment of envelope length, as in Notes Mode.

stereo(L R): Applies a stereo setting to the note. L and R must be specified (i.e. forms such as stereo(off) are not allowed here).

vib(FREQ AMP OFFSET BEND BEND_T): Works as the function in notes mode, applying vibrato and pitch bend.

port(TIME): Sets the portamento time for slurred notes.

scratch(with=WITH f=FACTOR bias=BIAS loop=LOOP): Works as the function in notes mode, applying frequency modulation.

tremolo(FREQ AMP): Works as the function in notes mode, applying amplitude modulation.

articulations(
	S(staccato(0.6))
	M(staccato(0.7) amp(1.5))
	list()
)
c d e-S f-M g

beats(...)

This section describes the beats(...) function, used within notes mode, which allows the articulations to be rhythmically applied to particular notes.

The beats function is modal, in that the instructions within it are specialised and applied in order as follows...

new(): resets the beats and starts again from scratch, otherwise current settings are preserved.

list(): lists the current settings.

beat(NUM DENOM) beat(NUM): Sets the beat counter to the duration specified (as with the D(...) function in notes mode).

Any other command that doesn't match to the above, of the form XYZ(articulations=ART D(...) offset(...) width(...)) is taken to assign a new (or replace an existing) type of periodic application of an existing articulation. The name XYZ can be any valid string and is not used by the programme elsewhere. ART is a list of articulations to be applied (in order). articulations=off disables articulations for this entry. The other three parameters are lengths, again specified as with D(...) in notes mode. D represents the frequency of the beat (in quarter note beats or a fraction of a whole note). offset represents the offset in relation to this frequency, units as above. This is optional and defaults to 0. width represents the width of the window around this period when the articulation is actually applied. The width defaults to 0.01 if omitted.

The following example applies strong and weak accents on the first and third beat in 4/4 time.

beats(
	new()
	first(articulations=^ D(4) offset(0))
	third(articulations=- D(4) offset(2))
	beat(0)
)	

The beats counter works best in tune mode, where it is advanced by the length (in terms of the tempo, not absolute time) of any notes and rests. Because it doesn't work on absolute time, you can use rall() and tempo() with beats(), as well as precision(), offset(), arp() and similar.

If barline checking with | is used in notes mode, a beat must be set up equivalent to barlength, applying an articulation that sets the special setting bar(T). By default, this is |. For example, for 4/4 time:

beats(
	bar(articulations=| D(4))
	beat(0)
)
4 c d e f | g a b c |

When in tempo_mode(time) mode, the beats counter is incremented in the same manner, with an implicit tempo of 60 bpm.