JMSL Tutorial: JScore's Transcriber, part 6
TranscriberListener, The Big Picture, and a Live Performance Example
JMSL's Transcriber provides the user with a call-back mechanism during the transcription process.
Every time a Note is added to the Score, your TranscriberListener is notified. This allows you to inspect and
modify the Note as it goes into the Score. Possible applications include adding dynamic indications,
accents and other marks to a Note, or adding algorithmically generated lyrics. See jmsltestsuite.TestTranscribe8
for an example that adds solfeggio syllables to Notes.
The key idea is to implement TranscriberListener and define:
public void noteAdded(Score score, Note note);
public void notifyCarriedOverMusicShape(Score score, int currentMeasureNumber, MusicShape musicShape);
Add your TranscriberListener to the transcriber with transcriber.addTranscriberListener(myListener)
For example, the following implementation adds an accent to a Note approximately 1 out of 3 times.
public void noteAdded(Score score, Note note) {
if (note.isRest()) return;
if (JMSLRandom.choose() < 0.3) {
note.setMark(Note.MARK_ACCENT);
}
}
The Applet below is a subclass of the applet from the previous tutorial.
It implements TranscriberListener and adds computed text, dynamics, and accents to the Notes
as it is notified by the Transcriber
Source
The Big Picture
The macro-point here is this: by having a transcriber knit tightly into the fabric of an algorithmic music API, the
composer is given the power to preserve the semantics of the compositional methodology. As opposed to
seeing music stripped of its meaning as it is exported to a MIDI file, then imported into a third party notation program,
JMSL's transcriber stays close to the heart of the generative process. The composer can stay in close touch with the music
from its genesis to its notation.
Live Performance Example:
Zero Waste by Nick Didkovsky, is a piece for sight reading pianist and JMSL's transcriber. This piece was premiered by Kathleen Supove
at NYU's Loewe Theare.
(C) 2000 Nick Didkovsky and Phil Burk, All Rights Reserved
JMSL is based upon HMSL (C) Phil Burk, Larry Polansky and David Rosenboom.