Previous topic

music21.note

Next topic

music21.pitch

Table Of Contents

Table Of Contents

music21.noteworthy.translate

Module to translate Noteworthy Composer’s NWCTXT format to music21.

NoteworthyTranslator

class music21.noteworthy.translate.NoteworthyTranslator

stores all the data about the current parse context (whether we’re in a slur, tuplet, etc.)

NoteworthyTranslator attributes

score

A Stream subclass for handling multi-part music.

Absolutely optional (the largest containing Stream in a piece could be a generic Stream, or a Part, or a Staff). And Scores can be embedded in other Scores (in fact, our original thought was to call this class a Fragment because of this possibility of continuous embedding), but we figure that many people will like calling the largest container a Score and that this will become a standard.

currentKey

A KeySignature object specifies the signature to be used for a piece; it takes in zero, one, or two arguments. The first argument is an int giving the number of sharps, or if negative the number of flats. The second argument (deprecated – do not use) specifies the mode of the piece (‘major’, ‘minor’, or None for unknown).

If you are starting with the name of a key, see the Key object.

>>> from music21 import *

>>> A = key.KeySignature(3)
>>> A
<music21.key.KeySignature of 3 sharps>
>>> Eflat = key.KeySignature(-3)
>>> Eflat
<music21.key.KeySignature of 3 flats>

If you want to get a real Key, then use the Key object instead:

>>> illegal = key.KeySignature('c#')
Traceback (most recent call last):
KeySignatureException: Cannot get a KeySignature from this "number" of sharps: "c#"; did you mean to use a key.Key() object instead?

>>> legal = key.Key('c#')
>>> legal.sharps
4
>>> legal
<music21.key.Key of c# minor>

Attributes without Documentation: activeAccidentals, lyrics, currentPart, currentMeasure, currentClef, beginningSlurNote, withinSlur, withinTie, lyricPosition

NoteworthyTranslator methods

createBarlines(attributes)

Translates bar lines into music21.

>>> from music21 import *

>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentPart = stream.Part()
>>> nwt.currentMeasure = stream.Measure()
>>> nwt.createBarlines({"Style":"MasterRepeatOpen"})
>>> nwt.currentMeasure
<music21.stream.Measure 0 offset=0.0>
>>> nwt.currentMeasure.leftBarline
<music21.bar.Repeat direction=start>
createClef(attributes)

Add a new clef to the current measure and return the currentClef.

Clef lines should look like: |Clef|Type:ClefType or |Clef|Type:ClefType|OctaveShift:Octave Down (or Up)

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = stream.Measure()
>>> nwt.createClef({"Type": "Treble"})
>>> nwt.currentMeasure.show('text')
{0.0} <music21.clef.TrebleClef>
>>> nwt.currentClef
'TREBLE'
>>> nwt.createClef({"Type" : "Bass", "OctaveShift" : "Octave Down"})
>>> nwt.currentMeasure.show('text')
{0.0} <music21.clef.TrebleClef>
{0.0} <music21.clef.Bass8vbClef>

If no clef can be found then it raises a NoteworthyTranslate exception

>>> nwt.createClef({"Type" : "OBonobo"})
Traceback (most recent call last):
NoteworthyTranslateException: Did not find a proper clef in type, OBonobo
createDynamicVariance(attributes)

Adding dynamics like “crescendo” to the measure.

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = stream.Measure()
>>> nwt.createDynamicVariance({"Style" : "Crescendo", "Pos": "-6"})
>>> nwt.currentMeasure.show('text')
{0.0} <music21.spanner.Crescendo >
createDynamics(attributes)

Adding dynamics like “fff”, “pp”, ... to the measure.

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = stream.Measure()
>>> nwt.createDynamics({"Style":"fff","Pos":"-8"})
>>> nwt.currentMeasure[0]
<music21.dynamics.Dynamic fff >
createKey(attributes)

Adds a new key signature to the given measure. Returns the number of sharps (negative for flats)

>>> from music21 import *
>>> measureIn = stream.Measure()
>>> measureIn.append(note.Rest(quarterLength = 3.0))

>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = measureIn
>>> nwt.createKey({'Signature':'F#,C#,G#,D#'})
>>> nwt.currentKey.sharps
4
>>> measureIn.show('text')
{0.0} <music21.note.Rest rest>
{3.0} <music21.key.KeySignature of 4 sharps>
createLyrics(attributes)

Get a list of lyrics from a Lyric line

>>> from music21 import *

>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> Lyricslist = nwt.createLyrics({'Text':'"Hello world"'})
>>> Lyricslist[0]
'Hello'
createOtherRepetitions(attributes)

Repetitions like “Coda”, “Segno” and some others.

>>> from music21 import *

>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = stream.Measure()
>>> nwt.createOtherRepetitions({"Style" : "ToCoda", "Pos": "8", "Wide":"Y","Placement":"BestFitForward"})
>>> "Coda" in nwt.currentMeasure[0].classes
True
createPart()

Add a new part to the score.

createTimeSignature(attributes)

Adding a time signature in the score.

>>> from music21 import *

>>> measure = stream.Measure()
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = measure
>>> nwt.createTimeSignature({"Signature":"4/4"})
>>> measure[0]
<music21.meter.TimeSignature 4/4>
getMultiplePitchesFromPositionInfo(posInfo)

returns a list of pitch objects given the Pos:... info for a chord.

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentClef = 'BASS'
>>> pList = nwt.getMultiplePitchesFromPositionInfo('1,b3,5')
>>> pList
[E3, G-3, B3]
getOnePitchFromPosition(pos)

get one pitch from a position...

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentClef = 'BASS'
>>> p = nwt.getOnePitchFromPosition('b3')
>>> p
G-3
>>> p.ps
54.0
getPitchFromPositionInfo(posInfo)

returns a pitch object given the Pos: info

removes ties and alteration signs. Otherwise is same as getOnePitchFromPosition()

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentClef = 'BASS'
>>> p = nwt.getPitchFromPositionInfo('b3^') # removes ties
>>> p
G-3
getStepAndOctaveFromPosition(positionnote)

Given an int representing the position on the staff for the current clef, returns a string for the step and an int for the octave

>>> from music21 import *
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentClef = 'BASS'
>>> (step, octave) = nwt.getStepAndOctaveFromPosition(3)
>>> (step, octave)
('G', 3)
parseFile(filePath)

No documentation.

parseList(dataList)

Parses a list where each element is a line from a nwctxt file.

Returns a Score object

>>> from music21 import *
>>> data = []
>>> data.append("!NoteWorthyComposer(2.0)\n")
>>> data.append("|AddStaff|\n")
>>> data.append("|Clef|Type:Bass\n")
>>> data.append("|TimeSig|Signature:4/4\n")
>>> data.append("|Note|Dur:Whole|Pos:1\n")

>>>
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> s = nwt.parseList(data)
>>> s.show('text')
{0.0} <music21.stream.Part ...>
    {0.0} <music21.stream.Measure 0 offset=0.0>
        {0.0} <music21.clef.BassClef>
        {0.0} <music21.meter.TimeSignature 4/4>
        {0.0} <music21.note.Note E>
parseString(data)

No documentation.

setDurationForObject(generalNote, durationInfo)

generalNote could be a Note, Chord, or Rest

DurationInfo is a string like:

Whole,Dotted,Slur
setTieFromPitchInfo(noteOrChord, pitchInfo)

sets the tie status for a noteOrChord from the pitchInfo

translateChord(attributes)

Translation of a music21 chord from a NWC one.

>>> from music21 import *
>>> measure = stream.Measure()

>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = measure
>>> nwt.translateChord({'Dur': 'Half', 'Pos': '1,3,#5'})
>>> measure[0]
<music21.chord.Chord C5 E5 G#5>

Chords also inherit accidentals:

>>> nwt.translateChord({'Dur': 'Half', 'Pos': '1,3,5'})
>>> measure[1]
<music21.chord.Chord C5 E5 G#5>
translateNote(attributes)

Translation of a music21 note from a NWC note.

>>> from music21 import *

>>> measure = stream.Measure()
>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = measure
>>> nwt.translateNote({'Dur': 'Half', 'Pos': '#-3'})
>>> measure[0]
<music21.note.Note F#>

Note that the next note in the measure with the same position should inherit the last position’s accidental:

>>> nwt.translateNote({'Dur': 'Half', 'Pos': '-3'})
>>> measure[1]
<music21.note.Note F#>
translateRest(attributes)

Translation of a music21 rest. Adds the rest to the given measure.

>>> from music21 import *
>>> measureIn = stream.Measure()
>>> measureIn.append(note.HalfNote("C#4"))

>>> nwt = noteworthy.translate.NoteworthyTranslator()
>>> nwt.currentMeasure = measureIn
>>> nwt.translateRest({'Dur': '8th,Dotted'})
>>> nwt.translateRest({'Dur': '4th'})
>>> measureIn.show('text')
{0.0} <music21.note.Note C#>
{2.0} <music21.note.Rest rest>
{2.75} <music21.note.Rest rest>