mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 09:01:39 -05:00
-Added APC volume support using MIDI. Needs refactoring to scale to any controller
This commit is contained in:
parent
5148aec4e5
commit
112d850848
3 changed files with 33 additions and 2 deletions
|
@ -20,6 +20,7 @@ namespace Event
|
|||
RECORD,
|
||||
|
||||
TRACK_SIGNAL_LEVEL,
|
||||
TRACK_VOLUME,
|
||||
|
||||
LOOPER_LOAD,
|
||||
LOOPER_STATE,
|
||||
|
@ -62,6 +63,23 @@ class EventMasterVol : public EventBase
|
|||
}
|
||||
};
|
||||
|
||||
class EventTrackVol : public EventBase
|
||||
{
|
||||
public:
|
||||
int type() { return int(TRACK_VOLUME); }
|
||||
uint32_t size() { return sizeof(EventTrackVol); }
|
||||
|
||||
int track;
|
||||
float vol;
|
||||
|
||||
EventTrackVol(){};
|
||||
EventTrackVol(int t, float v)
|
||||
{
|
||||
track = t;
|
||||
vol = v;
|
||||
}
|
||||
};
|
||||
|
||||
class EventLooperState : public EventBase
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -66,12 +66,20 @@ void handleGuiEvents()
|
|||
gui->getTrack(ev.track)->progress.value(ev.progress);
|
||||
//jack->setLooperLoopLength( ev.track, ev.scale );
|
||||
} break; }
|
||||
|
||||
case Event::TRACK_SIGNAL_LEVEL: {
|
||||
if ( availableRead >= sizeof(EventTrackSignalLevel) ) {
|
||||
EventTrackSignalLevel ev;
|
||||
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventTrackSignalLevel) );
|
||||
gui->getTrack(ev.track)->getVolume()->amplitude( ev.left, ev.right );
|
||||
} break; }
|
||||
case Event::TRACK_VOLUME: {
|
||||
if ( availableRead >= sizeof(EventTrackVol) ) {
|
||||
EventTrackVol ev;
|
||||
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventTrackVol) );
|
||||
gui->getTrack(ev.track)->getVolume()->value( ev.vol );
|
||||
} break; }
|
||||
|
||||
case Event::GUI_PRINT: {
|
||||
if ( availableRead >= sizeof(EventGuiPrint) ) {
|
||||
EventGuiPrint ev;
|
||||
|
|
|
@ -73,7 +73,13 @@ void Looper::midi(unsigned char* data)
|
|||
{
|
||||
switch ( data[1] )
|
||||
{
|
||||
case 7: gain = int(data[2])/127.f; break;
|
||||
//case 7: gain = int(data[2])/127.f; break;
|
||||
case 7:{
|
||||
printf("volue\n");
|
||||
// volume from APC
|
||||
EventTrackVol e( track, data[2] / 127.f );
|
||||
writeToGuiRingbuffer( &e ); }
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -204,7 +210,6 @@ void Looper::process(int nframes, Buffers* buffers)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue