Csound argument mapping
Performing a quadratic mapping using 3 points: how can we make sure that the function will be monotonous?
This is part of document “Check of Bol Processor ‘BP3’ with PHP interface” on the “Bol Processor” website.
The algorithm is implemented in function Findabc() of "CsoundMaths.c".
When three pairs of input/output values are supplied, BP2 attempts to define a quadratic mapping from the input (x) to output (y).
This is an example of a successful mapping:
BP2 expects the mapping function to be monotonous, i.e. the three values (x1, x2, x3) supplied as the input and the ones supplied as the output (y1, y2, y3) must be strictly ordered. Even in this case a proper quadratic mapping may not be possible. See for instance:
Here the quadratic function is not monotonous even though the input values are ordered properly. In this case, BP2 replaces the incorrect part (the one containing an extremum) with a linear function, and changes the other part to make the curve tangent to the linear part. This yields the graph shown below:
Bol Processor BP3
BP3 is the multi-platform version of the Bol Processor that has been in development since 2020. It consists of two modules:
- A console written in C language for cross-platform compilation, containing the core algorithms of the Bol Processor
- An interface that allows non-technical users to edit or create specific material (grammars, sound-objects, Csound instruments) and interact with the console to produce Bol Processor scores, MIDI files, Csound scores and real-time MIDI output/input.
Currently, the interface has been built in the HTML5/JavaScript/PHP environment which makes it possible to work with the Bol Processor on any web browser. The setup works in different environments (MacOS X, Windows, Linux, etc.) but it requires the installation of a local Apache/PHP server.
Follow the instructions on the Bol Processor ‘BP3’ and its PHP interface page to install the latest version.
A standalone version compiled from the PHP/JavaScript package is about to be released.
Old presentations
The following documents will be updated and/or migrated to recent documentation.
Two algorithms
Two algorithms for the instantiation of structures of musical objects
This is an extended and revised version of the paper: Symbolic and Sonic Representations of Sound-Object Structures published in M. Balaban, K. Ebcioglu & O. Laske (Eds.) “Understanding Music with AI: Perspectives on Music Cognition”, AAAI Press (1992, p. 64-109).
A representational model of discrete structures of musical objects at the symbolic and sonological levels is introduced. This model is being used to design computer tools for rule-based musical composition, where the low-level musical objects are not notes, but “sound-objects”, i.e. arbitrary sequences of messages sent to a real-time digital sound processor.
“Polymetric expressions” are string representations of concurrent processes that can be easily handled by formal grammars. These expressions may not contain all the information needed to synchronise the whole structure of sound-objects, i.e. to determine their strict order in (symbolic) time. In response to this, the notion of “symbolic tempo” is introduced: the ordering of all objects in a structure is possible once their symbolic tempos are known. Rules for assigning symbolic tempos to objects are therefore proposed. These form the basis of an algorithm for interpreting incomplete polymetric expressions. The relevant features of this interpretation are commented.
An example is given to illustrate the advantage of using (incomplete) polymetric representations instead of conventional music notation or event tables when the complete description of the musical piece and/or its variants requires difficult calculations of durations.
Given a strict ordering of sound-objects, summarised in a "phase table" representing the complete polymetric expression, the next step is to compute the times at which messages should be sent. This requires a description of "sound-object prototypes" with their metric/topological properties and various parameters related to musical performance (e.g. "smooth" or "striated" time, tempo, etc.). These properties are discussed in detail, and a time-polynomial constraint satisfaction algorithm for the time-setting of sound objects in a polymetric structure is introduced. Typical examples computed by this algorithm are shown and discussed.
➡ Download this paper (PDF)
Bol Processor, an overview
This PowerPoint slideshow is a detailed presentation, along with sound examples, of Bol Processor in its BP2 version.
➡ Download the slideshow (Zip file, 150 Mb)
Presentations
Cambridge poster
Is text an adequate tool for modelling musical analysis, composition and performance?
This poster was presented at the conference Language and Music as Cognitive Systems in Cambridge (UK), on 11-13 May 2007.
➡ Download the poster (20 Mb PDF)
Shapes in Rhythm
This composition was part of the choreographic work CRONOS created by Andréine Bel and performed at the National Centre for the Performing Arts (Mumbai, India) and the Shri Ram Center (Delhi) in October 1994.
The following grammar "-gr.ShapesInRhythm" was written (in about 2 days) by Andréine and Bernard Bel.
There were six dancers on the stage: Smriti Mishra, Olivier Rivoirard, Vijayshree Chaudhary, Arindam Dasgupta, Somenath Chatterjee and Suresh Shetty.
The musical structure consists of 9 parts using very different sound patches played on Roland D-50 synthesiser with a Musitronics extension card. Each part is based on the rhythmic structure of a tihai: three equal repetitions of a rhythmic pattern, interspersed with two equal rests, with the constraint that the last unit must fall on the first beat of the rhythmic cycle. The cycle has 16 beats, or tintal in North-Indian music/dance. Tihais are basic figures of Kathak dance and tabla drumming.
On an old Mac IIci, this would take 14 minutes to produce and time! For this reason, subgrammar instructions have been optimised: instead of the standard "RND" mode, "ORD" has been used wherever possible, otherwise "SUB1", whose process is a unique "parallel" rewrite of the work string.
Playing the piece required a 30-millisecond quantization setting which reduced the size of the phase table by a factor of 222. See Complex ratios in polymetric expressions for a detailed explanation.
At the time this grammar was written, BP2 did not support articulation or glossaries. This grammar has highlighted the need for such features.
Smooth time and time patterns (with time-objects t1, t2 and t3) were used because the dancers expected the first sections to start slowly and speed up. Thus, the composition starts at metronome 60, continues at metronome 80 and ends at 88. In this composition, however, striated time would be a much better option because speed changes can be managed using the "_tempo()" tool: forget time patterns, set the metronome to 88 and insert _tempo(60/88) then _tempo(80/88) and finally _tempo(1) to change speeds. This work was an incentive to implement the "_tempo()" performance tool…
Click this link to display the score of this piece.➡ Video at the bottom of this page.
An extract of this work is shown in the following video from 3mn 36s to 3mn 48s: