Bol Processor BP2 -- a 'QuickStart' 1.	A few notes on BP2 2. Sound-objects Title Page Index Contents

1. A few notes on BP2

BP2 is able to interact simultaneously with three environments: MIDI, QuickTime Music and Csound. The latter is presented in §17.

To produce MIDI or QuickTime music with BP2 you need either of the following setups:

The preceding setups may of course be combined. Once OMS has been installed you will be able to use its setup to direct BP2's output to the device of your choice in a MIDI studio, or to the internal loudspeaker via QuickTime Music. Again, installing OMS is highly recommended if you plan to spend some time with this and other MIDI music software.

Once you have understood what BP2 is about you will also be able to export music in two formats:

MIDI instruments (keyboard, guitar, drum, etc.) may optionally be used to control BP2.

Conventional sounds like cello, piano, flute, drums, etc., will be good enough for experimenting with BP2. Some of the supplied examples will indeed sound bizarre unless they are performed on the MIDI device they were designed for: a Roland® D-50 or D-550 synthesiser with patch data ROM PN-D50-02 and Musitronics Multitimbral Expansion card (phew!).

A few sound examples are attached to a paper available on line (see < http://www.fortunecity.com/victorian/dada/181/jim96/jim96.htm>). In the near future, more musical examples using common MIDI hardware, QuickTime instruments and Csound will be made available for demos.

BP2 is designed to run on a 14-inch monitor, i.e. minimum 640 x 480 pixels, with at least 16 gray or color levels.

1.1 Install BP2

BP2 is a stand-alone application running on Macintosh® configurations using a 68020, 68030, 68040 processor, PowerMac or G3. It does not require an arithmetic coprocessor. It is currently being developed and checked under MacOS 8.1 and will not run with system versions below 7.1. The PowerMac optimized version is called "BP2.9.3 (ppc)" and the 680x0 one "BP2.9.3 (68k)". We check every version under MacOS 8.1 on a "slow" Mac (PowerBook 5300cs) and a "fast" one (G3 / 333MHz).

To run "BP2.9.3 (ppc)" on a PowerMac, first drag the file "OMSLibPPC.slb" to the System folder, unless it has already been put there when installing another MIDI program . This file is supplied with BP2 in a folder named "Drag content to System". It is the shared library of OMS which BP2 requires even when it is not using OMS. The file will reside in the "Extensions" folder.

BP2 requires no other system extension or control panel. Its default settings file "-se.startup" and its on-line help file "BP2 help" must reside in the same folder as the program, not in the System folder.

If you still own an old version of BP2 you should trash it, install the new one and restart the computer holding down the 'command' (cmd) and 'option' keys down to rebuild the desktop. Keeping several versions of BP2 may lead to unpredictable situations. Do not hesitate to trash obsolete versions because files get automatically upgraded to the new version.

1.2 Try it

If you wish to run BP2 under OMS, first launch the OMS Setup utility and make sure that the required output runs fine. When you setup OMS the external MIDI device(s) must be plugged to the Mac and switched on, so that OMS will sense them automatically and create the appropriate studio setup document accordingly. Needless to say, the MIDI interface should also be powered on.

If the IAC Driver used for Inter-Application Communication is not displayed on the document, you should include it. For this, quit OMS Setup and run the customized installation of OMS.

The studio document should also display the QuickTime Music icon. If the icon is crossed, double-click it and check the box of QuickTime Music. Clicking the icon also allows you to set the pitchbend range to 2 semitones, the value used in examples of this document.

If a MIDI device (keyboard, synth...) is connected to the MIDI interface attached to a serial port, the icon of the port ('modem' or 'printer') should be dispayed along with a line connecting it to the icon representing the device.

Type cmd-T (command-T) to activate "Test studio" and click the icons of QuickTime Music and other output devices. You should hear chords sent by OMS to these devices. Playing a MIDI keyboard should similarly produce a visual effect on the studio document.

If there is no communication, select " OMS MIDI setup" in the "Edit" menu to select the proper serial port.

In OMS MIDI setup you shoud also check "Run MIDI in background" as BP2 may be used as a server.

When done with all this, save the studio document and quit OMS Setup.

Users of MIDIshare should make sure that messages are routed via OMS. BP2 does not recognise MIDIshare and will communicate with it only via OMS.

If you try BP2 to use OMS while OMS is not active on your system, you will get an explicit error message and BP2 will switch to its own built-in driver, which has limited features.

At startup, BP2 reads information about the default OMS input and output stored in the "-se.startup" file. This file is supplied by default with the setting of QuickTime Music as the output, and no input.

Double-click BP2.9.3 (68k) or BP2.9.3 (ppc), depending on the type of computer you are using. In the welcome alert, click "Data", then click the button "Check MIDI" on the Control panel, and take the option "Check output." A dialog with 16 buttons resembling a calculator is displayed. Click button '1' to play random music on channel 1.

You may not hear anything at all. No panic! Try the following procedures:

Once you have performed changes in the "OMS input-output" menus, these may not work immediately. In any case you should store these changes to the default settings file. Select " Modify '-se.startup'" in the "File" menu. BP2 remembers where it found the startup settings file and will replace it with the updated one. If communication is not working, quit and restart BP2.

If the MIDI output is still dumb... There are bad days like this, notably when a group of enthusiasts or a person you invited for a candle dinner is sitting around waiting for a demo! Check cables, power supplies, amplifiers, speakers and the synthesiser's MIDI set-up until you hear sounds. (Maybe your device is not receiving on the proper MIDI channel? Check the channel number, set OMNI ON, or else, just call your little brother who knows all about such things...) Et voilà !

Don't invite your 'windoze' neighbour over a show until you can manage to make sounds. Otherwise s/he'll feel like saying something silly, for instance "my SoundBlaster card works better!"...

1.3 Run a script

(You can send your brother back to his video game now. Here comes some substantial stuff.)

Quit BP2 and double-click the "+sc.TryMe" file. BP2 will run this demo script which plays a short burst of music on the MIDI device (channel 1) or the loudspeaker (via QuickTime music) and prompts the user to hit a key of the MIDI keyboard or click the mouse.

You may skip the rest of this section if you are not enthusiastic about AppleScript and any programming stuff. Instead you might try working with simple notes (see §1.4), performance controls (§1.5), sound-objects (§2) or grammars (§3-4).

Type cmd-– or select "Script" in the "Windows" menu. The following script is displayed:

// This is a script for Bol Processor BP2
Show messages OFF -- avoid useless display
Note convention = English
Show graphics ON
Play {2,G4,E4,C4,- C5 - C5 {C5_-,A#4_ _}}
Show messages ON
Activate window Scrap
Type Welcome to Bol Processor BP2...
Type <return>
Type <return>
Type Hope you enjoyed the music!
Type <return>
Type <return>
Type If you didn't hear anything, select 'QuickTime Music' for the output in 'OMS input-output', then 'Modify -se.startup' in the 'File' menu. If Opcode OMS is not installed, or you don't know what OMS stands for, read the documentation...
Type <return>
Type <return>
Type The documentation is in the 'bol-processor-xxx-doc' folder, and examples in 'bol-processor-xxx-data'. ('xxx' is the version number) You must download these folders to use BP2.
Type <return>
Type <return>
Type <return>
Type BP2 is now waiting for you to play 'C4' on the MIDI keyboard, or click the mouse...
Wait for C4 channel 1

Script instructions can be created in three ways:

Instructions obtained by pulling down the "Script" menu are hilited below. The remaining instructions were recorded in the "REC" mode.

// This is a script for Bol Processor BP2
Show messages OFF -- avoid useless display
Note convention = English
Show graphics ON
Play {2,G4,E4,C4,- C5 - C5 {C5_-,A#4_ _}}
Show messages ON
Activate window Scrap
Type Welcome to Bol Processor BP2...
Type <return>
Type <return>
Type Hope you enjoyed the music!
Type <return>
Type <return>
Type If you didn't hear anything, select 'QuickTime Music' for the output in 'OMS input-output', then 'Modify -se.startup' in the 'File' menu. If Opcode OMS is not installed, or you don't know what OMS stands for, read the documentation...
Type <return>
Type <return>
Type The documentation is in the 'bol-processor-xxx-doc' folder, and examples in 'bol-processor-xxx-data'. ('xxx' is the version number) You must download these folders to use BP2.
Type <return>
Type <return>
Type <return>
Type BP2 is now waiting for you to play 'C4' on the MIDI keyboard, or click the mouse...
Wait for C4 channel 1

The first line is a comment preceded by the double slash // familiar to C programmers. The first instruction (second line) contains a remark preceded by "--", as in AppleScript or HyperTalk. The next instruction tells BP2 that simple notes shall be notated in the English convention. (See other conventions §1.11)

The instruction "Play..." tells BP2 to play a musical item on the selected output. Here the item is polyphonic and notated as a polymetric expression. You will learn more about polymetric expressions in §4.2 of this introduction, or §4.10 of the reference manual. In brief, the digit "2" indicates that the expression's length is 2 beats, while other fields separated with commas denote the four "voices". We have a chord {G4, E4, C4} sustained throughout the entire item, as well as a more complex melodic phrase "- C5 - C5 {C5_-, A#4_ _}" which contains another polymetric expression. Symbols '-' and '_' indicate silences and note prolongations respectively. Thus, "C5_" could be worth a half-note and "C5" a quarter-note.

Other instructions in this script are self-explanatory.

1.4 More notes

The "+sc.TryMe" script demonstrated BP2's ability to deal with " simple notes" in the same way most MIDI programs do. BP2 was initially designed to handle " sound-objects" containing arbitrary sequences of elementary events (MIDI messages or Csound score lines), and it still handles them. You will learn about sound-objects very soon. Meanwhile, here is an overview of things you can do with simple notes.

Type cmd-d or select "Data" in the "Windows" menu. Then type cmd-j or select "Type from MIDI" in the "Misc" menu. The cursor changes to a small keyboard: . From now on, any note played on a connected MIDI input device will print the note name at the current cursor position. It uses the convention selected in the "Misc" menu: English, French-Italian, Indian or Key numbers.

Notes may be transposed if "Transpose input notes" has been checked on the Control panel and a non-zero number of semitones has been entered near the check box.

In the " " mode, pushing the "hold" pedal inserts a one-beat prolongation '_'. There is a smarter way of entering durations: see the end of §4.3.

1.5 Performance controls

MIDI folks are primarily interested in controlling all sound parameters in a flexible and acurate way. A Japanese company is already offering direct control of MIDI by brainwaves! Perhaps the reverse -- controlling the brain from MIDI -- would make more sense, but this is what music is about after all.

Access to fine control may be compared with skills at playing an instrument. In BP2 the term performance control is used to name an access to such parameters.

The following is a demo of BP2's ability to control MIDI parameters. Detailed comments and sound examples may be found in (Bel 1996a) available from < http://www.fortunecity.com/victorian/dada/181/jim96/jim96.htm>.

Enter a sequence of notes using the MIDI keyboard, then select it with the mouse and type cmd-p, or select "Play selection" in the "Action" menu. You will hear the sequence just entered. Durations and velocity information are ignored. They can be specified afterwards. Notes are played with the current metronome setting (mm = 60 by default). Type cmd-m to change the speed.

Readers who never heard, and don't want to hear, about pitch benders and other MIDI torture instruments might jump to §1.11.

Let us now edit the sequence. Suppose that you entered "C5 D5 F5 G5 C6 A#5 A5 G5". Type cmd-j once again to return to text editing mode (the blinking cursor). Then try the following performance controls:

(These examples belong to file "-da.SomeNotes" that may be opened from the "Data" window.)

The last example deserves a comment: "_script(MIDI program x)" selects MIDI program x on the MIDI device, with the effect of changing the timbre (the "patch"). This generally requires a set-up time on the synthesiser, roughly 0.5 second on my D-50 and much more with QuickTime Music. It is therefore not advisable to insert this instruction in a fast movement. It is generally better to use a multitimbral patch able to assign a different instrument to each MIDI channel. QuickTime Music does it fine; see "MIDI orchestra" in the "Devices" menu and follow on-line help.)

Performance control "_script(MIDI program...)" may be recorded by BP2 in the same way notes are entered: type cmd-j and change the patch manually on the MIDI device. This will paste the instruction to the current edit window.

Instead of typing performance controls you may pick them from a predefined list: select "Pick performance control" in the "Edit" menu.

If you want to know everything about performance controls in BP2, you may activate the "Data" window and load "-da.checkControls". (Type cmd-o or select "Open" in the "File" menu.) There is a line "-gl.GeneralMIDI" on top of the window, meaning that BP2 is going to use a glossary comprehensible to synthesisers based on General MIDI.

To hear all examples, type cmd-a or select "Select all" in the "Edit" menu, then type cmd-p or select "Play selection" in the "Action" menu. BP2 skips remarks and plays all items in the window.

1.6 What else can be controlled?

MIDI specifications make it possible for BP2 to handle continuous changes of the following parameters:

The sampling rate (default 50 messages per second) can be adjusted to compromise between accuracy and MIDI bandwidth. Keep in mind that BP2 creates messages in real time, sometimes resulting in hundreds of messages being sent to MIDI every second. Some of them might get lost notably if other MIDI devices are active on the same network. When this happens it is necessary to reduce sampling rates to the minimum values required for smooth movements. Ten messages per second would be enough in many cases.

Velocity is not controlled continuously: a unique velocity value is assigned to every note or sound-object. (In the case of sound-objects it is possible to instruct some objects to ignore this velocity assignment.) Velocity values may be interpolated between two pre-set values along the sequence. This is done using instruction "_velcont" (or equivalently "_velstep") which may be cancelled by "_velfixed".

Transposition is supported by the "_transpose(x)" command in which x is the number of semitones up (down if negative). Note that transpositions may be cumulated, using curled brackets (i.e. polymetric expressions). For instance,

_transpose(-3) { A4 _transpose(+7) C3 D3}

is interpreted as:

A4 _transpose(+4) C3 D3 [ ... since -3 + 7 = 4 ]


Controls are limited by MIDI specifications. For instance, it is not possible to assign different pitchbend corrections to several notes on the same MIDI channel. Fanatics of microtonal intonation must either content themselves with monodic music or distribute notes on separate channels.

Each MIDI implementation has its own limitations: for instance, Roland D-50 does not distinguish volume controls on separate MIDI channels, even though BP2 produces the correct messages.

Results also depend on the OMNI ON/OFF and POLY/MONO settings, briefly discussed in "-da.checkControls". See MIDI literature or the synthesiser's instruction manual for a detailed explanation. BP2 makes it possible to change these settings with script commands. These must be executed on the basic channel of the MIDI device. See the instruction manual of the device.

MIDI implementation are by-passed by some software environments. For instance, Opcode OMS makes it possible to use more than 16 MIDI channels; it simply maps channels above 16 to other devices. Future versions of BP2 will take advantage of such features.

Csound is another way of going far beyond MIDI. (See §17)

1.7 Entering the arguments of performance controls from MIDI

In the same way notes can be "typed" from the MIDI keyboard, the arguments of performance controls may be captured from a MIDI device. Suppose that you entered "C5 D5 F5 G5 C6 A#5 A5 G5" in the "Data" window. Select "Pick performance control" in the "Edit" menu and insert the following controls (or load file "-da.checkCapture"):

_chan(•) _pitchrange(•) _volumecontrol(•) _volume(•) _vel(•) C5 D5 F5 _vel(•) G5 C6 _mod(•) A#5 _pitchbend(•) G5 F5

Arguments marked by a period need to be replaced with numeric values. Type "1" for the argument of "_chan" and "200" for that of "_pitchrange", assuming that the pitch bender of the MIDI device is set to vary ± 200 cents, or another value if it is set differently. (Each semitone is 100 cents.)

Type cmd-j. The cursor takes its "keyboard" shape . Click the word "_pitchbend". The argument of "_pitchbend()" gets hilited. Now move the pitch bender. BP2 automatically converts in-coming pitchbend messages to cent values (within the specified range) writing the result as an argument of _pitchbend. Of course it is a good idea to play A5 or G5 while you are moving the pitch bender, so that you can hear the effect.

This process works if the pitch bender is sending messages to the specified channel. Otherwise, click "_chan", move the bender, and let BP2 record the channel number.

Hmmm. Great, but if I release the bender the final value is always 0, isn't it? The solution is to hit the space bar or click the mouse anywhere (outside the word "_pitchbend"...) as soon as the desired position has been reached.

Do the same with modulation: click "_mod" and move the modulation bender while playing notes. You can adjust the argument for "_vel(•)" similarly: BP2 records velocities of in-coming NoteOn's.

For volume, first click "_volumecontrol" and move the volume pedal to record its number (most likely 7). Then click "_volume" and record the pedal position.

Performance controls whose numeric arguments may be interactively entered are:

_chan(), _vel(), _mod(), _press(), _volumecontrol(), _pancontrol(), _volume(), _pitchbend(), _pan().

Values recorded in the last three ones depend on preceding "_volumecontrol()", "_pitchrange()" and "_pancontrol()" instructions respectively. Instructions "_volumecontrol(x)" and "_pancontrol(x)" instruct BP2 that controller x is the one modifying volume or panoramic respectively. Default arguments are 7 for volume and 10 for panoramic.

1.8 Articulation

Data file "-da.checkArticulation" demonstrates BP2's ability to deal with legato and staccato. The whole set of examples may be played with a "Cello" sound.

Articulation values may be interpolated between two pre-set values, given that "_staccato(x)" is equivalent to "_legato(-x)" and conversely.

1.9 Parametric performance control

For all performance controls taking an argument in range 0..127 it is possible to replace the argument with a control parameter K1, K2,... K32767. For instance, "_vel(K3 = 60)" will assign velocity 60 and set K3 to the same value. If later, for instance, _press(K3) is found, then channel pressure will be set to the current value of K3. These control parameters are therefore global numeric variables.

Parameters K1, K2... may also be used as weights in grammars (see §5.4 or reference manual §4.6) and may even be modified by MIDI controllers or NoteOn velocities, depending on infomation given in the "Interaction" window, for instance:

IN Param K3 = controller #18 channel 1

(See §6.5 for more detail)

1.10 Ranges of performance control arguments

The following ranges are imposed by MIDI specifications.

1.11 Changing note convention

There are four options for note conventions in the "Misc" menu: "English" (default), "French", "Indian" and "Key numbers". The convention is saved in the "-se.<filename>" settings, the name of which may appear on top of a grammar or data file. The default convention is saved in "-se.startup".

Changing the convention brings to front a keyboard dialog, for instance the one shown Fig.1 (French-Italian convention).



Fig.1 Changing the note convention to "French-Italian"


The selected names will be the ones used for displaying items. Alternate names (e.g. "reb" instead of "do#") are also recognised when parsing grammars, data or scripts. The selection of names is saved in the "-se.<filename> " settings file.

Octaves are numbered as per the convention:

middle C = C4 = do3 = sa4 = MIDI key number 60

If A4 = la3 = dha4 = 440Hz, then C0 (MIDI key 12) is approximately 16Hz whereas C1 or do1 (MIDI key 24) comes to about 32Hz ( le do grave du violoncelle ). Since these frequencies are low, MIDI keys 0 to 31 are rarely used for tonal data, but they might be reserved to other types of messages. The octave starting with MIDI key 0 is notated:

C00 Db00 D00...
do000 reb000 re000...
sa00 rek00 re00

whereas the one starting with MIDI key 12 is notated:

C0 Db0 D0...
do00 reb00 re00...
sa0 rek0 re0

This convention was not the same in previous versions of BP2. See §4.8 for customizing it.

1.12 Polyrhythmic sequences and polymetric expressions

Do not skip this section! It introduces one of the most useful features of BP2, and examples are easy to perform. (Lazy readers will find them in file "-da.PeriodNotation".)

Display the "Data" window and type cmd-j or select "Type from MIDI" in the "Misc" menu (see §1.4). Now, play a few notes on the MIDI keyboard. These are immediately transcribed to the "Data" window, for instance:

C5 D5 G5 F5 G5 C5 D5 D#5 D5 C5 A#4 C5

Now select this sentence and type cmd-p. A dull performance, isn't it? Keep in mind that BP2 allows all kinds of manipulations of note durations (see §1.8) and time patterns (see §9). For the moment we will use a plain metronome to demonstrate rhythmic possibilities at the level of the score. We call this dealing with symbolic durations.

1.12.1 The period notation

Insert periods (indicating beats), for instance:

C5.D5.G5.F5 G5.C5 D5.D#5.D5.C5 A#4.C5

Play this example. Symbolic durations have been resized automatically so that the sum of durations remains constant over each 'beat'. In western terminology, the item would be said to contain crotchets and quavers. In Indian terminology, the same would be described as tempo changes from hargun (speed 1) to dogun (speed 2).

This period notation is a recent feature of BP2. Previously, the simple (although less flexible) way of notating speed changes was:

/1 C5 D5 G5/2 F5 G5 C5 D5/1 D#5 D5/2 C5 A#4/1 C5

A slash followed by an integer number specifies the tempo, more precisely the density of sound-objects (in units per beat). We call it an explicit tempo marker. Tempo markers are still used in the present version, and may be combined with the period notation. Read on...

You may try all kinds of arrangements of periods on a sequence. You will find that changes of tempo may introduce fractional ratios. Try for instance:

C5 D5.G5 F5.G5 C5 D5.D#5 D5 C5.A#4 C5

Here, the duration of each note in "G5 C5 D5" and "D#5 D5 C5" is 2/3d that of the first note "C5". Is it possible to represent this example with explicit tempo markers? The answer is given by BP2: select the item and click "Expand selection" on the Control panel (accessed with cmd-=). The explicit notation is the following:

/3 C5_ _.D5_ _.G5_ _.F5_ _.G5_ C5._ D5_.D#5_ D5._ C5_.A#4_ _.C5_ _

in which '_' indicates a prolongation of the preceding note. The initial part "/3 C5_ _" means that the tempo is "speed 3" ( tigun in Indian notation), but since "C5" is followed by two prolongation symbols its resulting duration (3/3 = 1) is the same as in the preceding examples.

There is an important rule regarding tempo: in a sequence, the tempo of sound-objects or notes in the first beat sets the initial tempo, whatever the beat division. The initial tempo may be the default one "/1" unless otherwise specified. Examples will make it clear. First we introduce an explicit initial tempo:

/2 C5 D5.G5 F5.G5 C5 D5.D#5 D5 C5.A#4 C5

Now, something more tricky: although the third beat "G5 C5 D5" contains three notes we want it to be performed at "speed 2". This will force BP2 to resize other beats accordingly. The notation is:

C5 D5.G5 F5./2 G5 C5 D5.D#5 D5 C5.A#4 C5

What is the duration of the initial "C5" in this case? It is 3/2 that of each note in the third (and fourth) beats. Since the latter are forced to speed 2, the resulting duration for "C5" is 3/2 x 1/2 = 3/4. This is shown by the expanded notation of the same example:

/4 C5_ _ D5._ _ G5_._ F5_ _.G5_ C5_.D5_ D#5_.D5_ C5_.A#4_ _ C5._ _--

Note that for the sake of consistency BP2 completed the last beat with two silences '-'.

At this stage you might start figuring out that BP2 is smart in dealing with rhythmic problems. Imagine doing the previous examples on a MIDI sequencer using event lists or common musical notation... But there is more to come!

What happens if several explicit tempo markers are inserted? For instance,

C5 D5.G5 F5./2 G5 C5 D5./2 D#5 D5 C5.A#4 C5

is equivalent to the preceding example. One of the two markers is redundant. Putting several markers in the same sequence is useless and may even lead to inconsistency. For instance,

C5 D5.G5 F5./2 G5 C5 D5.D#5 D5 C5./3 A#4 C5

results in conflicting durations and will be rejected by the interpreter. A good strategy is to use no more than one explicit tempo marker in an entire musical item, and let the interpreter adjust durations accordingly. This explicit tempo marker is often in the beginning of the item, but it may be inserted elsewhere, notably in case the beginning tempo cannot be specified by an integer number.

Silences (notated '-') may of course be inserted in sequences and will be resized like simple notes or sound-objects, for instance:

C5.D5.- - F5 G5.C5

A sequence of several silences '-' may be replaced with an integer number. Thus, the preceding notation is equivalent to:

C5.D5.2 F5 G5.C5

More generally, silences may be defined as integer ratios. For instance, the item

C5.D5.3/2 F5 G5.C5

is interpreted as:

/7 C5_ _ _ _ _ _ D5_ _ _ _ _ _ - _ _ F5_ G5_ C5_ _ _ _ _ _

Sometimes it is difficult to calculate the duration of a silence, or it is more convenient to leave it unspecified so that the interpreter determines its value it in the current context. Silences with unspecified durations are called undetermined rests, notated '_rest' or '...'. Try the following

C5.D5.G5..../5 F5 G5 C5.D5 D#5.D5 C5.A#4.C5

or equivalently:

C5.D5.G5. _rest/5 F5 G5 C5.D5 D#5.D5 C5.A#4.C5

Given the context, the interpreter estimates that the simplest value for the undetermined rest will be 2/5 of a beat. The resulting interpretation is:

/1 C5 D5 G5/5 - - F5 G5 C5/2 D5 D#5 D5 C5/1 A#4 C5

Data file "-da.ShowPeriods" contains a few examples demonstrating the period notation.

Let's finish with a quizz: can you write a piece of music which keeps accelerating, using a unique symbol for the duration? The answer is 'yes', and the solution is given §4.11 of the Reference Manual.

1.12.2 Polymetric expressions

All features presented in §1.12.1 apply to polymetric expressions, which contain simultaneous musical fragments. The notation{A, B,...} means that expressions A, B,..., are performed simultaneously with identical (symbolic) durations. Expressions separated by commas are called fields of the polymetric expression.

The condition on equal durations is similar to the one in sequence operations. In fact, the same polymetric expansion algorithm is used. For example, the sequence

/1 C4 D4 E4 F4 G4.C5 D5 E5

is interpreted:

/3 C4_ _ D4_ _ E4_ _ F4_ _ G4_ _ C5_ _ _ _ D5_ _ _ _ E5_ _ _ _

Similarly, the polymetric expression

{C4 D4 E4 F4 G4, C5 D5 E5}

leads to a two-line score represented in a table, the phase diagram:





Note that a polymetric expression may contain several levels of curled brackets {} and any its fields may in turn be notated in period notation. Other features such as explicit tempo markers and undetermined rests apply in the same way shown with period notation.

Typical examples of rhythmic items combining period notation with polymetric expressions are given in the data file "-da.checkPoly". Simple examples will also be introduced further in the present document.

Read more about polymetric expressions in the reference manual §4.10.


Bol Processor BP2 -- a 'QuickStart' 1.	A few notes on BP2 2. Sound-objects Title Page Index Contents