Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Semantic (or symbolic) Representation of Music [closed]

I'm looking to create a little app that allows the user to visual and control (mostly) classical music, in order to better recognize structures such as canon. What would be an appropriate data and file structure to store the music in?

I know very little about music, so this will be a learning experience on two levels for me. I'd like to start with a basic visualisation such as highlighting notes in a score as the music is played at controlled speed. I'd like to do this in WPF with C#, reading music from structured files.

like image 589
ProfK Avatar asked Dec 31 '09 22:12

ProfK


3 Answers

What you need is a symbolic music format vs. an audio format. Since you're dealing with classical music, use the MusicXML format. It is supported by over 160 applications, including all the leading music notation applications like Finale and Sibelius, so you have a very wide range of tools to work with.

Note however that doing the type of visual display and highlighting that you are talking about is a complex job. MusicXML exported from Finale simplifies the programming by including lot of formatting, so you don't have to do the AI-like parts of music notation layout, but it's still complicated. You might want to take a look at existing tools and see what does the job. Perhaps you can incorporate a free MusicXML viewer/player like the Zong! Viewer, or a notation editor like MuseScore? Check out the MusicXML application list for more choices. Since MusicXML is defined in XML, you can also use the same XML tools that you use in any other project to read and write the MusicXML files.

GUIDO is another symbolic format, but it was only supported by a couple of niche applications and its development was abandoned many years ago. MEI is another symbolic format that has virtually no application support. A lot of symbolic formats were developed about 10 years ago, but MusicXML is the only one commonly used today. MIDI is an older interchange format that is universal for electronic instrument playback, but lacks the semantics necessary for accurately representing notation.

Good luck!

like image 144
Michael Avatar answered Jan 04 '23 13:01

Michael


You're probably going to end up wanting to use an existing system such as GUIDO. Music is a rather complicated thing to model and GUIDO has already done the job for you. I would highly suggest you check it out.

like image 38
Jim Mitchener Avatar answered Jan 04 '23 14:01

Jim Mitchener


It can be a little cryptic to work with, but MIDI might be a good format for this.

like image 27
Andy White Avatar answered Jan 04 '23 13:01

Andy White