music21.alpha.webapps.apps¶
Webapps is a module designed for using music21 with a webserver.
This file includes application-specific components of the webserver.
It includes a set of applicationInitializers which augment agendas with data and commands specific to a given application as well as a set of commands specific to the various applications.
Functions¶
-
music21.alpha.webapps.apps.setupCognitionApp(agenda)¶
-
music21.alpha.webapps.apps.setupConverterApp(agenda)¶ Augments an agenda with the data and commands related to the Converter App demoed at the Digital Humanities conference in Hamburg Germany The converter app takes as query values:
source: a source compatible with converter.parse in quotes (e.g. “tinyNotation:C2 D E F...”) output: an output format (musicxml, vexflow, braille...)
Example: http://ciconia.mit.edu/music21/webinterface?appName=converterApp&source=
“tinynotation:F4 A- B- B c e f2”&output=vexflow>>> agenda = alpha.webapps.Agenda() >>> agenda.addData('source', 'tinynotation:F4 A- B- B c e f2') >>> agenda.addData('output',"musicxml") >>> alpha.webapps.apps.setupConverterApp(agenda)
>>> processor = alpha.webapps.CommandProcessor(agenda) >>> processor.executeCommands() >>> (responseData, responseContentType) = processor.getOutput() >>> responseContentType 'application/vnd.recordare.musicxml+xml; charset=utf-8'
Python 3 conversion first...
>>> if ext.six.PY3: ... responseData = responseData.decode('utf-8')
>>> print(responseData) <?xml version="1.0" ...?> <!DOCTYPE score-partwise PUBLIC '-//Recordare//DTD MusicXML 2.0 Partwise//EN' 'http://www.musicxml.org/dtds/partwise.dtd'> <score-partwise> <movement-title>Music21 Fragment</movement-title> <identification> <creator type="composer">Music21</creator> </identification> <defaults> <scaling> <millimeters>7</millimeters> <tenths>40</tenths> </scaling> </defaults> <part-list> ... >>> converter.parse(responseData).flat.notes[0].pitch.ps 53.0
-
music21.alpha.webapps.apps.setupURLCorpusParseApp(agenda)¶ Augments an agenda with the data and commands related to the URL Corpus Parse App.
ResponseData is returned as a bytes object in Python3
>>> agenda = alpha.webapps.Agenda() >>> agenda.addData('measureEnd', '4') >>> agenda.addData('workName',"'bwv7.7'") >>> agenda.addData('command',"commands.reduction") >>> agenda.addData('output',"musicxmlDownload") >>> alpha.webapps.apps.setupURLCorpusParseApp(agenda)
>>> processor = alpha.webapps.CommandProcessor(agenda) >>> processor.executeCommands() >>> (responseData, responseContentType) = processor.getOutput() >>> responseContentType 'application/vnd.recordare.musicxml+xml; charset=utf-8'
Python 3 conversion first...
>>> if ext.six.PY3: ... responseData = responseData.decode('utf-8')
>>> converter.parse(responseData).flat.highestOffset 16.5
-
music21.alpha.webapps.apps.setupZipfileApp(agenda)¶