| @@ -0,0 +1,44 @@ | |||
| import("stdfaust.lib"); | |||
| import("rack.lib"); | |||
| frenchBell_ui = pm.frenchBell(strikePosition,strikeCutoff,strikeSharpness,gain,gate) | |||
| with { | |||
| strikePosition = nentry("v:frenchBell/[0]strikePosition", 0,0,4,1); | |||
| strikeCutoff = hslider("v:frenchBell/[1]strikeCutOff", 6500,20,20000,1); | |||
| strikeSharpness = hslider("v:frenchBell/[2]strikeSharpness", 0.5,0.01,5,0.01); | |||
| // Connection with VCV knob and switch | |||
| gain = hslider("v:frenchBell/[3]gain [knob:1]",1,0,1,0.01); | |||
| gate = button("v:frenchBell/[4]gate [switch:1]"); | |||
| }; | |||
| freeverb_demo = _,_ <: (*(g)*fixedgain,*(g)*fixedgain : | |||
| re.stereo_freeverb(combfeed, allpassfeed, damping, spatSpread)), | |||
| *(1-g), *(1-g) :> _,_ | |||
| with{ | |||
| scaleroom = 0.28; | |||
| offsetroom = 0.7; | |||
| allpassfeed = 0.5; | |||
| scaledamp = 0.4; | |||
| fixedgain = 0.1; | |||
| origSR = 44100; | |||
| parameters(x) = hgroup("Freeverb",x); | |||
| knobGroup(x) = parameters(vgroup("[0]",x)); | |||
| // Connection with VCV knobs | |||
| damping = knobGroup(vslider("[0] Damp [knob:2] [style: knob] [tooltip: Somehow control the | |||
| density of the reverb.]",0.5, 0, 1, 0.025)*scaledamp*origSR/ma.SR); | |||
| combfeed = knobGroup(vslider("[1] RoomSize [knob:3] [style: knob] [tooltip: The room size | |||
| between 0 and 1 with 1 for the largest room.]", 0.5, 0, 1, 0.025)*scaleroom* | |||
| origSR/ma.SR + offsetroom); | |||
| spatSpread = knobGroup(vslider("[2] Stereo Spread [knob:4] [style: knob] [tooltip: Spatial | |||
| spread between 0 and 1 with 1 for maximum spread.]",0.5,0,1,0.01)*46*ma.SR/origSR | |||
| : int); | |||
| g = parameters(vslider("[1] Wet [knob:5] [tooltip: The amount of reverb applied to the signal | |||
| between 0 and 1 with 1 for the maximum amount of reverb.]", 0.3333, 0, 1, 0.025)); | |||
| }; | |||
| process = frenchBell_ui <: freeverb_demo; | |||
| @@ -13,7 +13,7 @@ freq1 = hslider("freq1 [knob:2] [unit:Hz] [scale:lin]", 300, 200, 300, 1); | |||
| vol2 = hslider("volume2 [knob:3]", 0.1, 0, 1, 0.01); | |||
| freq2 = hslider("freq2 [knob:4] [unit:Hz] ", 300, 200, 300, 1); | |||
| // Using switches ([switch::N] metadata with :N from 1 to 6) | |||
| // Using switches ([switch::N] metadata with N from 1 to 6) | |||
| gate = button("gate [switch:1]"); | |||
| @@ -21,13 +21,13 @@ gate = button("gate [switch:1]"); | |||
| check = checkbox("check [switch:2]"); | |||
| // Using bargraph to control lights ([light_red|green|blue:::N] metadata with :N from 1 to 6, to control 3 colors) | |||
| // Using bargraph to control lights ([light_red|green|blue:N] metadata with N from 1 to 6, to control 3 colors) | |||
| light_1_r = vbargraph("[light_red:1]", 0, 1); | |||
| light_1_g = vbargraph("[light_green:1]", 0, 1); | |||
| light_1_b = vbargraph("[light_blue:1]", 0, 1); | |||
| // Using bargraph to control switchlights ([switchlight_red|green|blue:::N] metadata with :N from 1 to 6, to control 3 colors) | |||
| // Using bargraph to control switchlights ([switchlight_red|green|blue:N] metadata with N from 1 to 6, to control 3 colors) | |||
| swl_2_r = vbargraph("[switchlight_red:3]", 0, 1); | |||
| swl_2_g = vbargraph("[switchlight_green:3]", 0, 1); | |||
| @@ -63,7 +63,6 @@ struct RackUI : public GenericUI | |||
| return -1; | |||
| } | |||
| } catch (invalid_argument& e) { | |||
| cerr << "ERROR : " << e.what() << endl; | |||
| return -1; | |||
| } | |||
| } | |||
| @@ -96,14 +95,14 @@ struct RackUI : public GenericUI | |||
| float state = block->switches[index-1]; | |||
| // Detect upfront | |||
| if (state == 1.0 && (state != fCheckBoxes[zone].fLast)) { | |||
| // Swich button state | |||
| // Switch button state | |||
| *zone = !*zone; | |||
| // And set the color | |||
| block->switchLights[index-1][0] = *zone; | |||
| block->switchLights[index-1][1] = *zone; | |||
| block->switchLights[index-1][2] = *zone; | |||
| } | |||
| // Always keep previous button state | |||
| // Keep previous button state | |||
| fCheckBoxes[zone].fLast = state; | |||
| }); | |||
| } | |||
| @@ -205,10 +204,14 @@ class FaustEngine : public ScriptEngine { | |||
| int run(const string& path, const string& script) override | |||
| { | |||
| #if defined ARCH_MAC | |||
| #if defined ARCH_LIN | |||
| string temp_cache = "/var/tmp/VCV_" + generateSHA1(script); | |||
| #elif defined ARCH_MAC | |||
| string temp_cache = "/private/var/tmp/VCV_" + generateSHA1(script); | |||
| #else | |||
| string temp_cache = "" + generateSHA1(script); | |||
| #elif defined ARCH_WIN | |||
| char buf[MAX_PATH+1] = {0}; | |||
| GetTempPath(sizeof(buf), buf); | |||
| string temp_cache = string(buf) + "/VCV_" + generateSHA1(script); | |||
| #endif | |||
| string error_msg; | |||