diff --git a/drmr.c b/drmr.c index 1306032..296cd77 100644 --- a/drmr.c +++ b/drmr.c @@ -175,6 +175,8 @@ connect_port(LV2_Handle instance, static void activate(LV2_Handle instance) { } +// taken from lv2 example amp plugin +#define DB_CO(g) ((g) > -90.0f ? powf(10.0f, (g) * 0.05f) : 0.0f) static void run(LV2_Handle instance, uint32_t n_samples) { int i,kitInt; @@ -185,7 +187,7 @@ static void run(LV2_Handle instance, uint32_t n_samples) { pthread_cond_signal(&drmr->load_cond); LV2_Event_Iterator eit; - if (lv2_event_begin(&eit,drmr->midi_port)) { // if we have any events + if (drmr->midi_port && lv2_event_begin(&eit,drmr->midi_port)) { // if we have any events LV2_Event *cur_ev; uint8_t* data; while (lv2_event_is_valid(&eit)) { @@ -229,9 +231,9 @@ static void run(LV2_Handle instance, uint32_t n_samples) { if (cs->active) { float gain; if (i < 16) - gain = *(drmr->gains[i]); + gain = DB_CO(*(drmr->gains[i])); else - gain = 1.0f; + gain = DB_CO(0.0f); if (cs->info.channels == 1) { // play mono sample lim = (n_samples < (cs->limit - cs->offset)?n_samples:(cs->limit-cs->offset)); for(pos = 0;pos < lim;pos++) { @@ -265,7 +267,7 @@ static void cleanup(LV2_Handle instance) { free(instance); } -const void* extension_data(const char* uri) { +static const void* extension_data(const char* uri) { return NULL; } diff --git a/drmr.ttl b/drmr.ttl index 0b90e34..e38dded 100644 --- a/drmr.ttl +++ b/drmr.ttl @@ -52,9 +52,13 @@ lv2:index 4; lv2:symbol "gain_one"; lv2:name "Sample One Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -62,9 +66,13 @@ lv2:index 5; lv2:symbol "gain_two"; lv2:name "Sample Two Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -72,9 +80,13 @@ lv2:index 6; lv2:symbol "gain_three"; lv2:name "Sample Three Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -82,9 +94,13 @@ lv2:index 7; lv2:symbol "gain_four"; lv2:name "Sample Four Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -92,19 +108,27 @@ lv2:index 8; lv2:symbol "gain_five"; lv2:name "Sample Five Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ a lv2:ControlPort, lv2:InputPort; lv2:index 9; - lv2:symbol "gain_siz"; - lv2:name "Sample Siz Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:symbol "gain_six"; + lv2:name "Sample Six Gain"; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -112,9 +136,13 @@ lv2:index 10; lv2:symbol "gain_seven"; lv2:name "Sample Seven Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -122,9 +150,13 @@ lv2:index 11; lv2:symbol "gain_eight"; lv2:name "Sample Eight Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -132,9 +164,13 @@ lv2:index 12; lv2:symbol "gain_nine"; lv2:name "Sample Nine Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -142,9 +178,13 @@ lv2:index 13; lv2:symbol "gain_ten"; lv2:name "Sample Ten Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -152,9 +192,13 @@ lv2:index 14; lv2:symbol "gain_eleven"; lv2:name "Sample Eleven Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -162,9 +206,13 @@ lv2:index 15; lv2:symbol "gain_twelve"; lv2:name "Sample Twelve Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -172,9 +220,13 @@ lv2:index 16; lv2:symbol "gain_thirteen"; lv2:name "Sample Thirteen Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -182,9 +234,13 @@ lv2:index 17; lv2:symbol "gain_fourteen"; lv2:name "Sample Fourteen Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [ @@ -192,9 +248,13 @@ lv2:index 18; lv2:symbol "gain_fifteen"; lv2:name "Sample Fifteen Gain"; - lv2:minimum 0.0; - lv2:maximum 1.0; - lv2:default 1.0; + lv2:minimum -90.0; + lv2:maximum 6.0; + lv2:default 0.0; + lv2:scalePoint [ + rdfs:label "-inf" ; + rdf:value -90.0 + ] ], [