Sunteți pe pagina 1din 8

//

///Feel free to use this plugin to practive and improve


//your critical listening.
//
///I recommend the reading and listeing of Dave Moulton's
//Golden Ears (http://www.moultonlabs.com/full/product01)
//which inspired me to make this little plugin.
//
///Finally, thanks to the Cockos team for this incredible
//powerful DAW without limits.
//
/////Spyrow.
//
//
//PS: If you find any bug send me a PM at Cockos Forums.
//PS2: The filter is borrowed from the Parametric_EQ plugin:
//// Parametric EQ JS plugin.
//// Copyright (C) 2004 and on, Cockos Inc.
//// License: GPL
//
desc: Spyrow's Ear training for Mixing Engineers
slider1: 0<0,1,1{1 Octave,1/3 Octave}> Bandwidth
slider2: 0<0,1,1{-,32 Hz,63 Hz,125 Hz,250 Hz,500 Hz,1000 Hz,2000 Hz,4000 Hz,8000
Hz,16000 Hz}> Minimum Frequency 1 Octave
slider3: 0<0,1,1{-,32 Hz,63 Hz,125 Hz,250 Hz,500 Hz,1000 Hz,2000 Hz,4000 Hz,8000
Hz,16000 Hz}> Maximum Frequency 1 Octave
slider4: 0<0,1,1{-,25 Hz,31 Hz,40 Hz,50 Hz,63 Hz,80 Hz,100 Hz,125 Hz,160 Hz,200
Hz,250 Hz,315 Hz,400 Hz,500 Hz,630 Hz,800 Hz,1000 Hz,1250 Hz,1600 Hz,2000 Hz,250
0 Hz,3150 Hz,4000 Hz,5000 Hz,6300 Hz,8000 Hz,10000 Hz,12500 Hz,16000 Hz,20000 Hz
}> Minimum Frequency 1/3 Octave
slider5: 0<0,1,1{-,25 Hz,31 Hz,40 Hz,50 Hz,63 Hz,80 Hz,100 Hz,125 Hz,160 Hz,200
Hz,250 Hz,315 Hz,400 Hz,500 Hz,630 Hz,800 Hz,1000 Hz,1250 Hz,1600 Hz,2000 Hz,250
0 Hz,3150 Hz,4000 Hz,5000 Hz,6300 Hz,8000 Hz,10000 Hz,12500 Hz,16000 Hz,20000 Hz
}> Maximum Frequency 1/3 Octave
slider6: 0<0,1,1{Both,Boost only,Cut only}>Boost or Cut?
slider7: -12<-18,-3,2.5>Minimum cut (dB)
slider8: -12<-18,-3,2.5>Maximum cut (dB)
slider9: 12<3,18,2.5>Minimum boost (dB)
slider10: 12<3,18,2.5>Maximum boost (dB)
slider11: 5<0,10,1>Auto Timing (0 seconds = Manual)
slider12: 0<0,1,1{-,No,Yes}>Bypass EQ (only with manual timing)
slider13: 0<0,1,1{Not yet,Yes}>Let's start?
slider14: 0<0,1,1{-,Not yet,Yes please}>Show the solution?
slider15: 0<0,1,1{-,Not yet,Yes please}>Reset the riddle?
slider16: 0<0,1,1{-,Not yet,Yes please}>Listen again? (only with auto timing)
@init
ext_noinit = 1;
slider2 = 1;
slider3 = 10;
sliderchange(slider2);
sliderchange(slider3);
timing = 0;
reset = 0;
show = 0;
bypass = 0;
auto = 0;

octave = 0;
a[31]
a[32]
a[33]
a[34]
a[35]
a[36]
a[37]
a[38]
a[39]
a[40]
a[41]

=
=
=
=
=
=
=
=
=
=
=

0;
32;
63;
125;
250;
500;
1000;
2000;
4000;
8000;
16000;

b[0] = 0;
b[1] = 25;
b[2] = 31;
b[3] = 40;
b[4] = 50;
b[5] = 63;
b[6] = 80;
b[7] = 100;
b[8] = 125;
b[9] = 160;
b[10] = 200;
b[11] = 250;
b[12] = 315;
b[13] = 400;
b[14] = 500;
b[15] = 630;
b[16] = 800;
b[17] = 1000;
b[18] = 1250;
b[19] = 1600;
b[20] = 2000;
b[21] = 2500;
b[22] = 3150;
b[23] = 4000;
b[24] = 5000;
b[25] = 6300;
b[26] = 8000;
b[27] = 10000;
b[28] = 12500;
b[29] = 16000;
b[30] = 20000;
// For parametric EQ
c0=c1=c2=0;
ldelay1=ldelay2=rdelay1=rdelay2=0;
li1=li2=ri1=ri2=0;
width_1 = 1.5;
width_13 = 0.5;
@slider
(slider1 == 1) && (octave == 0) ? (
slider2 = 0;
slider3 = 0;
slider4 = 1;
slider5 = 30;
octave = 1;

);
(slider1 == 0) && (octave == 1) ? (
slider2 = 1;
slider3 = 10;
slider4 = 0;
slider5 = 0;
octave = 0;
);
slider7 < slider8 ? slider8 = slider7;
slider9 > slider10 ? slider10 = slider9;
slider3 < slider2 ? slider3 = slider2;
slider5 < slider4 ? slider5 = slider4;
(slider11 == 0) && (timing == 0) ? (
slider12 = 1;
timing = 1;
);
(slider11 > 0) && (timing == 1) ? (
slider12 = 0;
timing = 0;
);
(slider13 == 1) && (show == 0) ? (
slider14 = 1;
show = 1;
//1 Octave Random
octave == 0 ? (
num_oct = slider3 - slider2+1;
while (
oct_freq = floor(rand(num_oct+1));
oct_freq == 0;
);
oct_freq = oct_freq + slider2 - 1;
oct = a[oct_freq+31];
);
//1/3 Octave Random
octave == 1 ? (
num_oct = slider5 - slider4+1;
while (
oct_freq = floor(rand(num_oct+1));
oct_freq == 0;
);
oct_freq = oct_freq + slider4 - 1;
oct = a[oct_freq];
);
//Boost&Cut Random
while (
cut = (floor(rand(6))+1)*3;
cut = -cut;
(cut > slider7) || (cut < slider8);
);
while (
boost = (floor(rand(6))+1)*3;

(boost > slider10) || (boost < slider9);


);
slider6 == 0 ? (
rand(2) < 1 ? bnc = boost : bnc = cut;
) : slider6 == 1 ? bnc = boost : bnc = cut;
//NOW THE FILTER
octave == 0 ? width = width_1 : width = width_13;
arc=oct*$pi/(srate*0.5);
gain=(2 ^ (bnc/6));
x=(sin(arc)*width) * (gain < 1 ? 1 : 0.25);
tmp=1/(1+x);
c0=tmp*x*(gain-1);
c1=tmp*2*cos(arc);
c2=tmp*(x-1);
//NOW THE BYPASS AND TIMING
slider11 == 0 ? bypass = 1 : auto = buffer = 1;
);
(slider14 == 2) && (reset == 0) ? (
slider15 = 1;
reset = 1;
);
slider15 == 2 ? (
slider13 = 0;
slider14 = 0;
slider15 = 0;
reset = 0;
show = 0;
bypass = 0;
slider11 == 0 ? slider12 = 1 : slider12 = 0;
auto = 0;
slider16 = 0;
);
(slider11 == 0) && (slider13 == 1) && (slider12 == 2) ? bypass = 0;
(slider11 == 0) && (slider13 == 1) && (slider12 == 1) ? bypass = 1;
(slider16 == 2) && (slider13 == 1) && (slider11 != 0) ? auto = buffer = 1;

@gfx 100 10
gfx_x=gfx_y=5;
gfx_lineto(gfx_x, gfx_y,0);
gfx_r=gfx_b=0;
gfx_g=gfx_a=1;
slider13 == 0 ? (
gfx_drawchar($'U');
gfx_drawchar($'s');
gfx_drawchar($'e');
gfx_drawchar($' ');

gfx_drawchar($'"');
gfx_drawchar($'L');
gfx_drawchar($'e');
gfx_drawchar($'t');
gfx_drawchar($'s');
gfx_drawchar($' ');
gfx_drawchar($'s');
gfx_drawchar($'t');
gfx_drawchar($'a');
gfx_drawchar($'r');
gfx_drawchar($'t');
gfx_drawchar($'"');
gfx_drawchar($' ');
gfx_drawchar($'t');
gfx_drawchar($'o');
gfx_drawchar($' ');
gfx_drawchar($'s');
gfx_drawchar($'t');
gfx_drawchar($'a');
gfx_drawchar($'r');
gfx_drawchar($'t');
gfx_drawchar($'.');
) : (
slider14 == 1 ? (
gfx_drawchar($'N');
gfx_drawchar($'o');
gfx_drawchar($'w');
gfx_drawchar($' ');
gfx_drawchar($'t');
gfx_drawchar($'r');
gfx_drawchar($'y');
gfx_drawchar($' ');
gfx_drawchar($'t');
gfx_drawchar($'o');
gfx_drawchar($' ');
gfx_drawchar($'g');
gfx_drawchar($'u');
gfx_drawchar($'e');
gfx_drawchar($'s');
gfx_drawchar($'s');
gfx_drawchar($'.');
gfx_drawchar($'.');
gfx_drawchar($'.');
bypass == 1 ? (
gfx_drawchar($' ');
gfx_drawchar($'(');
gfx_drawchar($'E');
gfx_drawchar($'Q');
gfx_drawchar($' ');
gfx_drawchar($'a');
gfx_drawchar($'c');
gfx_drawchar($'t');
gfx_drawchar($'i');
gfx_drawchar($'v');
gfx_drawchar($'e');
gfx_drawchar($')');
);
slider11 == 0 ? (

gfx_x = 5;
gfx_y = 25;
gfx_drawchar($'M');
gfx_drawchar($'a');
gfx_drawchar($'n');
gfx_drawchar($'u');
gfx_drawchar($'a');
gfx_drawchar($'l');
gfx_drawchar($' ');
gfx_drawchar($'t');
gfx_drawchar($'i');
gfx_drawchar($'m');
gfx_drawchar($'i');
gfx_drawchar($'n');
gfx_drawchar($'g');
gfx_drawchar($':');
gfx_drawchar($' ');
gfx_drawchar($'p');
gfx_drawchar($'l');
gfx_drawchar($'e');
gfx_drawchar($'a');
gfx_drawchar($'s');
gfx_drawchar($'e');
gfx_drawchar($' ');
gfx_drawchar($'u');
gfx_drawchar($'s');
gfx_drawchar($'e');
gfx_drawchar($' ');
gfx_drawchar($'t');
gfx_drawchar($'h');
gfx_drawchar($'e');
gfx_drawchar($' ');
gfx_drawchar($'b');
gfx_drawchar($'y');
gfx_drawchar($'p');
gfx_drawchar($'a');
gfx_drawchar($'s');
gfx_drawchar($'s');
gfx_drawchar($' ');
gfx_drawchar($'t');
gfx_drawchar($'o');
gfx_drawchar($' ');
gfx_drawchar($'c');
gfx_drawchar($'o');
gfx_drawchar($'m');
gfx_drawchar($'p');
gfx_drawchar($'a');
gfx_drawchar($'r');
gfx_drawchar($'e');
gfx_drawchar($'.');
);
) : (
gfx_drawchar($'T');
gfx_drawchar($'h');
gfx_drawchar($'e');
gfx_drawchar($' ');
gfx_drawchar($'s');
gfx_drawchar($'o');

gfx_drawchar($'l');
gfx_drawchar($'u');
gfx_drawchar($'t');
gfx_drawchar($'i');
gfx_drawchar($'o');
gfx_drawchar($'n');
gfx_drawchar($' ');
gfx_drawchar($'i');
gfx_drawchar($'s');
gfx_drawchar($':');
gfx_drawchar($' ');
gfx_drawnumber(bnc,0);
gfx_drawchar($' ');
gfx_drawchar($'d');
gfx_drawchar($'B');
gfx_drawchar($' ');
gfx_drawchar($'a');
gfx_drawchar($'t');
gfx_drawchar($' ');
gfx_drawnumber(oct,0);
gfx_drawchar($' ');
gfx_drawchar($'H');
gfx_drawchar($'z');
bypass == 1 ? (
gfx_drawchar($' ');
gfx_drawchar($'(');
gfx_drawchar($'E');
gfx_drawchar($'Q');
gfx_drawchar($' ');
gfx_drawchar($'a');
gfx_drawchar($'c');
gfx_drawchar($'t');
gfx_drawchar($'i');
gfx_drawchar($'v');
gfx_drawchar($'e');
gfx_drawchar($')');
);
gfx_x = 5;
gfx_y = 25;
gfx_drawchar($'P');
gfx_drawchar($'l');
gfx_drawchar($'e');
gfx_drawchar($'a');
gfx_drawchar($'s');
gfx_drawchar($'e');
gfx_drawchar($' ');
gfx_drawchar($'u');
gfx_drawchar($'s');
gfx_drawchar($'e');
gfx_drawchar($' ');
gfx_drawchar($'"');
gfx_drawchar($'R');
gfx_drawchar($'e');
gfx_drawchar($'s');
gfx_drawchar($'e');
gfx_drawchar($'t');
gfx_drawchar($'"');
gfx_drawchar($' ');

gfx_drawchar($'f');
gfx_drawchar($'o');
gfx_drawchar($'r');
gfx_drawchar($' ');
gfx_drawchar($'a');
gfx_drawchar($' ');
gfx_drawchar($'n');
gfx_drawchar($'e');
gfx_drawchar($'w');
gfx_drawchar($' ');
gfx_drawchar($'r');
gfx_drawchar($'i');
gfx_drawchar($'d');
gfx_drawchar($'d');
gfx_drawchar($'l');
gfx_drawchar($'e');
gfx_drawchar($'.');
);
);
@sample
auto == 1 ? (
buffer = buffer + 1;
buffer < srate*slider11 ? bypass = 1 : (
bypass = auto = 0;
slider16 = 1;
);
);
bypass != 0 ? (
tmp=c0*(spl0-ldelay2) + c1*li1 + c2*li2;
ldelay2=ldelay1; ldelay1=spl0;
li2=li1; spl0 += (li1=tmp);
tmp=c0*(spl1-rdelay2) + c1*ri1 + c2*ri2;
rdelay2=rdelay1; rdelay1=spl1;
ri2=ri1; spl1 += (ri1=tmp);
);

S-ar putea să vă placă și