2009-12-31 7 views
8

Sto cercando di creare una piccola app che permetta all'utente di visualizzare e controllare (principalmente) la musica classica, al fine di riconoscere meglio strutture come il canone. Quale sarebbe una struttura di dati e file appropriata per memorizzare la musica?Rappresentazione di musica semantica (o simbolica)

So molto poco della musica, quindi questa sarà un'esperienza di apprendimento su due livelli per me. Mi piacerebbe iniziare con una visualizzazione di base come evidenziare le note in una partitura mentre la musica viene riprodotta a velocità controllata. Mi piacerebbe farlo in WPF con C#, leggendo musica da file strutturati.

+0

Wow è aperto. C'è un modo per restringere il campo? Suggerimenti sul linguaggio di programmazione? Preferenze per altre tecnologie come il database relazionale? –

+0

@ S.Lot, ho aggiunto quello che posso. Stavo deliberatamente cercando di evitare le specifiche della piattaforma nella mia domanda, poiché è piuttosto distante da qualsiasi livello di implementazione. – ProfK

+0

Ho lavorato a un'app per analizzare i punteggi musicali nei documenti XPS (come salvati/"stampati" da altre app come Acrobat Reader, poiché un documento XPS è essenzialmente XAML) e li visualizzo e li riproduco in WPF. WPF è una buona piattaforma, ma vorrei aver visto prima la risposta su MusicXML piuttosto che analizzare personalmente i punteggi. Troppo tardi ora per me ... – AndrewS

risposta

6

Quello che ti serve è un formato musicale simbolico rispetto a un formato audio. Dato che hai a che fare con la musica classica, usa lo MusicXML format. È supportato da oltre 160 applicazioni, incluse tutte le principali applicazioni di notazione musicale come Finale e Sibelius, quindi hai una vasta gamma di strumenti con cui lavorare.

Si noti tuttavia che eseguire il tipo di visualizzazione e evidenziazione di cui si sta parlando è un lavoro complesso. MusicXML esportato da Finale semplifica la programmazione includendo molta formattazione, quindi non devi fare le parti simili all'IA del layout di notazione musicale, ma è ancora complicato. Potresti dare un'occhiata agli strumenti esistenti e vedere cosa fa il lavoro. Forse puoi incorporare un visualizzatore/lettore MusicXML gratuito come lo Zong! Viewer o un editor di notazione come MuseScore? Controlla il MusicXML application list per ulteriori scelte. Poiché MusicXML è definito in XML, puoi anche utilizzare gli stessi strumenti XML che usi in qualsiasi altro progetto per leggere e scrivere i file MusicXML.

GUIDO è un altro formato simbolico, ma è stato supportato solo da un paio di applicazioni di nicchia e il suo sviluppo è stato abbandonato molti anni fa. MEI è un altro formato simbolico che non ha praticamente alcun supporto per le applicazioni. Un sacco di formati simbolici sono stati sviluppati circa 10 anni fa, ma MusicXML è l'unico comunemente usato oggi. Il MIDI è un formato di interscambio più vecchio che è universale per la riproduzione di strumenti elettronici, ma manca della semantica necessaria per rappresentare con precisione la notazione.

Buona fortuna!

+0

MEI (Music Encoding Initiative) è un altro formato, specialmente per uso accademico, con cui ho lavorato di recente. –

1

Può essere un po 'criptico con cui lavorare, ma il MIDI potrebbe essere un buon formato per questo.

2

Probabilmente finirai per voler utilizzare un sistema esistente come GUIDO. La musica è una cosa piuttosto complicata da modellare e GUIDO ha già fatto il lavoro per te. Ti suggerisco caldamente lo check it out.