music21.stream.filter

ClassFilter

class music21.stream.filter.ClassFilter(classList=())
>>> s = stream.Stream()
>>> s.append(note.Note('C'))
>>> s.append(note.Rest())
>>> s.append(note.Note('D'))
>>> sI = s.__iter__()
>>> sI
<music21.stream.iterator.StreamIterator object at 0x...>
>>> for x in sI:
...     print(x)
<music21.note.Note C>
<music21.note.Rest rest>
<music21.note.Note D>
>>> sI.filters.append(stream.filter.ClassFilter('Note'))
>>> sI.filters
[<music21.stream.filter.ClassFilter object at 0x...>]
>>> for x in sI:
...     print(x)
<music21.note.Note C>
<music21.note.Note D>

ClassFilter bases

ClassNotFilter

class music21.stream.filter.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 = s.__iter__()
>>> sI.filters.append(stream.filter.ClassNotFilter('Note'))
>>> sI.filters
[<music21.stream.filter.ClassNotFilter object at 0x...>]
>>> for x in sI:
...     print(x)
<music21.note.Rest rest>

ClassNotFilter bases

GroupFilter

class music21.stream.filter.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.filter.GroupFilter
>>> for thisNote in s1.__iter__().addFilter(GF("trombone")):
...     print(thisNote.name)
C
D
>>> for thisNote in s1.__iter__().addFilter(GF("tuba")):
...     print(thisNote.name)
D
E

GroupFilter bases

OffsetFilter

class music21.stream.filter.OffsetFilter(offsetStart, offsetEnd=None, includeEndBoundary=True, mustFinishInSpan=False, mustBeginInSpan=True, includeElementsThatEndAtStart=True)

see iterator.getElementsByOffset()

OffsetFilter bases

StreamFilter

class music21.stream.filter.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.