New features in BP2.8.0March 1998 |
Presentation of BP2 | |
Bernard Bel <bel@kagi.com> |
Last minute: read Bel's paper on BP2 to appear shortly in Computer Music Journal (vol.21, 5).
Even if you don't have OMS, you must drag "OMSLibPPC.slb" to the System folder before running BP2 on a PowerMac. The shared library is supplied in folder "Drag content to System" of the BP2 package.
BP2 receives Apple Events (from local or remote computers).
It is also able to create Apple Events and send them to a local application (running on the same computer), using script instructions:
AE send fast class '«AEclass»' ID '«AEID»' to application '«signature»'
AE send normal class '«AEclass»' ID '«AEID»' to application '«signature»'
If the target application is not active, BP2 will first look for it and open it.
This version solves reported problems of incompatibility with Opcode's Open Music System (OMS) under MacOS 8.0.
OMS is a software environment facilitating the setup of a MIDI studio and communication between MIDI devices and applications. It may be downloaded from <http://www.opcode.com> or <ftp://ftp.opcode.com>. The current version is 2.3.2. BP2 requires minimum 2.1.
OMS is a good environment for Macs and PowerBooks with single serial ports (such as the PB 1400, PB 150, etc.) which otherwise would not communicate with a MIDI interface unless either EtherTalk or IRtalk is active. Nevertheless, if you never used a single-serial-port Mac with MIDI, we recommend that you first set the Appletalk/Network control pannel to EtherTalk or IRtalk, and even turn off AppleShare, and then only run OMS setup to check MIDI communication via the serial port.
Thanks to QuickTime Music, OMS can send MIDI data to the internal loudspeaker (or the sound output) via a built-in synthesizer.
People who wish to use BP2 without MIDI hardware should therefore install OMS.
OMS allows Inter-Application Communication, thereby meaning the redirection of MIDI data between several (OMS compatible) MIDI applications running on the same computer. This makes it easy, for instance, to manipulate BP2's output with a real-time program like MAX, or conversely to use a MIDI sequencer as a remote-control of BP2.
To use Inter-Application Communication, the IAC driver must be installed. This can be done with the custom installation of OMS. After the installation, run the OMS setup utility and validate an "IAC bus". Make sure that "Running in background" is checked in the MIDI settings of OMS. Next step, start BP2, get to the "Devices" menu, select the "OMS input-output" item and set that same "IAC bus" for the output. Set in turn the same IAC bus as the input in the other program, e.g. Max.
Some problems have been reported by users of MIDIshare. One of them could not set up the MIDI input. This version is much more advanced as far as hooking MIDI devices is concerned. However,if you face any problem remember that BP2 does not communicate directly with MIDIshare. You must therefore check the setups of MIDIshare and OMS so that MIDI messages are routed to/from BP2 via OMS only.
If you find it difficult BP2 under OMS, read carefully the first pages of the "QuickStart manual", i.e. the first part of "BP2 doc - MS Word", the documentation supplied in the document folder of BP2 package, and don't hesitate to report unsolved problems or useful information to <bel@kagi.com>.
Some features of OMS (such as external synchronisation, patch selection based on names, etc.) have not yet been implemented. Experienced OMS users are invited to send requirements for future development.
This feature is accessible from the "Devices" menu. It shows a list of General MIDI instruments that have been assigned MIDI channels via "Program change" messages. (This works notably with multitimbral synthesizers such as that of QuickTime Music, on which each patch works on a single MIDI channel.)
To add an instrument, first click a channel number on the "MIDI" dialog (upper left), then click a program number on the "MIDI programs" dialog. The name appears and is inserted in the MIDI orchestra list. The list may be saved (with prefix '-or') or exported as a text file. MIDI orchestra files can be loaded automatically by grammars, alphabets or data if their names are placed on top of the window.
MIDI orchestra is a simple alternative to the General MIDI glossary whenever a single multitimbral patch is required. With the orchestra, changing the instrument means only changing a MIDI channel, and all instruments can play together. You may insert proper rules in the grammar or glossary for choosing an instrument, for instance:
Piano --> _chan(1)
Violin --> _chan(3) etc.
The "_transpose()" tool (see "Performance controls") has been improved. Transpositions may now be combined, using curled brackets (i.e. polymetric expressions). For instance,
_transpose(-3) { A4 _transpose(+7) C3 D3}
is now interpreted as:
A4 _transpose(+4) C3 D3 [ ... since -3 + 7 = 4 ]
BP2 can insert these messages thanks to embedded script lines, thus taking the control of other devices receiving MIDI data. Use script lines:
MIDI send Start
MIDI send Continue
MIDI send Stop
BP2 also responds to these messages when sent by other devices. Use script lines:
Wait for Start
Wait for Stop
Wait for Continue
Button "Synchronize start" on the bottom left of the "Settings" dialog, when checked, causes BP2 to hang waiting for a "Start" or a "Continue" message, unless this synchronization is assigned to a NoteOn message in the '-in' interactive file, with an instruction such as:
IN Start play C5 channel 1
Randomizing ("shuffling" the sequence of random numbers) is now possible in several ways:
They work great together!
Using the control panel "Smart Scroll" (© 1996-97 Marc Moini) improves display as the text will automatically scroll when the thumb is moved. Check Marc's web page at <http://marcmoini.com> or <http://www.kagi.com/authors/marc/> for the latest version.
More than we can write here...
We are transferring all the documentation to hypertext. This may still take a while, but we feel it's necessary and we welcome suggestions for a more user-friendly tutorial.
We are working on tools allowing transformations of sequences, such as retrogradation or interval stretching.
Some parameters will be treated as "ranges" rather than fixed values. For instance, _vel(20...30) would set velocities anywhere at random between 20 and 30.
The most exciting news is that Kumar and I will work hard on Csound features, following a proposal of Analog Devices Inc. and the MIT Media lab to promote computer music music in India with the help of their real-time Csound card. We invite users of Csound to come up with suggestions and musical examples that will incite us to boost up the cooperation between BP2, Csound, and optionally MIDI.
Below is a summary of current Csound features in BP2. The interface is described in §17 of the "QuickStart" manual (first part of "BP2 doc - MS Word").
Csound is a software environment for the design and transformation of digitized sounds. It runs on different platforms: Unix, NeXT, MacOS... Check and download the current version from <ftp://cecelia.media.mit.edu/pub/Csound/Csound.sit.hqx>.
To produce Csound scores the "Csound scores" option should be checked in the "Output" menu. A Csound score is created on request for each musical item produced by a grammar or played from its text representation (a BP2 "score"). The same musical items may be played on real-time MIDI, saved as Csound scores, MIDI files, or any combination thereof.
If the musical item contains simple notes or sound-objects defined as streams of MIDI messages, BP2 converts the stream to a sequence of Csound events, using specifications of Csound instruments defined in a "Csound instrument file". This file can be edited in the "Csound instruments" dialog accessible from the "Output" menu. Csound instrument specifications should contain data consistent with the "orchestra" file invoked by Csound at the time it compiles scores produced by BP2.
If no Csound instrument file is loaded, BP2 uses a default instrument which has the start/end timing parameters and accepts volume (range 0..127), pitch (in the "octave point pitch-class" format) and pitchbend (in cents). The orchestra file for this instrument is "BP2test.orc" in the example folder. It is of course recommended to design a Csound orchestra with instruments taking more parameters like channel pressure, modulation etc., which BP2 handles in a smart way, using a "vector" representation of continuous parameter changes.
Sound-object prototypes may also contain Csound scores. In this case, BP2 creates a Csound score of the musical item combining these individual scores. BP2 may produce Csound scores using only Csound events and Csound instrument specifications as an input, thereby bypassing the limitations of MIDI.
A mapping between Csound parameters values (the ones found in the Csound score) and MIDI / BP2 ranges may be defined by supplying three points. BP2 performs linear or quadratic interpolation, plus logarithmic mapping if requested to do so. (See the Reference Manual §9)
Waveform tables used by Csound instruments may be edited and stored along with the Csound instrument description file -cs.<name>. They are automatically inserted on top of Csound scores.
In addition to parameters mapped to MIDI controls such as pitchbend, modulation, volume, panoramic and pressure, BP2 handles continuously-varying parameters with arbitrary names specific to the Csound environment. (See "QuickStart" manual §17.5) ? This version of BP2 automatically generates function tables whenever these are required for the description of fine variations of parameters. These tables may invoke GEN07 or GEN08. (See "QuickStart" manual §17.12)
All Csound features are documented on-line in BP2.
Things Microsoft would never have told you...
Sound-objects may be captured from BP2 text scores.
(See "QuickStart" manual §2.3.2)
Select text in the data or grammar window and click button "Capture selection as..." on the Control Panel (or select the same in the "Action" menu). Then enter the sound-object editor (command-E) and click "Paste selection". This procedure is documented on-line. (Try it with data file "-da.makePrototypes")
Sound-objects may also be captured from tick cycles produced in the "Time base" window. (See "QuickStart" manual §2.3.3)
Click button "Capture...", and paste the captured object as indicated above.
Sound-objects may contain Csound scores.
(See "QuickStart" manual §17.5)
Sound-objects may contain messages imported from a MIDI file.
(See "QuickStart" manual §2.3.1)
Sound-objects may be attributed "pre-roll" and "post-roll" values.
(See "QuickStart" manual §2.6)
It is an important theoretical enhancement because it allows defining a time-span interval which is not necessarily bound by the first and last MIDI events. The motivation for introducing pre-roll and post-roll was the use of sampled sounds triggered by MIDI messages; sometimes MIDI messages need to be sent at dates which do not fall within the time-span interval (the interval defining the sound-object's perceived duration).
(Try this feature with data file "-da.preroll")
Sound-objects may now be "cyclic".
(See "QuickStart" manual §2.5)
A cyclic sound-object is one that may be repeated instead of being dilated when its performance duration is larger than twice the duration of its prototype. This situation is common in MIDI samplers when representing a cycle of beats of the drum machine.
(Try this feature with data file "-da.preroll")