Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- s.boot;
- s.waitForBoot {
- // Initialize parameters
- a = 0; // mix
- b = 0; // roomsize
- c = 0; // damping
- d = 0; // amp
- s.defualt.synch;
- };
- // Load the sound
- ~sound = Buffer.read(s,"ABDW_Fyre_Gut_Kick.wav" );
- // Change Mix
- ~changeMix = { |temp1|
- // Assign the parameter value to the global variable Amp
- a = temp1;
- "RoomSize value changed to:".post;
- a.postln; // Print the new value
- };
- // Change RoomSize
- ~changeRoomSize = { |temp2|
- // Assign the parameter value to the global variable Amp
- b = temp2;
- "RoomSize value changed to:".post;
- b.postln; // Print the new value
- };
- // Change Damp
- ~changeDamping = { |temp3|
- // Assign the parameter value to the global variable Amp
- c = temp3;
- "Damp value changed to:".post;
- c.postln; // Print the new value
- };
- // Change Amp
- ~changeAmp = { |temp4|
- // Assign the parameter value to the global variable Amp
- d = temp4;
- "Amp value changed to:".post;
- d.postln; // Print the new value
- };
- // Define SynthDefs for dry sound and reverb
- (
- SynthDef(\drySound, {
- arg out = 0, amp = 1;
- var sound = PlayBuf.ar(2, ~sound.bufnum, doneAction: 2);
- Out.ar(out, sound * amp);
- }).add;
- SynthDef(\reverbSound, {
- arg in, out, mix = a, roomSize = b, damping = c, amp = d;
- //arg in, out, mix = 0.5, roomSize = 0.5, damping = 0.5, amp = 0.5;
- var sound = PlayBuf.ar(2, ~sound.bufnum, doneAction: 2);
- // Process the input signal with FreeVerb
- var input = In.ar(in, 2);
- /*var reverb = FreeVerb.ar(input, a, b, c); */
- var reverb = FreeVerb.ar(input, roomSize, damping, mix);
- // Mix the dry and wet signals
- var output = (input * (1 - mix)) + (reverb * mix);
- // Output the signal
- Out.ar(out, output * amp);
- }).add;
- )
- // GUI
- (
- // Boot the GUI
- //s.waitForBoot {
- // Create a window
- w = Window("Reverb Controls", Rect(100, 100, 400, 200));
- // Mix slider
- Slider(w, Rect(10, 10, 200, 20))
- .value_(1)
- .action_({|obj|
- var temp1;
- temp1 = obj.value;
- ~changeMix.(temp1);
- /* var mx = obj.value.linexp(0, 1, 0, 1);
- // Set the mix parameter
- x.set(\mix, mx);*/
- });
- // Room size slider
- Slider(w, Rect(10, 40, 200, 20))
- .value_(1)
- .action_({|obj|
- var temp2;
- temp2 = obj.value;
- ~changeRoomSize.(temp2);
- /* var roomSize = obj.value.linexp(0, 1, 0, 1);
- // Set the roomSize parameter
- x.set(\roomSize, roomSize);*/
- });
- // Damping slider
- Slider(w, Rect(10, 70, 200, 20))
- .value_(1)
- .action_({|obj|
- var temp3;
- temp3 = obj.value;
- ~changeDamping.(temp3);
- /* var damping = obj.value.linexp(0, 1, 0, 1);
- // Set the damping parameter
- x.set(\damping, damping);*/
- });
- // Amplitude slider
- Slider(w, Rect(10, 100, 200, 20))
- .value_(1)
- .action_({|obj|
- var temp4;
- temp4 = obj.value;
- ~changeAmp.(temp4);
- /* var amp = obj.value.linexp(0, 1, 0, 1);
- // Set the amp parameter
- x.set(\amp, amp);*/
- });
- // Play Dry button
- Button(w, Rect(220, 130, 150, 20))
- .states_([["Play Dry", Color.black, Color.white]])
- .action_({
- // Start the dry sound Synth
- Synth(\drySound);
- });
- // Play with Reverb button
- Button(w, Rect(220, 160, 150, 20))
- .states_([["Play with Reverb", Color.black, Color.white]])
- .action_({
- // Start the reverb Synth with specified parameters
- Synth(\reverbSound, [
- \in, 1, // Input bus
- \out, 1, // Output bus
- \mix, a,
- \roomSize, b,
- \damping, c,
- \amp, d
- /* \mix, x.get(\mix), // Reverb mix (0-1)
- \roomSize, x.get(\roomSize),// Room size (0-1)
- \damping, x.get(\damping), // Damping (0-1)
- \amp, x.get(\amp) // Amplitude*/
- ]);
- });
- // StaticText for labels
- StaticText(w, Rect(220, 10, 100, 20)).string_("Mix");
- StaticText(w, Rect(220, 40, 100, 20)).string_("Room Size");
- StaticText(w, Rect(220, 70, 100, 20)).string_("Damping");
- StaticText(w, Rect(220, 100, 100, 20)).string_("Amplitude");
- // Show the window
- w.front;
- //};
- )
- //s.quit;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement