Musicology

Microtonality
On elec­tron­ic instru­ments such as the Bol Processor asso­ci­at­ed with Csound, micro­tonal­i­ty is the mat­ter of “micro­ton­al tun­ing”, here mean­ing the con­struc­tion of musi­cal scales out­side the con­ven­tion­al one(s) …
Read More
Just intonation: a general framework
A frame­work for con­struct­ing scales (tun­ing sys­tems) refer­ring to just into­na­tion in both clas­si­cal Indian and Western approach­es …
Read More
The two-vina experiment
A com­pre­hen­sive inter­pre­ta­tion of the exper­i­ment of the two vinas described in Chapter XXVIII.24 of the Natya Shastra …
Read More
Melodic types of Hindustan
A scan of Bose, N.D. Melodic Types of Hindustan. Jaico, Bombay 1960 …
Read More
A Mathematical Model of the Shruti-Swara-Grama-Murcchana-Jati System
A scan of Arnold, E.J. A Mathematical mod­el of the Shruti-Swara-Grama-Murcchana-Jati System …
Read More
A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra
Bel, B. A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra. Note interne, Groupe Représentation et Traitement …
Read More
Raga intonation
This arti­cle demon­strates the the­o­ret­i­cal and prac­ti­cal con­struc­tion of micro­ton­al scales for the into­na­tion of North Indian ragas …
Read More
Creation of just-intonation scales
The fol­low­ing is the pro­ce­dure for export­ing just-intonation scales from mur­ccha­na-s of Ma-grama stored in “-cs.12_scales”. ➡ Read Just into­na­tion: …
Read More
A multicultural model of consonance
A frame­work for tun­ing just-intonation scales via two series of fifths For more than twen­ty cen­turies, musi­cians, instru­ment mak­ers and …
Read More
Comparing temperaments
Images of tem­pered scales cre­at­ed by the Bol Processor The fol­low­ing are Bol Processor + Csound inter­pre­ta­tions of Bach’s Prelude …
Read More

Misc. grammar controls

The fol­low­ing short exam­ples illus­trate the usage of spe­cif­ic con­trols of the infer­ence mech­a­nism in gram­mars of Bol Processor (BP2 and BP3).

_destru

This instruc­tion is use­ful in pat­tern gram­mars con­tain­ing rep­e­ti­tion and pseudo-repetition mark­ers. For instance, the fol­low­ing gram­mar cre­ates a sequence of two occur­rences of vari­able “X” which may fur­ther be derived as “abc” or “de”.

S --> (= X)(: X)
X --> abc
X --> de

In the first rule, (= ) is called a mas­ter paren­the­sis and (: ) a slave paren­the­sis — con­tain­ing a copy of the for­mer. This master-slave depen­den­cy is main­tained through­out sub­se­quent derivations.

The only eli­gi­ble final deriva­tions would be “abcabc” or “dede”. However, the final string would be dis­played for instance “(= abc)(: abc)”. To obtain a usable string in which ‘a’, ‘b’, ‘c’ may be fur­ther instan­ti­at­ed as sound-objects, it is nec­es­sary to remove struc­tur­al mark­ers. The Bol Processor does it auto­mat­i­cal­ly once the final string has been cre­at­ed, i.e. there are no more can­di­date rules for fur­ther deriva­tions. However, the user may want to dis­play strings with­out their mark­ers. Instruction _destru is used to this effect.

Let us con­sid­er for instance “-gr.tryDESTRU”:

-se.tryDESTRU
-ho.abc
// This gram­mar pro­duces var­i­ous pat­terns on alpha­bet …

RND
gram#1[1] <2-1> S --> (= (= X) S (:X)) (: (= X) S (:X))
gram#1[2] <2-1> X --> Y
gram#1[3] <2-1> X --> Y S Z
gram#1[4] <2-1> X --> Z

ORD
gram#2[1] LEFT S --> lamb­da [This is an eras­ing rule]

LIN
_destru
gram#3[1] X X --> abca
gram#3[2] Z Y --> abc
gram#3[3] Y Z --> cba
gram#3[4] Y Y --> cbbc
gram#3[5] Z Z --> lamb­da [This is an eras­ing rule]

