From: werner s. <wsc...@us...> - 2005-11-14 22:31:03
|
Update of /cvsroot/lmuse/muse/muse In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15968/muse Modified Files: Makefile.am importmidi.cpp midi.cpp midiseq.cpp Log Message: changed the needed LIBS for POSIX timers to the (hopefully) standard -lrt Index: Makefile.am =================================================================== RCS file: /cvsroot/lmuse/muse/muse/Makefile.am,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** Makefile.am 14 Nov 2005 20:05:36 -0000 1.45 --- Makefile.am 14 Nov 2005 22:30:52 -0000 1.46 *************** *** 15,19 **** givertcap_LDADD = -lcap ! RT_LIBS = -lposix-time UICBASES = transportbase --- 15,19 ---- givertcap_LDADD = -lcap ! RT_LIBS = -lrt UICBASES = transportbase Index: midiseq.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midiseq.cpp,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** midiseq.cpp 14 Nov 2005 20:05:36 -0000 1.69 --- midiseq.cpp 14 Nov 2005 22:30:52 -0000 1.70 *************** *** 284,289 **** { // timer = new PosixTimer; ! // timer = new RtcTimer; ! timer = new AlsaTimer; prio = priority; --- 284,289 ---- { // timer = new PosixTimer; ! timer = new RtcTimer; ! // timer = new AlsaTimer; prio = priority; Index: importmidi.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/importmidi.cpp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** importmidi.cpp 14 Nov 2005 20:05:36 -0000 1.46 --- importmidi.cpp 14 Nov 2005 22:30:52 -0000 1.47 *************** *** 91,94 **** --- 91,95 ---- MidiFileTrackList* etl = mf.trackList(); int division = mf.division(); + printf("division %d\n", division); MidiOutPort* outPort = 0; Index: midi.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midi.cpp,v retrieving revision 1.99 retrieving revision 1.100 diff -C2 -d -r1.99 -r1.100 *** midi.cpp 11 Nov 2005 22:21:44 -0000 1.99 --- midi.cpp 14 Nov 2005 22:30:52 -0000 1.100 *************** *** 420,436 **** for (iEvent i = mel.begin(); i != mel.end(); ++i) { Event ev = i->second; ! if (ev.isNote()) { ! if (ev.isNoteOff()) { ! iEvent k; ! bool found = false; ! for (k = i; k != mel.end(); ++k) { Event event = k->second; ! if (event.tick() > ev.tick()) ! break; ! if (event.isNoteOff(ev)) { ! ev.setLenTick(1); ! ev.setVelo(event.velo()); ! ev.setVeloOff(0); ! found = true; break; } --- 420,464 ---- for (iEvent i = mel.begin(); i != mel.end(); ++i) { Event ev = i->second; ! if (!ev.isNote()) ! continue; ! if (ev.lenTick()) ! continue; ! // printf("%d note %d %d\n", ev.tick(), ev.pitch(), ev.velo()); ! if (ev.isNoteOff()) { ! bool found = false; ! iEvent k = i; ! // printf(" start with note off\n"); ! for (++k; k != mel.end(); ++k) { ! Event event = k->second; ! if (event.tick() > ev.tick()) ! break; ! if (event.isNote() && event.velo() && event.pitch() == ev.pitch()) { ! ev.setLenTick(1); ! ev.setVelo(event.velo()); ! ev.setVeloOff(0); ! found = true; ! // printf(" found on: %d\n", event.tick()); ! break; ! } ! } ! if (!found) { ! // maybe found note with velocity zero is really a ! // note-on ! ! k = i; ! found = true; ! for (++k; k != mel.end(); ++k) { Event event = k->second; ! if (!event.isNote()) ! continue; ! if (event.pitch() == ev.pitch()) { ! if (event.velo() == 0) { ! found = true; ! int t = event.tick() - ev.tick(); ! ev.setLenTick(t); ! ev.setVelo(1); ! ev.setVeloOff(0); ! mel.erase(k); ! i = mel.begin(); ! } break; } *************** *** 440,490 **** ev.tick(), ev.type(), ev.pitch(), ev.velo()); } ! else { ! mel.erase(k); continue; - } - } - iEvent k; - for (k = mel.lower_bound(ev.tick()); k != mel.end(); ++k) { - Event event = k->second; - if (ev.isNoteOff(event)) { - int t = k->first - i->first; - if (t <= 0) { - if (debugMsg) { - printf("Note len is (%d-%d)=%d, set to 1\n", - k->first, i->first, k->first - i->first); - ev.dump(); - event.dump(); - } - t = 1; - } - ev.setLenTick(t); - ev.setVeloOff(event.veloOff()); - break; - } - } - if (k == mel.end()) { - printf("-no note-off! %d pitch %d velo %d\n", - ev.tick(), ev.pitch(), ev.velo()); - // - // switch off at end of measure - // - int endTick = song->roundUpBar(ev.tick()+1); - ev.setLenTick(endTick-ev.tick()); } else { mel.erase(k); } } ! } ! ! // DEBUG: any note offs left? ! ! for (iEvent i = mel.begin(); i != mel.end(); ++i) { ! Event ev = i->second; ! if (ev.isNoteOff()) { ! printf("+extra note-off! %d pitch %d velo %d\n", ! i->first, ev.pitch(), ev.velo()); ! // ev.dump(); } } --- 468,513 ---- ev.tick(), ev.type(), ev.pitch(), ev.velo()); } ! else continue; } else { mel.erase(k); + i = mel.begin(); // DEBUG + continue; } } ! iEvent k; ! // ev is noteOn ! for (k = mel.lower_bound(ev.tick()); k != mel.end(); ++k) { ! Event event = k->second; ! // printf(" - %d(%d,%d)\n", event.tick(), event.pitch(), event.velo()); ! if (ev.isNoteOff(event)) { ! int t = k->first - i->first; ! if (t <= 0) { ! if (debugMsg) { ! printf("Note len is (%d-%d)=%d, set to 1\n", ! k->first, i->first, k->first - i->first); ! ev.dump(); ! event.dump(); ! } ! t = 1; ! } ! ev.setLenTick(t); ! ev.setVeloOff(event.veloOff()); ! break; ! } ! } ! if (k == mel.end()) { ! printf(" -no note-off! %d pitch %d velo %d\n", ! ev.tick(), ev.pitch(), ev.velo()); ! // ! // switch off at end of measure ! // ! int endTick = song->roundUpBar(ev.tick()+1); ! ev.setLenTick(endTick-ev.tick()); ! } ! else { ! mel.erase(k); ! i = mel.begin(); } } |