From e1e11546e52d4a87fc25a2a891ee6e74e39bed97 Mon Sep 17 00:00:00 2001 From: Werner Schweer Date: Tue, 24 Oct 2006 15:48:33 +0000 Subject: updates --- muse/muse/audio.cpp | 35 ++++++----------------------------- muse/muse/audio.h | 3 --- muse/muse/driver/jack.cpp | 11 +++++++---- muse/muse/midiseq.cpp | 1 + muse/muse/track.cpp | 6 +++--- 5 files changed, 17 insertions(+), 39 deletions(-) diff --git a/muse/muse/audio.cpp b/muse/muse/audio.cpp index b3e77213..f88a1934 100644 --- a/muse/muse/audio.cpp +++ b/muse/muse/audio.cpp @@ -108,7 +108,6 @@ Audio::Audio() clicksMeasure = 0; ticksBeat = 0; - syncTime = 0.0; state = STOP; lmark = 0; // left loop position rmark = 0; // right loop position @@ -159,7 +158,6 @@ bool Audio::start() clicksMeasure = 0; ticksBeat = 0; - syncTime = 0.0; msg = 0; _pos.setFrame(~0); // make sure seek is not optimized away @@ -321,7 +319,6 @@ void Audio::process(unsigned frames, int jackState) } if (jackState != state) { -// printf("process %s %s\n", audioStates[state], audioStates[jackState]); if (state == START_PLAY && jackState == PLAY) { startRolling(); if (_bounce) @@ -332,34 +329,23 @@ void Audio::process(unsigned frames, int jackState) seek(newPos); startRolling(); } - else if (isPlaying() && jackState == STOP) { + else if (isPlaying() && jackState == STOP) stopRolling(); - } else if (state == START_PLAY && jackState == STOP) { state = STOP; updateController = true; - if (_bounce) { + if (_bounce) audioDriver->startTransport(); - } - else { + else sendMsgToGui(MSG_STOP); - } } - else if (state == STOP && jackState == PLAY) { + else if (state == STOP && jackState == PLAY) startRolling(); - } - else if (state == LOOP1 && jackState == PLAY) - ; // treat as play - else if (state == LOOP2 && jackState == START_PLAY) - ; // sync cycle, treat as play - else - printf("JACK: state transition %s -> %s ?\n", - audioStates[state], audioStates[jackState]); } OutputList* ol = song->outputs(); if (idle || state == START_PLAY) { - // deliver no audio + // deliver silence for (iAudioOutput i = ol->begin(); i != ol->end(); ++i) (*i)->silence(frames); return; @@ -420,12 +406,6 @@ void Audio::process(unsigned frames, int jackState) _nextTickPos = ppp.tick(); } - // - // resync with audio interface - // syncTime - corresponding wall clock time - // - syncTime = curTime(); - // // compute current controller values // (automation) @@ -569,11 +549,8 @@ void Audio::processMsg() case SEQM_SET_GLOBAL_TEMPO: case SEQM_SET_TEMPO: song->processMsg(msg); - if (isPlaying()) { + if (isPlaying()) _pos.setTick(_curTickPos); -// int framePos = _pos.frame(); - syncTime = curTime(); - } break; case SEQM_IDLE: diff --git a/muse/muse/audio.h b/muse/muse/audio.h index 6934f0db..3a0eacbd 100644 --- a/muse/muse/audio.h +++ b/muse/muse/audio.h @@ -170,9 +170,6 @@ class Audio { int clicksMeasure; int ticksBeat; - double syncTime; // wall clock at last sync point -// unsigned syncFrame; // corresponding frame no. to syncTime - State state; bool updateController; diff --git a/muse/muse/driver/jack.cpp b/muse/muse/driver/jack.cpp index b90958f0..34d33507 100644 --- a/muse/muse/driver/jack.cpp +++ b/muse/muse/driver/jack.cpp @@ -826,14 +826,17 @@ void JackAudio::putEvent(Port port, const MidiEvent& e) unsigned ft; if (transportState == JackTransportRolling) { ft = e.time() - pos.frame; - if (pos.frame > e.time()) + if (pos.frame > e.time()) { +printf("time < 0 -- %d\n", pos.frame - e.time()); ft = 0; - else if (ft >= segmentSize) - ft = segmentSize -1; + } + else if (ft >= segmentSize) { + ft = segmentSize - 1; +printf("time >= segmentSize -- %d\n", segmentSize - ft); + } } else ft = 0; - switch(e.type()) { case ME_NOTEON: case ME_NOTEOFF: diff --git a/muse/muse/midiseq.cpp b/muse/muse/midiseq.cpp index 47d70cb2..3072d784 100644 --- a/muse/muse/midiseq.cpp +++ b/muse/muse/midiseq.cpp @@ -25,6 +25,7 @@ #include "audio.h" #include "driver/mididev.h" #include "driver/audiodev.h" +#include "driver/jackaudio.h" #ifdef __APPLE__ #include "driver/coretimer.h" diff --git a/muse/muse/track.cpp b/muse/muse/track.cpp index f2937450..276585c8 100644 --- a/muse/muse/track.cpp +++ b/muse/muse/track.cpp @@ -39,13 +39,13 @@ // synchronize with TrackType!: const char* Track::_cname[] = { - "Output", "Group", "Wave", "Input", - "Synti", "Midi", "MidiOut", "MidiIn", "M-Ch", "M-Synth" + "AudioOut", "Group", "Wave", "AudioIn", + "Synth", "Midi", "MidiOut", "MidiIn", "M-Ch", "M-Synth" }; const char* Track::_clname[] = { "Audio Output", "Audio Group", "Wave Track", "Audio Input", - "Synti", "Midi Track", "Midi Outport", "Midi Inport", "Midi Channel", + "Synti", "Midi Track", "Midi Output", "Midi Input", "Midi Channel", "Midi Synth" }; -- cgit v1.2.3