The Bol Processor project

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.

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 very 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.

Transposition of the Ma-grama basic scale in Indian music

As a com­po­si­tion­al tool, Bol Processor (BP2) has been suc­cess­ful at mod­el­ing 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­iza­tion software.

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.

➡ Versions of BP2 still avail­able for both Mac OS X and Mac OS 7-9

Bol Processor BP3 intro­duced new fea­tures owing to its 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 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 system.

Beethoven’s Fugue in B flat major — piano ver­sion (MusicXML score) inter­pret­ed by Bol Processor on a Pianoteq physical-model synthesizer
Microtonal scale based on 2 series of per­fect fifths

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 traditions.

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

As an open source project host­ed by Sourceforge and 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 soft­ware. A stand­alone ver­sion com­piled from the PHP/Javascript/C pack­age is also under study.

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.

Bernard Bel & Anthony Kozar

➡ 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!
➡ All file releas­es for this project