music21.converter contains tools for loading music from various file formats, whether from disk, from the web, or from text, into music21.stream.:class:~music21.stream.Score objects (or other similar stream objects). The most powerful and easy to use tool is the parse() function. Simply provide a filename, URL, or text string and, if the format is supported, a Score will be returned. This is the most general public interface for all formats. Programmers adding their own formats to the system should provide an interface here to their own parsers (such as humdrum, musicxml, etc.) The second and subsequent times that a file is loaded it will likely be much faster since we store a parsed version of each file as a “pickle” object in the temp folder on the disk.
>>> from music21 import *
>>> s = converter.parse('d:/mydocs/schubert.krn')
>>> s
<music21.stream.Score object at 0x...>
Given a file path, encoded data in a Python string, or a URL, attempt to parse the item into a Stream. Note: URL downloading will not happen automatically unless the user has set their Environment “autoDownload” preference to “allow”.
>>> from music21 import *
>>> s = converter.parse(["E4 r f# g=lastG trip{b-8 a g} c", "3/4"])
>>> s.getElementsByClass(meter.TimeSignature)[0]
<music21.meter.TimeSignature 3/4>
>>> s2 = converter.parse("E8 f# g#' G f g# g G#", "2/4")
>>> s2.show('text')
{0.0} <music21.meter.TimeSignature 2/4>
{0.0} <music21.note.Note E>
{0.5} <music21.note.Note F#>
{1.0} <music21.note.Note G#>
{1.5} <music21.note.Note G>
{2.0} <music21.note.Note F>
{2.5} <music21.note.Note G#>
{3.0} <music21.note.Note G>
{3.5} <music21.note.Note G#>
A class used for converting all supported data formats into music21 objects. Not a subclass, but a wrapper for different converter objects based on format.
Converter properties
- stream¶
- All converters have to have a stream property or attribute.
Converter methods
- parseData(dataStr, number=None, format=None, forceSource=False)¶
- Given raw data, determine format and parse into a music21 Stream.
- parseFile(fp, number=None, format=None, forceSource=False)¶
- Given a file path, parse and store a music21 Stream.
- parseURL(url, format=None, number=None)¶
- Given a url, download and parse the file into a music21 Stream. Note that this checks the user Environment autoDownlaad setting before downloading.
Converter for MusicXML
ConverterMusicXML properties
- stream¶
- No documentation.
ConverterMusicXML methods
- getPartNames()¶
- No documentation.
- load()¶
- Load all parts from a MusicXML object representation. This determines the order parts are found in the stream
- parseData(xmlString, number=None)¶
- Open MusicXML data from a string.
- parseFile(fp, number=None)¶
- Open from a file path; check to see if there is a pickled version available and up to date; if so, open that, otherwise open source.
Simple class wrapper for parsing Humdrum data provided in a file or in a string.
ConverterHumdrum attributes
Attributes without Documentation: stream
ConverterHumdrum methods
- parseData(humdrumString, number=None)¶
Open Humdrum data from a string
>>> humdata = '**kern\n*M2/4\n=1\n24r\n24g#\n24f#\n24e\n24c#\n24f\n24r\n24dn\n24e-\n24gn\n24e-\n24dn\n*-' >>> c = ConverterHumdrum() >>> s = c.parseData(humdata)
- parseFile(filepath, number=None)¶
- Open Humdram data from a file path.
Before opening a file path, this class can check if this is an archived file collection, such as a .zip or or .mxl file. This will return the data from the archive.
Only archive type supported now is zip.
ArchiveManager methods
- getData(name=None, format=musicxml)¶
- Return data from the archive by name. If no name is given, a default may be available. For ‘musedata’ format this will be a list of strings. For ‘musicxml’ this will be a single string.
- getNames()¶
- Return a list of all names contained in this archive.
- isArchive()¶
- Return True or False if the filepath is an archive of the supplied archiveType.
Simple class wrapper for parsing ABC.
ConverterABC properties
- stream¶
- No documentation.
ConverterABC methods
Simple class wrapper for parsing TinyNotation data provided in a file or in a string.
ConverterTinyNotation attributes
Attributes without Documentation: stream
ConverterTinyNotation methods
- parseData(tnData, number=None)¶
Open TinyNotation data from a string or list
>>> tnData = ["E4 r f# g=lastG trip{b-8 a g} c", "3/4"] >>> c = ConverterTinyNotation() >>> s = c.parseData(tnData)
- parseFile(fp, number=None)¶
- Open TinyNotation data from a file path.
Before opening a file path, this class can check if there is an up to date version pickled and stored in the scratch directory. If the user has not specified a scratch directory, a pickle path will not be created.
Provide a file path to check if there is pickled version. If forceSource is True, pickled files, if available, will not be returned.
PickleFilter methods
- status()¶
- Given a file path specified with __init__, look for an up to date pickled version of this file path. If it exists, return its fp, other wise return the original file path. Return arguments are file path to load, boolean whether to write a pickle, and the file path of the pickle.
This class is used to freeze a Stream, preparing it for pickling.
StreamFreezer attributes
Attributes without Documentation: stream
StreamFreezer methods
- openPickle(fp)¶
- For a supplied file path to a pickled stream, unpickle
- writePickle(fp=None)¶
- For a supplied Stream, write a pickled version.