music21.stream.filters¶
ClassFilter¶
-
class
music21.stream.filters.
ClassFilter
(classList=())¶ >>> s = stream.Stream() >>> s.append(note.Note('C')) >>> s.append(note.Rest()) >>> s.append(note.Note('D')) >>> sI = iter(s) >>> sI <music21.stream.iterator.StreamIterator for Stream:0x104843828 @:0> >>> for x in sI: ... print(x) <music21.note.Note C> <music21.note.Rest rest> <music21.note.Note D>
>>> sI.filters.append(stream.filters.ClassFilter('Note')) >>> sI.filters [<music21.stream.filters.ClassFilter Note>]
>>> for x in sI: ... print(x) <music21.note.Note C> <music21.note.Note D>
ClassFilter
bases
ClassNotFilter¶
-
class
music21.stream.filters.
ClassNotFilter
(classList=())¶ Returns elements not of the class.
>>> s = stream.Stream() >>> s.append(note.Note('C')) >>> s.append(note.Rest()) >>> s.append(note.Note('D')) >>> sI = iter(s)
>>> sI.filters.append(stream.filters.ClassNotFilter('Note')) >>> sI.filters [<music21.stream.filters.ClassNotFilter Note>]
>>> for x in sI: ... print(x) <music21.note.Rest rest>
ClassNotFilter
bases
GroupFilter¶
-
class
music21.stream.filters.
GroupFilter
(groupFilterList)¶ Returns elements with a certain group.
>>> n1 = note.Note("C") >>> n1.groups.append('trombone') >>> n2 = note.Note("D") >>> n2.groups.append('trombone') >>> n2.groups.append('tuba') >>> n3 = note.Note("E") >>> n3.groups.append('tuba') >>> s1 = stream.Stream() >>> s1.append(n1) >>> s1.append(n2) >>> s1.append(n3) >>> GF = stream.filters.GroupFilter
>>> for thisNote in iter(s1).addFilter(GF("trombone")): ... print(thisNote.name) C D >>> for thisNote in iter(s1).addFilter(GF("tuba")): ... print(thisNote.name) D E
GroupFilter
bases
IdFilter¶
-
class
music21.stream.filters.
IdFilter
(searchId)¶ filters on ids. used by stream.getElementById. No corresponding iterator call.
IdFilter
bases
IsFilter¶
-
class
music21.stream.filters.
IsFilter
(target)¶
IsFilter
bases
IsFilter
methods
-
IsFilter.
reset
()¶
IsNotFilter¶
-
class
music21.stream.filters.
IsNotFilter
(target)¶ Filter out everything but an item or list of items:
>>> s = stream.Stream() >>> s.insert(0, key.KeySignature(-3)) >>> n = note.Note('C#') >>> s.append(n) >>> s.append(note.Rest()) >>> for el in s.iter.addFilter(stream.filters.IsNotFilter(n)): ... el <music21.key.KeySignature of 3 flats> <music21.note.Rest rest>
test that resetting works...
>>> for el in s.iter.addFilter(stream.filters.IsNotFilter(n)): ... el <music21.key.KeySignature of 3 flats> <music21.note.Rest rest>
multiple...
>>> s = stream.Stream() >>> s.insert(0, key.KeySignature(-3)) >>> n = note.Note('C#') >>> s.append(n) >>> r = note.Rest() >>> s.append(r) >>> for el in s.iter.addFilter(stream.filters.IsNotFilter([n, r])): ... print(el) <music21.key.KeySignature of 3 flats>
IsNotFilter
bases
IsNotFilter
methods
-
IsNotFilter.
reset
()¶
OffsetFilter¶
-
class
music21.stream.filters.
OffsetFilter
(offsetStart, offsetEnd=None, includeEndBoundary=True, mustFinishInSpan=False, mustBeginInSpan=True, includeElementsThatEndAtStart=True)¶ see iterator.getElementsByOffset()
OffsetFilter
bases
StreamFilter¶
-
class
music21.stream.filters.
StreamFilter
¶ A filter is an object that when called returns True or False about whether an element in the stream matches the filter.
A lambda expression: lambda el, iterator: True if EXP else False can also be used as a very simple filter.
Filters can also raise StopIteration if no other elements in this Stream can possibly fit.