The Bol Processor project

Select your lan­guage at the bot­tom of this page

BOL PROCESSOR is a pro­gram ini­ti­at­ed by Bernard Bel for music com­po­si­tion and impro­vi­sa­tion with real-time MIDI, MIDI file, Csound, and text out­put options. The ear­li­est imple­men­ta­tion of Bol Processor (BP1) on an Apple IIc com­put­er dat­ing back to 1981, was an expert sys­tem used by Jim Kippen for mod­el­ling impro­vi­sa­tion­al process­es by tabla play­ers in North India — read arti­cle (1992) and inter­view.

Bol Processor pro­duces music with a set of rules (a com­po­si­tion­al gram­mar) and/or text scores that can be typed in, cap­tured from a MIDI instru­ment or import­ed from MusicXML scores. These rule sets are sim­i­lar to the for­mal gram­mars (context-free, context-sensitive, etc.) used in com­put­er sci­ence to define machine-readable languages.

As a com­po­si­tion­al tool, Bol Processor (BP2) has been suc­cess­ful at mod­el­ling music of many styles includ­ing Western clas­si­cal music, ser­i­al music, con­tem­po­rary art music includ­ing min­i­mal­ism, and Indian clas­si­cal music. After the imple­men­ta­tion of its Csound inter­face, BP2 won the Bourges 1997 inter­na­tion­al award (ex aequo with Cecilia) in the cat­e­go­ry of computer-aided com­po­si­tion and real­i­sa­tion software.

“Shapes in Rhythm” com­posed by Andréine Bel and played by Bol Processor BP2
on a Roland D-50 syn­the­siz­er (1994)
Transposition of the Ma-grama basic scale in Indian music

Bol Processor BP2 had begun as a share­ware appli­ca­tion for Macintosh com­put­ers devel­oped by Bernard Bel with the help of Srikumar Karaikudi Subramanian. In the Spring of 2006,  Anthony Kozar joined the ven­ture and open-sourced the pro­gram with the hope that a com­mu­ni­ty of devel­op­ers will come togeth­er to port it to oth­er plat­forms and con­tin­ue to enhance its facil­i­ties for music-making. Porting BP2 to Mac OS X was fin­ished in June 2007 by Anthony Kozar.

➡ Vintage ver­sions of BP2 are still avail­able for both Mac OS X and Mac OS 7-9

Bol Processor BP3 intro­duced new fea­tures owing to its clos­er asso­ci­a­tion with Csound. Essential domains of musi­col­o­gy bear­ing rel­e­vance to com­put­er music are addressed on this site, among which the issue of micro­tonal­i­ty applied to just into­na­tion in Western har­mo­ny, tem­pera­ment in Baroque European music, and the into­na­tion of ragas in Hindustani music.

A cru­cial achieve­ment of recent work has been the import of MusicXML scores in Western music nota­tion, paving the way to using frag­ments of musi­cal works in BP3’s gen­er­a­tive sys­tem. The fol­low­ing record­ings are entire musi­cal works encod­ed as sin­gle poly­met­ric expres­sions:

François Couperin’s “Les Ombres Errantes” inter­pret­ed by the Bol Processor + Csound
with a “Rameau en sib” tem­pera­ment ➡ Image
Source: MusicXML score by Vinckenbosch in the MuseScore com­mu­ni­ty
Liszt’s 14th Hungarian Rhapsody inter­pret­ed by the Bol Processor
on a Pianoteq physical-model syn­the­siz­er
Source: MusicXML score by OguzSirin in the MuseScore com­mu­ni­ty
La Campanella — Liszt’s piano ver­sion inter­pret­ed by the Bol Processor
on a Pianoteq physical-model syn­the­siz­er
Source: MusicXML score by Heavilon in the MuseScore com­mu­ni­ty
Oscar Peterson’s “Watch What Happens” inter­pret­ed by the Bol Processor
on a Pianoteq physical-model syn­the­siz­er
Source: MusicXML score by Jonasgss in the MuseScore com­mu­ni­ty
Microtonal scale based on 2 series of per­fect fifths
(Produced by Bol Processor)

This site includes a doc­u­men­ta­tion of algo­rithms imple­ment­ed in Bol Processor as well as tuto­ri­als for a bet­ter under­stand­ing of relat­ed con­cepts in sev­er­al musi­cal tra­di­tions. Basic con­cepts are exposed to read­ers unfa­mil­iar with these dif­fer­ent cultures.

➡ Download and check Bol Processor ‘BP3’ with its PHP interface

As an open source project host­ed by GitHub, we are tak­ing Bol Processor into the next stage of its evo­lu­tion. We hope that BP3 will become more mod­u­lar, sep­a­rat­ing its com­pu­ta­tion­al engines for musi­cal gram­mars, poly­met­ric expres­sions, and pow­er­ful time-setting algo­rithms into soft­ware libraries that may be incor­po­rat­ed into oth­er open source software.

A stand­alone ver­sion com­piled from the PHP/Javascript/C pack­age is about to be released. We plan to use the PHP Desktop plat­form. We need the help of programmer(s) con­ver­sant with this envi­ron­ment!
Contact us!

Bernard Bel & Anthony Kozar

Please join the BP users help forum , BP open dis­cus­sion forum and/or the BP devel­op­ers list to stay in touch with work progress and dis­cus­sions of relat­ed the­o­ret­i­cal issues.

➡ Visit the grow­ing sets of exam­ples and tuto­ri­als on this site
➡ Download a PowerPoint slideshow intro­duc­ing the Bol Processor with sound exam­ples (zip file, 150 Mb)
➡ YouTube video: “Bol Processor - 39 years!”
➡ Join our project on GitHub!
➡ Read the BP3-to-do file