music21.clef¶
This module defines numerous subclasses of
Clef, providing object representations for all
commonly used clefs. Clef objects are often found
within Measure objects.
Clef¶
- class music21.clef.Clef(**keywords)¶
A Clef is a basic music21 object for representing musical clefs (Treble, Bass, etc.)
Some clefs only represent the graphical element of the clef, such as G clef, which is subclassed by TrebleClef() and FrenchViolinClef().
>>> tc = clef.TrebleClef() >>> tc <music21.clef.TrebleClef> >>> tc.sign 'G' >>> tc.line 2
Most clefs also have a “lowestLine” function which represents the
diatonicNoteNumof the note that would fall on the lowest line if the Clef were put on a five-line staff. (Where C4,C#4,C##4,C-4 etc. = 29, all types of D4 = 30, etc.)>>> tc.lowestLine 31
Equality
Two Clefs are equal if their class is the same, their sign is the same, their line is the same and their octaveChange is the same.
>>> c1 = clef.PercussionClef() >>> c2 = clef.NoClef() >>> c1 == c2 False >>> c3 = clef.TrebleClef() >>> c4 = clef.TrebleClef() >>> c3 == c4 True >>> c4.octaveChange = -1 >>> c3 == c4 False
Note that these are not equal:
>>> clef.TrebleClef() == clef.GClef(line=2) False
Clef bases
Clef read-only properties
- Clef.name¶
Returns the “name” of the clef, from the class name
>>> tc = clef.TrebleClef() >>> tc.name 'treble'
>>> tc = clef.Treble8vbClef() >>> tc.name 'treble8vb'
>>> tc = clef.MezzoSopranoClef() >>> tc.name 'mezzoSoprano'
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
Clef read/write properties
- Clef.octaveChange¶
The number of octaves that the clef “transposes”, generally 0.
>>> tc = clef.TrebleClef() >>> tc.octaveChange 0 >>> clef.Treble8vbClef().octaveChange -1
Read/write properties inherited from Music21Object:
Clef methods
- Clef.getStemDirectionForPitches(pitches: Pitch | Sequence[Pitch], *, firstLastOnly: bool = True, extremePitchOnly: bool = False) str¶
Return a string representing the stem direction for a single
Pitchobject or a list/tuple/Stream of pitches.>>> P = pitch.Pitch >>> bc = clef.BassClef() >>> bc.getStemDirectionForPitches(P('C3')) 'up'
For two pitches, the most extreme pitch determines the direction:
>>> pitchList = [P('C3'), P('B3')] >>> bc.getStemDirectionForPitches(pitchList) 'down'
If firstLastOnly is True (as by default) then only the first and last pitches are examined, as in a beam group. Here we have C3, B3, C3, so despite the B in bass clef being much farther from the center line than either of the Cs, it is stem up:
>>> pitchList.append(P('C3')) >>> bc.getStemDirectionForPitches(pitchList) 'up'
If firstLastOnly is False, then each of the pitches has a weight on the process
>>> bc.getStemDirectionForPitches(pitchList, firstLastOnly=False) 'down'
If extremePitchOnly is True, then whatever pitch is farthest from the center line determines the direction, regardless of order. (default False).
>>> bc.getStemDirectionForPitches(pitchList, extremePitchOnly=True) 'down' >>> pitchList.insert(1, P('C2')) >>> bc.getStemDirectionForPitches(pitchList, extremePitchOnly=True) 'up'
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
Clef instance variables
- Clef.line¶
The line, counting from the bottom up, that the clef resides on.
>>> clef.AltoClef().line 3 >>> clef.TenorClef().line 4
May be None:
>>> print(clef.NoClef().line) None
- Clef.sign¶
The sign of the clef, generally, ‘C’, ‘G’, ‘F’, ‘percussion’, ‘none’ or None.
>>> alto = clef.AltoClef() >>> alto.sign 'C' >>> percussion = clef.PercussionClef() >>> percussion.sign 'percussion'
Note the difference here:
>>> clef.Clef().sign is None True >>> clef.NoClef().sign 'none'
Instance variables inherited from Music21Object:
TrebleClef¶
- class music21.clef.TrebleClef(**keywords)¶
The most common clef of all, a treble clef.
>>> a = clef.TrebleClef() >>> a.sign 'G' >>> a.line 2 >>> a.lowestLine 31 >>> note.Note('E4').pitch.diatonicNoteNum 31
TrebleClef bases
TrebleClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
TrebleClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
TrebleClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
TrebleClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
BassClef¶
- class music21.clef.BassClef(**keywords)¶
A standard Bass Clef
>>> a = clef.BassClef() >>> a.sign 'F'
BassClef bases
BassClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
BassClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
BassClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
BassClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
AltoClef¶
- class music21.clef.AltoClef(**keywords)¶
A C AltoClef, common for violas.
>>> a = clef.AltoClef() >>> a.sign 'C' >>> a.line 3
AltoClef bases
AltoClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
AltoClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
AltoClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
AltoClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
Bass8vaClef¶
- class music21.clef.Bass8vaClef(**keywords)¶
A rarely used Bass Clef an octave higher.
>>> a = clef.Bass8vaClef() >>> a.sign 'F'
Bass8vaClef bases
Bass8vaClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
Bass8vaClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
Bass8vaClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
Bass8vaClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
Bass8vbClef¶
- class music21.clef.Bass8vbClef(**keywords)¶
A bass clef configured to be an octave lower.
>>> a = clef.Bass8vbClef() >>> a.sign 'F' >>> a.octaveChange -1
Bass8vbClef bases
Bass8vbClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
Bass8vbClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
Bass8vbClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
Bass8vbClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
CBaritoneClef¶
- class music21.clef.CBaritoneClef(**keywords)¶
A Baritone C clef (as opposed to an F Baritone Clef)
>>> a = clef.CBaritoneClef() >>> a.sign 'C' >>> a.line 5
CBaritoneClef bases
CBaritoneClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
CBaritoneClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
CBaritoneClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
CBaritoneClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
CClef¶
- class music21.clef.CClef(**keywords)¶
A generic C Clef, with no line set
>>> a = clef.CClef() >>> a.sign 'C'
CClef bases
CClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
CClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
CClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
CClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
FBaritoneClef¶
- class music21.clef.FBaritoneClef(**keywords)¶
an F Baritone Clef
>>> a = clef.FBaritoneClef() >>> a.sign 'F' >>> a.line 3 >>> b = clef.CBaritoneClef() >>> a.lowestLine == b.lowestLine True >>> a.sign == b.sign False
FBaritoneClef bases
FBaritoneClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
FBaritoneClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
FBaritoneClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
FBaritoneClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
FClef¶
- class music21.clef.FClef(**keywords)¶
A generic F-Clef, like a Bass clef
>>> a = clef.FClef() >>> a.sign 'F'
FClef bases
FClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
FClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
FClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
FClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
FrenchViolinClef¶
- class music21.clef.FrenchViolinClef(**keywords)¶
A G Clef that appears in many old French Violin scores, appearing on the lowest line, and thus higher than a treble clef.
>>> a = clef.FrenchViolinClef() >>> a.sign 'G' >>> a.line 1
FrenchViolinClef bases
FrenchViolinClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
FrenchViolinClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
FrenchViolinClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
FrenchViolinClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
GClef¶
- class music21.clef.GClef(**keywords)¶
A generic G Clef
>>> a = clef.GClef() >>> a.sign 'G'
If not defined, the lowestLine is set as a Treble Clef (E4 = 31)
>>> a.lowestLine 31
GClef bases
GClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
GClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
GClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
GClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
GSopranoClef¶
- class music21.clef.GSopranoClef(**keywords)¶
A G clef on the middle line, formerly occasionally used for soprano parts.
>>> a = clef.GSopranoClef() >>> a.sign 'G' >>> a.line 3
GSopranoClef bases
GSopranoClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
GSopranoClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
GSopranoClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
GSopranoClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
JianpuClef¶
- class music21.clef.JianpuClef(**keywords)¶
Jianpu notation does not use a clef, but musicxml marks it with a specialized “jianpu” sign.
>>> jc = clef.JianpuClef() >>> jc.sign 'jianpu'
JianpuClef bases
JianpuClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
JianpuClef read/write properties
Read/write properties inherited from Clef:
Read/write properties inherited from Music21Object:
JianpuClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
JianpuClef instance variables
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
MezzoSopranoClef¶
- class music21.clef.MezzoSopranoClef(**keywords)¶
A C clef with C on the second line. Perhaps the rarest of the C clefs
>>> a = clef.MezzoSopranoClef() >>> a.sign 'C' >>> a.line 2
MezzoSopranoClef bases
MezzoSopranoClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
MezzoSopranoClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
MezzoSopranoClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
MezzoSopranoClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
NoClef¶
- class music21.clef.NoClef(**keywords)¶
represents the absence of a Clef.
>>> nc = clef.NoClef() >>> nc.sign 'none'
Note that the sign is the string ‘none’ not the None object
>>> nc.sign is None False
NoClef bases
NoClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
NoClef read/write properties
Read/write properties inherited from Clef:
Read/write properties inherited from Music21Object:
NoClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
NoClef instance variables
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
PercussionClef¶
- class music21.clef.PercussionClef(**keywords)¶
represents a Percussion clef.
>>> pc = clef.PercussionClef() >>> pc.sign 'percussion' >>> pc.line is None True
Percussion clefs should not, technically have a “lowestLine,” but it is a common usage to assume that in pitch-centric contexts to use the pitch numbers from treble clef for percussion clefs. Thus:
>>> pc.lowestLine == clef.TrebleClef().lowestLine True
Changed in v7.3: setting octaveChange no longer affects lowestLine
PercussionClef bases
PercussionClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
PercussionClef read/write properties
Read/write properties inherited from Clef:
Read/write properties inherited from Music21Object:
PercussionClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
PercussionClef instance variables
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
PitchClef¶
- class music21.clef.PitchClef(**keywords)¶
Superclass for all other clef subclasses that use pitches.
PitchClef bases
PitchClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
PitchClef read/write properties
- PitchClef.octaveChange¶
The number of octaves that the clef “transposes”, generally 0.
>>> tc = clef.TrebleClef() >>> tc.octaveChange 0 >>> clef.Treble8vbClef().octaveChange -1
Changing octaveChange changes lowestLine (but not vice-versa)
>>> tc.lowestLine 31 >>> tc.octaveChange = 1 >>> tc.lowestLine 38 >>> tc.octaveChange = -1 >>> tc.lowestLine 24
Read/write properties inherited from Music21Object:
PitchClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
PitchClef instance variables
- PitchClef.lowestLine¶
The diatonicNoteNumber of the lowest line of the clef. (Can be None)
>>> clef.TrebleClef().lowestLine 31
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
SopranoClef¶
- class music21.clef.SopranoClef(**keywords)¶
A soprano clef, with C on the lowest line (found in Bach often)
>>> a = clef.SopranoClef() >>> a.sign 'C' >>> a.line 1
SopranoClef bases
SopranoClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
SopranoClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
SopranoClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
SopranoClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
SubBassClef¶
- class music21.clef.SubBassClef(**keywords)¶
An F clef on the top line.
>>> a = clef.SubBassClef() >>> a.sign 'F'
SubBassClef bases
SubBassClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
SubBassClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
SubBassClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
SubBassClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
TabClef¶
- class music21.clef.TabClef(**keywords)¶
represents a Tablature clef.
>>> a = clef.TabClef() >>> a.sign 'TAB'
TabClef bases
TabClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
TabClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
TabClef methods
- TabClef.getStemDirectionForPitches(pitchList: Pitch | Iterable[Pitch], *, firstLastOnly: bool = True, extremePitchOnly: bool = False) str¶
Overridden to simply return ‘down’ for guitar tabs.
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
TabClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
TenorClef¶
- class music21.clef.TenorClef(**keywords)¶
A C Tenor Clef, often used in bassoon and cello parts and orchestral trombone parts.
>>> a = clef.TenorClef() >>> a.sign 'C' >>> a.line 4
TenorClef bases
TenorClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
TenorClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
TenorClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
TenorClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
Treble8vaClef¶
- class music21.clef.Treble8vaClef(**keywords)¶
A treble clef an octave up (such as for piccolos)
>>> a = clef.Treble8vaClef() >>> a.sign 'G' >>> a.octaveChange 1
Treble8vaClef bases
Treble8vaClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
Treble8vaClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
Treble8vaClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
Treble8vaClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
Treble8vbClef¶
- class music21.clef.Treble8vbClef(**keywords)¶
A vocal tenor treble clef. Also for guitars.
>>> a = clef.Treble8vbClef() >>> a.sign 'G' >>> a.octaveChange -1
Treble8vbClef bases
Treble8vbClef read-only properties
Read-only properties inherited from Clef:
Read-only properties inherited from Music21Object:
Read-only properties inherited from ProtoM21Object:
Treble8vbClef read/write properties
Read/write properties inherited from PitchClef:
Read/write properties inherited from Music21Object:
Treble8vbClef methods
Methods inherited from Clef:
Methods inherited from Music21Object:
Methods inherited from ProtoM21Object:
Treble8vbClef instance variables
Instance variables inherited from PitchClef:
Instance variables inherited from Clef:
Instance variables inherited from Music21Object:
Functions¶
- music21.clef.bestClef(streamObj: stream.Stream, allowTreble8vb=False, recurse=False) PitchClef¶
Returns the clef that is the best fit for notes and chords found in this Stream.
>>> import random >>> a = stream.Stream() >>> for x in range(30): ... n = note.Note() ... n.pitch.midi = random.randint(70, 81) ... a.insert(n) >>> b = clef.bestClef(a) >>> b <music21.clef.TrebleClef> >>> b.line 2 >>> b.sign 'G'
>>> c = stream.Stream() >>> for x in range(10): ... n = note.Note() ... n.pitch.midi = random.randint(45, 54) ... c.insert(n) >>> d = clef.bestClef(c) >>> d <music21.clef.BassClef> >>> d.line 4 >>> d.sign 'F'
This does not automatically get a flat representation of the Stream.
There are a lot more high notes in a (30) than low notes in c (10), but it will not matter here, because the pitches in a will not be found:
>>> c.insert(0, a) >>> clef.bestClef(c) <music21.clef.BassClef>
But with recursion, it will matter:
>>> clef.bestClef(c, recurse=True) <music21.clef.TrebleClef>
Notes around middle C can get Treble8vb if the setting is allowed:
>>> clef.bestClef(stream.Stream([note.Note('D4')])) <music21.clef.TrebleClef> >>> clef.bestClef(stream.Stream([note.Note('D4')]), allowTreble8vb=True) <music21.clef.Treble8vbClef>
Streams of extremely high notes or extremely low notes can get Treble8va or Bass8vb clefs:
>>> clef.bestClef(stream.Stream([note.Note('D7')])) <music21.clef.Treble8vaClef> >>> clef.bestClef(stream.Stream([note.Note('C0')])) <music21.clef.Bass8vbClef>
- music21.clef.clefFromString(clefString, octaveShift=0) Clef¶
Returns a Clef object given a string like “G2” or “F4” etc.
Does not refer to a violin/guitar string.
>>> tc = clef.clefFromString('G2') >>> tc <music21.clef.TrebleClef> >>> nonStandard1 = clef.clefFromString('F1') >>> nonStandard1 <music21.clef.FClef> >>> nonStandard1.line 1 >>> nonStandard2 = clef.clefFromString('D4') >>> nonStandard2 <music21.clef.PitchClef> >>> nonStandard2.sign 'D' >>> nonStandard2.line 4
>>> tc8vb = clef.clefFromString('G2', -1) >>> tc8vb <music21.clef.Treble8vbClef>
Three special clefs, Tab, Percussion, and None are also supported.
>>> tabClef = clef.clefFromString('TAB') >>> tabClef <music21.clef.TabClef>
Case does not matter.
>>> tc8vb = clef.clefFromString('g2', -1) >>> tc8vb <music21.clef.Treble8vbClef>
>>> percussionClef = clef.clefFromString('Percussion') >>> percussionClef <music21.clef.PercussionClef>
>>> noClef = clef.clefFromString('None') >>> noClef <music21.clef.NoClef>
Invalid line numbers raise an exception:
>>> invalidClef = clef.clefFromString('F6') Traceback (most recent call last): music21.clef.ClefException: line number (second character) must be 1-5; do not use this function for clefs on special staves such as 'F6'
Can find any clef in the module
>>> clef.clefFromString('Treble') <music21.clef.TrebleClef> >>> clef.clefFromString('trebleclef') <music21.clef.TrebleClef> >>> clef.clefFromString('treble8vb') <music21.clef.Treble8vbClef>