The first rule in sub­gram­mar #1 cre­ates a self-embedding pat­tern in which the start sym­bol S is cre­at­ed again recur­sive­ly. This recur­siv­i­ty might pro­duce unlim­it­ed strings. To avoid this, each rule in sub­gram­mar #1 is assigned ini­tial weight “2” decreased by “1” once the rule has been fired. Therefore, no rule may be used more than 2 times. Subgrammar #2 con­tains a sin­gle rule delet­ing the left-over “S”.

Subgrammar #3 destroys the struc­ture by eras­ing all paren­the­ses and master/slave mark­ers, then it rewrites vari­ables “X”, “Y”, “Z” as strings of ter­mi­nal sym­bols. Tracing the pro­duc­tion shows for instance that workstring

(=(= Z)(=(= Y)(: Y))(:(= Y)(: Y))(: Z))(:(= Z)(=(= Y)(: Y))(:(= Y)(: Y))(: Z))

is replaced with “Z Y Y Y Y Z Z Y Y Y Y ZZ Y Y Y Y Z Z Y Y Y Y Z”.

Rewriting is then done strict­ly from left to right due to the LIN instruction.

The fol­low­ing is a series of 10 items pro­duced by this grammar:

abc­cb­bc­cbaabc­cb­bc­c­ba
cbacbacbacbacbacbacbacbacbacbacbac­ba
abc­cb­bc­cbaabc­cb­bc­c­ba
cbaabc­cbaabc
cbacbacbacbacbacbacbacbacbacbacbac­ba
abcab­cab­cab­cab­cab­cab­cabc
abcab­cab­cab­cab­cab­cab­cabc
cbb­cab­cab­cabc­cb­b­cab­cab­cabc­cb­b­cab­cab­cabc­cb­b­cab­cab­cabc
cbacbacbac­ba
cbbc­cb­bc­cbacb­bc­cb­bc­cbacb­bc­cb­bc­cbacb­bc­cb­bc­c­ba

Complex pat­terns are vis­i­ble on the fol­low­ing sound ren­der­ing of the first item using “-mi.abc” sound-object prototypes.

Item “abc­cb­bc­cbaabc­cb­bc­c­ba” cre­at­ed by -gr.tryDESTRU

Csound

Sarasvati vina
Full descrip­tion of a musi­cal phrase com­posed in 1995 by Srikumar Karaikudi Subramanian with Bol Processor and Csound …
Read More
Csound checkup
Checking the asso­ci­a­tion of Bol Processor (BP2 and BP3) with Csound …
Read More
Csound objects
The cre­ation of Csound scores based on sound-objects con­tain­ing Csound instruc­tions …
Read More
Csound tuning in BP3
This page deals with Bol Processor BP3 mak­ing use of an updat­ed ver­sion of Csound orches­tra file “default.orc”. Now, mod­i­fi­ca­tions …
Read More
Continuous parameters in Csound scores
The fol­low­ing are sim­ple exam­ples explain­ing the design of Csound scores con­tain­ing instruc­tions to con­trol para­me­ters that may vary con­tin­u­ous­ly …
Read More
Microtonality
On elec­tron­ic instru­ments such as the Bol Processor asso­ci­at­ed with Csound, micro­tonal­i­ty is the mat­ter of “micro­ton­al tun­ing”, here mean­ing the con­struc­tion of musi­cal scales out­side the con­ven­tion­al one(s) …
Read More
Just intonation: a general framework
A frame­work for con­struct­ing scales (tun­ing sys­tems) refer­ring to just into­na­tion in both clas­si­cal Indian and Western approach­es …
Read More
Raga intonation
This arti­cle demon­strates the the­o­ret­i­cal and prac­ti­cal con­struc­tion of micro­ton­al scales for the into­na­tion of North Indian ragas …
Read More

Algorithms

BP2 makes it pos­si­ble to use Csound orches­tra instruc­tions such as kr tablei kndx, ifn to make con­tin­u­ous para­me­ters vary …
Read More
Timebase to  polymetric
This algo­rithm is used by the PHP inter­face of Bol Processor ‘BP3’ under devel­op­ment. Read: https://bolprocessor.org/misc/BP3/CheckList.html#timebase It is imple­ment­ed in …
Read More
Csound argument mapping
Performing a qua­drat­ic map­ping using 3 points: how can we make sure that the func­tion will be monot­o­nous? …
Read More
Two algo­rithms for the instan­ci­a­tion of struc­tures of musi­cal objects …
Read More
Select can­di­date rules in a gen­er­a­tive gram­mar ran­dom­ly and apply them to the work­string until there is no more can­di­date rule …
Read More

