Hi everybody,
Please have a look at the attached diff file. I was trying to record
something with the current git master and found that it is still not
working. I think I sent a similar patch maybe a year ago to the list
but it seems it didn't make it. The problem is, that the sequencer
doesn't start rolling in record mode. The playhead just doesn't move.
When pressing "Stop" the transport state gets completely invalid with
no way back.
If it helps, I'm using the jack backend and am trying to record MIDI.
The attached diff fixes the problem for me. I spent quite some time
back then figuring out, what's going wrong. So it'd be great if you
would accept the patch. :-)
Besides that I have another major problem. But I'm not sure how I could
possibly find the cause. Playback doesn't work anymore. The sequencer
rolls incredibly slow and the MIDI messages are not sent in time. It is
as if the sequencer is waiting a few seconds for some kind of timeout,
flushes the playback buffer, increases its time counter and then waits
again.
This one could be a local thing because the same problem also occurs
with MusE 2.1 from the Fedora repositories. Any help how to look into
this would be much appreciated.
Dennis
diff --git a/muse3/muse/audio.cpp b/muse3/muse/audio.cpp
index d782166..501986b 100644
--- a/muse3/muse/audio.cpp
+++ b/muse3/muse/audio.cpp
@@ -874,26 +874,33 @@ void Audio::startRolling()
}
}
}
-
- if (MusEGlobal::precountEnableFlag
- && MusEGlobal::song->click()
- && !MusEGlobal::extSyncFlag.value()
- && MusEGlobal::song->record()) {
- printf("state = PRECOUNT!\n");
- state = PRECOUNT;
- int z, n;
- if (MusEGlobal::precountFromMastertrackFlag)
- AL::sigmap.timesig(curTickPos, z, n);
- else {
- z = MusEGlobal::precountSigZ;
- n = MusEGlobal::precountSigN;
- }
- clickno = z * MusEGlobal::preMeasures;
- clicksMeasure = z;
- ticksBeat = (MusEGlobal::config.division * 4)/n;
- }
- else {
+ /// dennis: commented check for pre-count. Something seems to be
+ /// missing here because the state is not set to PLAY so that the
+ /// sequencer doesn't start rolling in record mode.
+ ///
+ /// I guess MusEGlobal::precountEnableFlag should be wired to the
+ /// pre-count flag in the preferences. But it seems that this
+ /// variable is never changed.
+ // if (MusEGlobal::precountEnableFlag
+ // && MusEGlobal::song->click()
+ // && !MusEGlobal::extSyncFlag.value()
+ // && MusEGlobal::song->record()) {
+ // printf("state = PRECOUNT!\n");
+ // state = PRECOUNT;
+ // int z, n;
+ // if (MusEGlobal::precountFromMastertrackFlag)
+ // AL::sigmap.timesig(curTickPos, z, n);
+ // else {
+ // z = MusEGlobal::precountSigZ;
+ // n = MusEGlobal::precountSigN;
+ // }
+ // clickno = z * MusEGlobal::preMeasures;
+ // clicksMeasure = z;
+ // ticksBeat = (MusEGlobal::config.division * 4)/n;
+ //
+ // }
+ // else {
//
// compute next midi metronome click position
//
@@ -903,7 +910,7 @@ void Audio::startRolling()
if (tick)
beat += 1;
midiClick = AL::sigmap.bar2tick(bar, beat, 0);
- }
+ // }
// reenable sustain
for (int i = 0; i < MIDI_PORTS; ++i) {
------------------------------------------------------------------------------
_______________________________________________
Lmuse-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmuse-developer