mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 09:01:39 -05:00
-GUI Reverb knob events sent to DSP for mixing
This commit is contained in:
parent
6d7c91ba61
commit
43b38fd4d6
6 changed files with 68 additions and 10 deletions
|
@ -15,10 +15,19 @@
|
|||
|
||||
namespace Event
|
||||
{
|
||||
enum SEND_TYPE
|
||||
{
|
||||
SEND_REV = 0,
|
||||
SEND_SIDE,
|
||||
SEND_POST,
|
||||
};
|
||||
|
||||
enum {
|
||||
MASTER_VOL,
|
||||
RECORD,
|
||||
|
||||
|
||||
TRACK_SEND,
|
||||
TRACK_SIGNAL_LEVEL,
|
||||
TRACK_VOLUME,
|
||||
|
||||
|
@ -80,6 +89,20 @@ class EventTrackVol : public EventBase
|
|||
}
|
||||
};
|
||||
|
||||
class EventTrackSend : public EventBase
|
||||
{
|
||||
public:
|
||||
int type() { return int(TRACK_SEND); }
|
||||
uint32_t size() { return sizeof(EventTrackSend); }
|
||||
|
||||
int track;
|
||||
SEND_TYPE send;
|
||||
float value;
|
||||
|
||||
EventTrackSend(){};
|
||||
EventTrackSend(int t, SEND_TYPE s, int v): track(t), send(s), value(v){}
|
||||
};
|
||||
|
||||
class EventLooperState : public EventBase
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -75,6 +75,22 @@ void handleDspEvents()
|
|||
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventTimeTempoTap) );
|
||||
jack->getTimeManager()->tap();
|
||||
} break; }
|
||||
|
||||
case Event::TRACK_SEND: {
|
||||
if ( availableRead >= sizeof(EventTrackSend) ) {
|
||||
EventTrackSend ev;
|
||||
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventTrackSend) );
|
||||
if ( ev.send == SEND_REV )
|
||||
jack->getTrackOutput(ev.track)->setReverb( ev.value );
|
||||
else if ( ev.send == SEND_SIDE )
|
||||
jack->getTrackOutput(ev.track)->setSidechain( ev.value );
|
||||
else if ( ev.send == SEND_POST )
|
||||
jack->getTrackOutput(ev.track)->setPostSidechain( ev.value );
|
||||
else
|
||||
{
|
||||
// nothing
|
||||
}
|
||||
} break; }
|
||||
default:
|
||||
{
|
||||
// just do nothing
|
||||
|
|
|
@ -6,6 +6,10 @@ extern Gui* gui;
|
|||
|
||||
extern void luppp_tooltip(std::string s);
|
||||
|
||||
|
||||
//void gtrack_reverb_cb(Avtk::Dial *w, void *data)
|
||||
|
||||
|
||||
void gtrack_button_callback(Fl_Widget *w, void *data)
|
||||
{
|
||||
int track = 0;
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
using namespace std;
|
||||
|
||||
static void gtrack_reverb_cb(Fl_Widget *w, void *data);
|
||||
extern void gtrack_button_callback(Fl_Widget *w, void *data);
|
||||
|
||||
class GTrack : public Fl_Group
|
||||
|
@ -45,9 +46,9 @@ class GTrack : public Fl_Group
|
|||
volume(x+65, y +427, 36, 150, "Vol"),
|
||||
|
||||
|
||||
dial2(x+22, y +440 + 0, 30, 30, "S-C"),
|
||||
dial3(x+22, y +440 + 50, 30, 30, "P-S"),
|
||||
dial1(x+22, y +440 +100, 30, 30, "Rev"),
|
||||
side(x+22, y +440 + 0, 30, 30, "S-C"),
|
||||
post(x+22, y +440 + 50, 30, 30, "P-S"),
|
||||
rev (x+22, y +440 +100, 30, 30, "Rev"),
|
||||
|
||||
progress(x+5, y+ 26, 100, 100, "Source UI")
|
||||
{
|
||||
|
@ -55,6 +56,8 @@ class GTrack : public Fl_Group
|
|||
|
||||
clipSel.setID( ID );
|
||||
|
||||
rev.callback( gtrack_reverb_cb, this );
|
||||
|
||||
volume.callback( gtrack_button_callback, 0 );
|
||||
|
||||
progress.maximum(1.0f);
|
||||
|
@ -95,14 +98,22 @@ class GTrack : public Fl_Group
|
|||
|
||||
Avtk::Volume volume;
|
||||
|
||||
Avtk::Dial dial1;
|
||||
Avtk::Dial dial2;
|
||||
Avtk::Dial dial3;
|
||||
Avtk::Dial side;
|
||||
Avtk::Dial post;
|
||||
Avtk::Dial rev;
|
||||
|
||||
Fl_Progress progress;
|
||||
|
||||
static int privateID;
|
||||
};
|
||||
|
||||
void gtrack_reverb_cb(Fl_Widget *w, void *data)
|
||||
{
|
||||
GTrack* track = (GTrack*) data;
|
||||
EventTrackSend e( track->ID, SEND_REV, ((Avtk::Dial*)w)->value() );
|
||||
writeToDspRingbuffer( &e );
|
||||
//printf("track %i reverb send %f\n", track->ID, ((Avtk::Dial*)w)->value() );
|
||||
}
|
||||
|
||||
#endif // LUPPP_G_TRACK_H
|
||||
|
||||
|
|
|
@ -52,6 +52,10 @@ class Jack
|
|||
{
|
||||
return loopers.at(t);
|
||||
}
|
||||
TrackOutput* getTrackOutput(int t)
|
||||
{
|
||||
return trackOutputs.at(t);
|
||||
}
|
||||
|
||||
Metronome* getMetronome(){return &metronome;}
|
||||
TimeManager* getTimeManager(){return &timeManager;}
|
||||
|
|
|
@ -25,22 +25,22 @@ class TrackOutput : public AudioProcessor
|
|||
/// set main mix, 0-1
|
||||
void setMaster(float value)
|
||||
{
|
||||
|
||||
_toMaster = value;
|
||||
}
|
||||
/// set sidechain mix, 0-1
|
||||
void setSidechain(float value)
|
||||
{
|
||||
|
||||
_toSidechain = value;
|
||||
}
|
||||
/// set post sidechain mix, 0-1
|
||||
void setPostSidechain(float value)
|
||||
{
|
||||
|
||||
_toPostSidechain = value;
|
||||
}
|
||||
/// set reverb mix, 0-1
|
||||
void setReverb(float value)
|
||||
{
|
||||
|
||||
_toReverb = value;
|
||||
}
|
||||
|
||||
/// copies the track output to master buffer, sidechain & post-side buffer
|
||||
|
|
Loading…
Add table
Reference in a new issue