Bol Processor BP3

BP3 is the mul­ti­plat­form ver­sion of Bol Processor under devel­op­ment in 2020. It is made of two modules:

  • A con­sole designed in C lan­guage for cross-platform com­pi­la­tion, con­tain­ing the core algo­rithms of Bol Processor
  • An inter­face allow­ing non-technical users to edit spe­cif­ic mate­r­i­al (gram­mars, sound-objects, Csound instru­ments) and inter­act with the con­sole for pro­duc­ing Bol Processor scores, MIDI files, Csound scores and real-time MIDI output/input.

Currently, the inter­face has been built in the HTML5/PHP envi­ron­ment which makes it pos­si­ble to work with Bol Processor on any web brows­er. The set­up is oper­a­tional in var­i­ous envi­ron­ments (MacOS X, Windows, Linux etc.) but it requires the instal­la­tion of a local Apache/PHP serv­er (see https://en.wikipedia.org/wiki/List_of_Apache-MySQL-PHP_packages).

Csound tuning in BP3
This page deals with Bol Processor BP3 mak­ing use of an updat­ed ver­sion of Csound orches­tra file “default.orc”. Now, mod­i­fi­ca­tions …
Read More
Bol Processor ‘BP3’ and its PHP interface
This PHP inter­face gives access to a pre­view of Bol Processor BP3 in any envi­ron­ment accept­ing the com­pi­la­tion of the bina­ry pro­gram …
Read More

Presentations

The fol­low­ing doc­u­ments will be updat­ed and/or migrat­ed to recent doc­u­men­ta­tion …
Read More
This PowerPoint slideshow is a detailed pre­sen­ta­tion, along with sound exam­ples, of Bol Processor in its BP2 ver­sion …
Read More
Is text an ade­quate tool for mod­el­ling musi­cal analy­sis, com­po­si­tion and per­for­mance? …
Read More

Related work

Installing and running BP1
Installing an emu­la­tor of the Apple II and run­ning ‘BP1’, the ini­tial ver­sion of Bol Processor …
Read More
BP1 in its real musical context
We are show­ing the oper­a­tion of BP1 in its real musi­cal con­text: the mod­el­ling of a ‘theme-and-variations’ piece of drum­ming (tabla) …
Read More
Random selection of an item in a fixed-cardinal set
Select can­di­date rules in a gen­er­a­tive gram­mar ran­dom­ly and apply them to the work­string until there is no more can­di­date rule …
Read More
Cambridge poster
Is text an ade­quate tool for mod­el­ling musi­cal analy­sis, com­po­si­tion and per­for­mance? …
Read More
Bol Processor, an overview
This PowerPoint slideshow is a detailed pre­sen­ta­tion, along with sound exam­ples, of Bol Processor in its BP2 ver­sion …
Read More
Old presentations
The fol­low­ing doc­u­ments will be updat­ed and/or migrat­ed to recent doc­u­men­ta­tion …
Read More
Bol Processor ‘BP3’ and its PHP interface
This PHP inter­face gives access to a pre­view of Bol Processor BP3 in any envi­ron­ment accept­ing the com­pi­la­tion of the bina­ry pro­gram …
Read More
Csound tuning in BP3
This page deals with Bol Processor BP3 mak­ing use of an updat­ed ver­sion of Csound orches­tra file “default.orc”. Now, mod­i­fi­ca­tions …
Read More
Microtonality
On elec­tron­ic instru­ments such as the Bol Processor asso­ci­at­ed with Csound, micro­tonal­i­ty is the mat­ter of “micro­ton­al tun­ing”, here mean­ing the con­struc­tion of musi­cal scales out­side the con­ven­tion­al one(s) …
Read More
Just intonation: a general framework
A frame­work for con­struct­ing scales (tun­ing sys­tems) refer­ring to just into­na­tion in both clas­si­cal Indian and Western approach­es …
Read More
The two-vina experiment
A com­pre­hen­sive inter­pre­ta­tion of the exper­i­ment of the two vinas described in Chapter XXVIII.24 of the Natya Shastra …
Read More
Melodic types of Hindustan
A scan of Bose, N.D. Melodic Types of Hindustan. Jaico, Bombay 1960 …
Read More
A Mathematical Model of the Shruti-Swara-Grama-Murcchana-Jati System
A scan of Arnold, E.J. A Mathematical mod­el of the Shruti-Swara-Grama-Murcchana-Jati System …
Read More
A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra
Bel, B. A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra. Note interne, Groupe Représentation et Traitement …
Read More

Tutorials

A beginner's tutorial
Harm Visser’s intro­duc­tion to the usage of gram­mars in Bol Processor …
Read More
Time patterns (‘smooth’ time)
A sim­ple gram­mar illus­trat­ing the use of time-patterns in smooth time …
Read More
Reference manual (BP2.9.8)
The com­plete ref­er­ence man­u­al for ver­sion 2 of the Bol Processor …
Read More
Csound checkup
Checking the asso­ci­a­tion of Bol Processor (BP2 and BP3) with Csound …
Read More
Csound objects
The cre­ation of Csound scores based on sound-objects con­tain­ing Csound instruc­tions …
Read More
Misc. grammar controls
The fol­low­ing short exam­ples illus­trate the usage of spe­cif­ic con­trols of the infer­ence mech­a­nism in gram­mars of …
Read More
Csound tuning in BP3
This page deals with Bol Processor BP3 mak­ing use of an updat­ed ver­sion of Csound orches­tra file …
Read More
Continuous parameters in Csound scores
The fol­low­ing are sim­ple exam­ples explain­ing the design of Csound scores con­tain­ing instruc­tions to con­trol para­me­ters that …
Read More
Microtonality
On elec­tron­ic instru­ments such as the Bol Processor asso­ci­at­ed with Csound, micro­tonal­i­ty is the mat­ter of “micro­ton­al tun­ing”, here mean­ing the con­struc­tion of musi­cal scales out­side the con­ven­tion­al one(s) …
Read More
Just intonation: a general framework
A frame­work for con­struct­ing scales (tun­ing sys­tems) refer­ring to just into­na­tion in both clas­si­cal Indian and Western approach­es …
Read More
Raga intonation
This arti­cle demon­strates the the­o­ret­i­cal and prac­ti­cal con­struc­tion of micro­ton­al scales for the into­na­tion of North Indian ragas …
Read More
Importing MusicXML scores
MusicXML is a very pop­u­lar XML-based file for­mat for rep­re­sent­ing Western musi­cal nota­tion. It is designed for …
Read More

Examples

Harm Visser's examples
A pre­sen­ta­tion and dis­cus­sion of a few exam­ples com­posed on Bol Processor by Harm Visser in 1998 …
Read More
Interactive improvisation with sound-objects
An inter­ac­tive BP2 gram­mar using sub­sti­tu­tion rules to cre­ate a uni­di­men­sion­al cel­lu­lar automa­ton …
Read More
A polyrhyth­mic piece “765432” com­posed by Andréine Bel for her CRONOS dance pro­duc­tion (1994) illus­trates the use of unde­ter­mined rests …
Read More
Computing ‘ideas’
A com­po­si­tion in Carnatic musi­cal style by Kumar S. Subramanian, June 1995 …
Read More
Grammar “-gr.ShapesInRhythm” was com­posed by Andréine Bel for her CRONOS dance pro­duc­tion (1994) …
Read More
Sarasvati vina
Full descrip­tion of a musi­cal phrase com­posed in 1995 by Srikumar Karaikudi Subramanian with Bol Processor and Csound …
Read More
Dice animation
Bol Processor’s imple­men­ta­tion of a musi­cal dice game attrib­uted to Wolfgang Amadeus Mozart …
Read More
Importing MusicXML scores
MusicXML is a very pop­u­lar XML-based file for­mat for rep­re­sent­ing Western musi­cal nota­tion. It is designed for the inter­change of …
Read More
Comparing temperaments
Images of tem­pered scales cre­at­ed by the Bol Processor The fol­low­ing are Bol Processor + Csound inter­pre­ta­tions of Bach’s Prelude …
Read More