Submit
Browse
Anonymous
Login
RSS
SuperCollider Code
Fork Code: modulo2
name
code content
// Modulo // ukiyo-neko systems // // Modulo es un ejemplo de un programa en supercollider // Primero se describe un sintetizador ( // en Supercollider los sintetizadores son funciones cuyos argumentos podemos modular de diversas y múltiples maneras // Primero llamamos SynthDef que se come una funcion Ugen {esa cosa que tiene sombrero chino} como argumento // esta funcion le dice al servidor que cree una instancia de sintetizador y nos escupe un nombre para ese sinte // con ese nombre le podemos pedir cosas, que cambie parametros o que nos diga información sobre la función // por ejemplo frecuencia de una onda seno SynthDef(\modulo,{arg carrfreq=440, modfreq=10, moddepth=0.5; // Modulo es un ejemplo de modulaci'on de frecuencia (FM) simple // tiene 3 argumentos // carrfreq que es una freciencia base a la cual le sumamos una onda de seno // entonces la grafica de la frecuencia de nuestro nuevo sonido es una onda de seno modulada en frecuencia alrededor de //carrfreq con frecuencia // modfreq // que tanto modulamos la frecuencia depende de moddepth Out.ar(0, // SinOsc.ar(carrfreq + SinOsc.ar(modfreq,0,moddepth),0,0.25)!2) }).add; ) s.scope; ( var w, carrfreqslider, m1control, m1addslider, synth; ////////////////////// // Initialize Windows ////////////////////// Window.closeAll; s.scope; // we have the possibility of creating subwindows /* subwin = FlowView.new( parent: win, bounds: Rect(710, 230, 185, 150), margin: 10@10, gap: 10@10; );*/ //////////////////// // window creation //////////////////// w=Window("frequency modulation", Rect(100, 500, 400, 300),resizable: false); w.view.decorator = FlowLayout(w.view.bounds); w.front; w.onClose = {s.freeAll}; // What to do on close (or ctrl+period) CmdPeriod.doOnce({Window.closeAll}); //// window aesthetics w.background = Color.new(1,1,1,1); w.alpha = 0.95; /////////////// // synth creation/ ////////////////// a = Synth(\modulo); // create the slider with EXSlider carrfreqslider is how we address it carrfreqslider= EZSlider(w, 300@50, "carrfreq", ControlSpec(20, 5000, 'linear', 10, 440), {|ez| a.set(\carrfreq, ez.value)}); w.view.decorator.nextLine; w.view.decorator.nextLine; m1control = Slider2D(w,Rect(10,10,180,180)); // modfreqslider= EZSlider(w, 300@50, "modfreq", ControlSpec(1, 2000, 'linear', 1, 1), {|ez| a.set(\modfreq, ez.value)}); // // w.view.decorator.nextLine; // moddepthslider= EZSlider(w, 300@50, "moddepth", ControlSpec(0.01, 5000, 'linear', 0.01, 0.01), {|ez| a.set(\moddepth, ez.value)}); m1control.action = { a.set(\modfreq,m1control.x*100.0+1);//\moddepth,m1control.y*0.5+0.01).postln; a.set(\moddepth,m1control.y*1000.0);//\moddepth,m1control.y*0.5+0.01).postln; a.get(\modfreq,{arg value;("freq:" + value + "Hz").postln;}); a.get(\moddepth,{arg value;("depth:" + value + "Hz").postln;}); }; w.front; ) ( var w, carrfreqslider, modfreqslider, moddepthslider, synth; w=Window("frequency modulation", Rect(100, 400, 400, 300)); w.view.decorator = FlowLayout(w.view.bounds); c= Synth(\modulo); carrfreqslider= EZSlider(w, 300@50, "carrfreq", ControlSpec(20, 5000, 'linear', 10, 440), {|ez| c.set(\carrfreq, ez.value)}); w.view.decorator.nextLine; modfreqslider= EZSlider(w, 300@50, "modfreq", ControlSpec(1, 2000, 'linear', 1, 1), {|ez| c.set(\modfreq, ez.value)}); w.view.decorator.nextLine; moddepthslider= EZSlider(w, 300@50, "moddepth", ControlSpec(0.01, 5000, 'linear', 0.01, 0.01), {|ez| c.set(\moddepth, ez.value)}); w.front;
code description
lo mismo que modulo pero usando slider2d
use markdown for formating
category tags
comma separated, i.g. "wild, siren" (do not enter default SC class names, please)
ancestor(s)
comma separated identificators, i.g. "1-C,1-1,1-4M,1-x"
Private?
the code will be accessible by direct url and not visible in public activity
signup to submit public code without captcha
comment of change