-Acts as timebase master, providing JACK with BPM info (useful with Masha / Ducka etc)
parent
f09515d8a5
commit
13b0172555
|
@ -155,6 +155,8 @@ Jack::Jack() :
|
|||
masterMeter = new DBMeter( buffers.samplerate );
|
||||
inputMeter = new DBMeter( buffers.samplerate );
|
||||
|
||||
buffers.transportPosition = 0;
|
||||
|
||||
/// setup JACK callbacks
|
||||
if ( jack_set_process_callback( client,
|
||||
static_process,
|
||||
|
@ -164,7 +166,7 @@ Jack::Jack() :
|
|||
}
|
||||
|
||||
if ( jack_set_timebase_callback(client,
|
||||
1, //0, 0 == must be master, 1 == conditional
|
||||
0, //0, 0 == must be master, 1 == conditional
|
||||
(JackTimebaseCallback)static_timebase,
|
||||
static_cast<void*>(this)) )
|
||||
{
|
||||
|
@ -494,8 +496,8 @@ int Jack::timebase(jack_transport_state_t state,
|
|||
int newPos)
|
||||
{
|
||||
// fill buffers with data, then pass to timeManager
|
||||
//buffers.transportPosition = pos;
|
||||
//buffers.transportState =&state;
|
||||
buffers.transportPosition = pos;
|
||||
buffers.transportState =&state;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -196,7 +196,7 @@ void TimeManager::process(Buffers* buffers)
|
|||
/*
|
||||
int tick = int( (beatFloat - beat) * 1920 );
|
||||
|
||||
buffers->transportPosition->valid = (JackPositionBBT | JackTransportPosition);
|
||||
buffers->transportPosition->valid = (JackPositionBBT); | JackTransportPosition);
|
||||
|
||||
buffers->transportPosition->tick += (buffers->nframes / buffers->samplerate);
|
||||
|
||||
|
@ -207,8 +207,11 @@ void TimeManager::process(Buffers* buffers)
|
|||
*/
|
||||
|
||||
int bpm = ( samplerate * 60) / fpb;
|
||||
//LUPPP_NOTE("BPM = %i " , bpm );
|
||||
//buffers->transportPosition->beats_per_minute = bpm;
|
||||
|
||||
if ( buffers->transportPosition )
|
||||
{
|
||||
//LUPPP_NOTE("BPM = %i " , bpm );
|
||||
buffers->transportPosition->valid = (JackPositionBBT);
|
||||
buffers->transportPosition->beats_per_minute = bpm;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue