180 likes | 312 Views
Musical Feature Detection. (work in progress). Anton Eliens. Musical Feature Detection. Introduction Architecture Extraction Query facilities Validation: case study Open problems Conclusions. Introduction. gathering. query. description. similarity. extraction. Out there on the Web.
E N D
Musical Feature Detection (work in progress) Anton Eliens Musical Feature Detection in ACOI
Musical Feature Detection • Introduction • Architecture • Extraction • Query facilities • Validation: case study • Open problems • Conclusions Musical Feature Detection in ACOI
Introduction gathering query description similarity extraction Musical Feature Detection in ACOI
Out there on the Web • Aria Database: title, category, voice part • Midi Files on the Farm: per genre • Meta Searches: AltaVista, Infoseek • Lyrics search …. Keywords and categories Btw. Why MIDI? - Informix: Musclefish Datablade - Meldex: www.nzdl.www content Musical Feature Detection in ACOI
Architecture Musical Feature Detection in ACOI
Extraction- the anatomy of a midi file Musical Feature Detection in ACOI
detector song; to get the filename detector lyrics; extracts lyrics detector melody; extracts melody atom str name; atom str text; atom str note; midi: song; song: file lyrics melody; file: name; lyrics: text*; melody: note*; Feature grammar Musical Feature Detection in ACOI
int melodyDetector(tree *pt, list *tks ){ char buf[1024]; char* _result; void* q = _query; int idq = 0; idq = query_eval(q,"X:melody(X)"); while ((_result = query_result(q,idq)) ) { printf("note: \%s\n",_result); putAtom(tks,"note",_result); } return SUCCESS; } Melody detector embedded logic Musical Feature Detection in ACOI
V1 := newoid(); midi_song.insert(oid(V0),oid(V1)); V2 := newoid(); song_file.insert(oid(V1),oid(V2)); file_name.insert(oid(V2),"kortjakje"); song_lyrics.insert(oid(V1),oid(V2)); lyrics_text.insert(oid(V2),"e"); lyrics_text.insert(oid(V2),"per-"); lyrics_text.insert(oid(V2),"sonne"); lyrics_text.insert(oid(V2),"Moi"); lyrics_text.insert(oid(V2),"je"); lyrics_text.insert(oid(V2),"dis"); lyrics_text.insert(oid(V2),"que"); lyrics_text.insert(oid(V2),"les"); lyrics_text.insert(oid(V2),"bon-"); lyrics_text.insert(oid(V2),"bons"); lyrics_text.insert(oid(V2),"Val-"); lyrics_text.insert(oid(V2),"ent"); song_melody.insert(oid(V1),oid(V2)); melody_note.insert(oid(V2),"a-2"); melody_note.insert(oid(V2),"a-2"); melody_note.insert(oid(V2),"g-2"); melody_note.insert(oid(V2),"g-2"); melody_note.insert(oid(V2),"f-2"); melody_note.insert(oid(V2),"f-2"); melody_note.insert(oid(V2),"e-2"); melody_note.insert(oid(V2),"e-2"); melody_note.insert(oid(V2),"d-2"); melody_note.insert(oid(V2),"d-2"); melody_note.insert(oid(V2),"e-2"); melody_note.insert(oid(V2),"c-2"); Monet updates Kortjakje.mid Musical Feature Detection in ACOI
extraction Musical Feature Detection in ACOI
Query voice Musical Feature Detection in ACOI
Case study Kortjakje Musical Feature Detection in ACOI
Representation Song: kortjakje Composer: Who cares. Melody: c c g g a a g g f f e e d d c Score: Musical Feature Detection in ACOI
Kortjakje variations Mozart XII variations Musical Feature Detection in ACOI
melody transcription Meldex melody retrieval from tunes Musical Feature Detection in ACOI
Meldex Hum that Tune capture transcribe retrieval Exact match Approx match www.nzdl.org dynamic programming Musical Feature Detection in ACOI
No of notes rel. to size and alg. Search times, fixed database size Musical Feature Detection in ACOI
Conclusions Musical Feature Detection in ACOI