140 likes | 262 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. Architecture.
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
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 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
Conclusions Musical Feature Detection in ACOI