-MidiObserver interface in action, tested using APC controller
parent
60727b10be
commit
6c77081b15
|
@ -54,7 +54,7 @@ void AkaiAPC::volume(int t, float f)
|
||||||
|
|
||||||
void note_on( int track, int note, int vel )
|
void note_on( int track, int note, int vel )
|
||||||
{
|
{
|
||||||
|
printf("apc note on using MIDI observer \n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void cc_change( int track, int cc, float value )
|
void cc_change( int track, int cc, float value )
|
||||||
|
@ -84,6 +84,6 @@ void AkaiAPC::midi(unsigned char* data)
|
||||||
}
|
}
|
||||||
else if ( b1 >= 176 && b1 < 176 + 16 ) // CC
|
else if ( b1 >= 176 && b1 < 176 + 16 ) // CC
|
||||||
{
|
{
|
||||||
cc_change( b1 - 144, b2, data[2] / 127.f );
|
cc_change( b1 - 176, b2, data[2] / 127.f );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,8 @@ extern int jackSamplerate;
|
||||||
|
|
||||||
Jack::Jack() :
|
Jack::Jack() :
|
||||||
clientActive(false),
|
clientActive(false),
|
||||||
client( 0 )
|
client( 0 ),
|
||||||
|
controllerUpdater( new ControllerUpdater() )
|
||||||
{
|
{
|
||||||
// open the client
|
// open the client
|
||||||
client = jack_client_open ( "Luppp", JackNullOption , 0 , 0 );
|
client = jack_client_open ( "Luppp", JackNullOption , 0 , 0 );
|
||||||
|
@ -103,7 +104,8 @@ Jack::Jack() :
|
||||||
void Jack::activate()
|
void Jack::activate()
|
||||||
{
|
{
|
||||||
// move to "settings" class or so
|
// move to "settings" class or so
|
||||||
controllerUpdater->registerController( new AkaiAPC() );
|
Controller* c = new AkaiAPC();
|
||||||
|
controllerUpdater->registerController( c );
|
||||||
|
|
||||||
jack_activate( client );
|
jack_activate( client );
|
||||||
jack_transport_start(client);
|
jack_transport_start(client);
|
||||||
|
@ -161,7 +163,7 @@ int Jack::process (jack_nframes_t nframes)
|
||||||
// check each looper for MIDI match
|
// check each looper for MIDI match
|
||||||
for( int i = 0; i < midiObservers.size(); i++ )
|
for( int i = 0; i < midiObservers.size(); i++ )
|
||||||
{
|
{
|
||||||
midiObservers.at(i)->midi( (unsigned char*) in_event.buffer[0] );
|
midiObservers.at(i)->midi( (unsigned char*) &in_event.buffer[0] );
|
||||||
}
|
}
|
||||||
//std::for_each( midiObservers.begin(), midiObservers.end(), [](MidiObserver* mo) { mo->midi( ); } );
|
//std::for_each( midiObservers.begin(), midiObservers.end(), [](MidiObserver* mo) { mo->midi( ); } );
|
||||||
|
|
||||||
|
|
|
@ -7,5 +7,5 @@ extern Jack* jack;
|
||||||
|
|
||||||
MidiObserver::MidiObserver( std::string portName )
|
MidiObserver::MidiObserver( std::string portName )
|
||||||
{
|
{
|
||||||
//jack->registerMidiObserver( this );
|
jack->registerMidiObserver( this );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue