MuseScore

Hack sheet music!

Nicolas Froment / @lasconic

MuseScore

MuseScore is free and open source notation software

Hack with MuseScore

  • Hardcore: Hack in C++
  • Manipulate the score with Javascript plugin API
  • Interact with the score in real time via OSC
  • Tweak the audio output with Soundfonts
  • Route MIDI out via Jack

MuseScore.com

MuseScore.com

Large repository of user generated scores

Several formats through a REST API

  • MuseScore format
  • MusicXML
  • MIDI
  • PNG images
  • MP3
  • Synchronisation data: timestamp ↔ measure

Search scores

Search all scores containing "Bach"


import requests

url = "https://api.musescore.com/services/rest/score.json"
url += "&oauth_consumer_key=musichackday2016"

score = requests.get(endpoint + "&text=Bach").json()

for score in scores:
	print score['id']
	print score['secret']
	print score['title']
	print score['description']
						

Get MIDI file

Access any score file (images, MusicXML, MIDI)


import requests

url = "https://api.musescore.com/services/rest/score/29517.json"
url += "&oauth_consumer_key=musichackday"

score = requests.get(url).json()

midiUrl = "http://static.musescore.com"
midiUrl += "/" + score['id'] + "/" + score['secret']
midiUrl += "/score.mid"
print midiUrl
					

MuseScore.com API

http://developers.musescore.com

  • Consumer key: musichackday
  • Consumer secret: musichackday2016


Contact

@lasconic @thomasbonte

#musescore on freenode.net

Interesting scores

3D hands on a keyboard

  • Algorithm to find fingerings automatically
  • Hands model animated in three.js
  • MIDI or MusicXML file with fingerings
  • Animate in sync with a score

Data

  • Large dataset of MusicXML and MIDI files
  • Magenta
  • Features extraction
  • Classification, recommandation, visualisation

Visualization example: Beethoven 5th

CC-BY-SA Nicholas Rougeux

Happy hacking

@lasconic @thomasbonte

#musescore on freenode.net