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
Bernard Bel Note interne, Groupe Représentation et Traitement des Connaissances (CNRS), Marseille 1988. Download this paper
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 pro­ce­dure for export­ing just-intonation scales from murcchana-s of Ma-grama …
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

Bernard Bel A con­tri­bu­tion to The Ratio Symposium, 14-16 Dec. 1992, Den Haag (The Netherlands). Published in Barlow, Clarence (ed.) …
Read More
Tied notes
An algo­rithm for com­put­ing the time inter­vals of tied notes in Bol Processor BP3 …
Read More
Complex ratios in polymetric expressions
This page is for devel­op­ers of Bol Processor BP3 (read instal­la­tion). It is not a for­mal descrip­tion of algo­rithms car­ried …
Read More
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
Bernard Bel Note interne, Groupe Représentation et Traitement des Connaissances (CNRS), Marseille 1988. Download this paper
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
Importing MusicXML scores to Bol Processor BP3 …
Read More
Polymetric structures
Polymetric expres­sions are the basic rep­re­sen­ta­tion mod­el of musi­cal data in Bol Processor. The word is a …
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
Importing MusicXML scores to Bol Processor BP3 …
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