music21.search.lyrics¶
LyricSearcher¶
-
class
music21.search.lyrics.LyricSearcher(s=None)¶ An object that can find lyrics that match a certain regular expression and return relevant information about the match.
Currently searches the first lyric only.
LyricSearcher methods
-
LyricSearcher.index(s=None)¶ >>> from pprint import pprint as pp
>>> p0 = corpus.parse('luca/gloria').parts[0] >>> ls = search.lyrics.LyricSearcher(p0) >>> pp(ls.index()[0:5]) [IndexedLyric(el=<music21.note.Note C>, start=0, end=2, measure=1, lyric=<music21.note.Lyric number=1 syllabic=single text="Et">, text=...'Et'), IndexedLyric(el=<music21.note.Note D>, start=3, end=5, measure=2, lyric=<music21.note.Lyric number=1 syllabic=single text="in">, text=...'in'), IndexedLyric(el=<music21.note.Note F>, start=6, end=9, measure=2, lyric=<music21.note.Lyric number=1 syllabic=begin text="ter">, text=...'ter'), IndexedLyric(el=<music21.note.Note F>, start=9, end=11, measure=3, lyric=<music21.note.Lyric number=1 syllabic=end text="ra">, text=...'ra'), IndexedLyric(el=<music21.note.Note A>, start=12, end=15, measure=3, lyric=<music21.note.Lyric number=1 syllabic=single text="pax">, text=...'pax')]
-
LyricSearcher.search(textOrRe, s=None)¶ >>> from pprint import pprint as pp >>> import re
>>> p0 = corpus.parse('luca/gloria').parts[0] >>> ls = search.lyrics.LyricSearcher(p0) >>> ls.search('pax') # ellipsis because of unicode in Py2 [SearchMatch(mStart=3, mEnd=3, matchText=...'pax', els=(<music21.note.Note A>,), tups=[IndexedLyric(...)])]
Search a regular expression that takes into account non-word characters such as commas
>>> agnus = re.compile(r'agnus dei\W+filius patris', re.IGNORECASE) >>> sm = ls.search(agnus) >>> sm [SearchMatch(mStart=49, mEnd=55, matchText=...'Agnus Dei, Filius Patris', els=(<music21.note.Note G>,...<music21.note.Note G>), tups=[IndexedLyric(el=<music21.note.Note G>, start=251, end=252, measure=49, lyric=<...>, text=...'A'), ... IndexedLyric(el=<music21.note.Note G>, ...text=...'tris.')])] >>> sm[0].mStart, sm[0].mEnd (49, 55)
IndexedLyric¶
-
class
music21.search.lyrics.IndexedLyric(el, start, end, measure, lyric, text)¶
IndexedLyric read-only properties
-
IndexedLyric.el¶ Alias for field number 0
-
IndexedLyric.end¶ Alias for field number 2
-
IndexedLyric.lyric¶ Alias for field number 4
-
IndexedLyric.measure¶ Alias for field number 3
-
IndexedLyric.start¶ Alias for field number 1
-
IndexedLyric.text¶ Alias for field number 5
SearchMatch¶
-
class
music21.search.lyrics.SearchMatch(mStart, mEnd, matchText, els, tups)¶
SearchMatch read-only properties
-
SearchMatch.els¶ Alias for field number 3
-
SearchMatch.mEnd¶ Alias for field number 1
-
SearchMatch.mStart¶ Alias for field number 0
-
SearchMatch.matchText¶ Alias for field number 2
-
SearchMatch.tups¶ Alias for field number 4