SuperCollider рдХрд╛ рдкрд░рд┐рдЪрдп

рдЗрд╕ рдЫреЛрдЯреЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╕реБрдкрд░рдХреЛрд▓рд╛рдЗрдбрд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред SuperCollider рд╡рд╛рд╕реНрддрд╡рд┐рдХ (рдФрд░ рдХреЗрд╡рд▓) рд╕рдордп рдореЗрдВ рдСрдбрд┐рдпреЛ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬ 1996 рдореЗрдВ рдЬреЗрдореНрд╕ рдореИрдХрдХрд╛рд░реНрдЯрдиреА рдХреЗ рд▓реЗрдЦрдХ рдкреНрд░рдХрд╛рд╢ рдиреЗ рджреЗрдЦрд╛, рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдСрдбрд┐рдпреЛ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдореЗрдВ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рд╢реЛрдз рдХрд╛ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдерд╛ред рд╕рдордп рдХреЗ рд╕рд╛рде, рдХрдИ рдФрд░ рд▓реЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реБрдПред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдЗрдЯ рдХреЛ sourceforge.net рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ (ubuntu ppa рд╕рд╣рд┐рдд), рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХрдУрдПрд╕ (iPhone рдФрд░ Android рд╕рдВрд╕реНрдХрд░рдг рднреА рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ)ред

рдмреБрдзрд╡рд╛рд░


рдордВрдЪ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдореВрд▓ рд╕рдВрдкрд╛рджрдХ (рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рдореИрдХ рдХреЗ рд▓рд┐рдП) рдпрд╛ gedit, vim, emacs (рд▓рд┐рдирдХреНрд╕) рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдФрд░ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдпреЛрдЬрдиреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдУрдкрди рд╕рд╛рдЙрдВрдб рдХрдВрдЯреНрд░реЛрд▓ (OSC) рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде "рд╕рдВрд╡рд╛рдж" рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ "рдореВрд▓" рднрд╛рд╖рд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред

рднрд╛рд╖рд╛


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕реНрдореЙрд▓рдЯрд╛рдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде, рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рднрд╛рд╖рд╛ рдиреЗ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рднрд╛рд╖рд╛ рд╣реИред рдиреАрдЪреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг "рднрд╛рд╖рд╛ рд╕рдВрджрд░реНрдн" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдЕрдкрдиреЗ рдСрдбрд┐рдпреЛ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ GUI рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдХрдИ рдЙрдкрдпреЛрдЧреА рдкреНрд░реАрд╕реЗрдЯ рд╣реИрдВ: рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕, рдиреЙрдмреНрд╕, рдПрдирд╛рд▓рд┐рд╕рд░реНрд╕, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, MIDI, Wiimote рдФрд░ рдЕрдиреНрдп HID (рдорд╛рдирд╡ рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕) рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг


рд╕реБрдкрд░рдХреЛрд▓рд╛рдЗрдбрд░ рдХреЛ рдЖрддреНрдо-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╡рд╕рд░ рджреЗрдиреЗ рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдЧрд╣рди рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрдирдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрд╢рд╛ рд╡реЙрд▓реНрдпреВрдо рдХреА рдорджрдж рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмреАрдЪ, рдХрдИ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред

рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ "рд╕рд┐рдВрде" рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВ:

1) рдПрдХ рдЪреИрдирд▓ рдореЗрдВ рд╕рд╛рдЗрди рд▓рд╣рд░ 200 рд╣рд░реНрдЯреНрдЬ (рдкрд╣рд▓реА - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рдПрдВ)

{ SinOsc.ar(200) }.play;

SinOsc рд╕рдмрд╕реЗ рд╕рд░рд▓ "UGen" (рдпреВрдирд┐рдЯ рдЬреЗрдирд░реЗрдЯрд░) рд╣реИред рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╣рд╛рдпрддрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ UGen's (рдпреВрдирд┐рдЯ рдЬреЗрдирд░реЗрдЯрд░) рдХреЗ рдПрдХ рд╕реЗрдЯ рд╕реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

2) рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдЯреАрд░рд┐рдпреЛ

{ SinOsc.ar(200) ! 2 }.play;

3) рд╕реНрдЯреАрд░рд┐рдпреЛ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░рдг

{ Mix2.ar(SinOsc.ar(200, pi/2), SinOsc.ar(200)) }.play;

рдпрд╛, рдорд▓реНрдЯреА-рдЪреИрдирд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ (4 рдЪреИрдирд▓реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЪрд░рдг рдЕрдВрддрд░ = pi / 4 рдХреЗ рд╕рд╛рде)

{ SinOsc.ar(200, [0, pi/4, pi/2, pi/4*3]) }.play;

4) рдорд╛рдЙрд╕ рдХрд░реНрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЪреИрдирд▓ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж (0.1 рд╕реЗ 50 рд╣рд░реНрдЯреНрдЬ рддрдХ) рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ

{ Pan2.ar(SinOsc.ar(200), SinOsc.kr(MouseX.kr(0.1,50))) }.play;

5) рд╕рд┐рдЧреНрдирд▓ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдореЙрдбреНрдпреВрд▓реЗрд╢рди рдФрд░ рдПрдХ рдЪреИрдирд▓ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡реГрддреНрддрд┐

{ Pan2.ar(SinOsc.ar(150, add: SinOsc.kr(50, mul: 20)), SinOsc.kr(SinOsc.kr(0.1).abs*10)) }.play;

6) рд╡рд╣реА, рд▓реЗрдХрд┐рди рдПрдХ рддреНрд░рд┐рдХреЛрдгреАрдп рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рд╕рд╛рде

{ Pan2.ar(SinOsc.ar(150, add: SinOsc.kr(50, mul: 20)), SinOsc.kr(SinOsc.kr(0.1).abs*25), 1) * EnvGen.ar(Env.triangle(20, 1)) }.play;

рдЕрдм рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдмрдирд╛рдПрдБ:

SynthDef(\simple_synth, { |freq = 60, dur = 0.25, amp = 0.8, out|
Out.ar(out, SinOsc.ar(freq)*EnvGen.ar(Env.triangle(dur, amp), doneAction:2) ! 2);
}).add;


рдФрд░ рдПрдХ рдкреИрдЯрд░реНрди рдкрд░ "рдЦреЗрд▓":

Pbind(
\freq, Pseq([ Pseries(50, 10, 50), Pseries(550, -20, 25) ], inf),
\dur, 1/8
).play;


Pbind, Pseq, Pseries рдзреБрди рдФрд░ рд▓рдпрдмрджреНрдз рдкреИрдЯрд░реНрди рдмрдирд╛рдиреЗ рдХреЗ рдХреБрдЫ рдореВрд▓ рддрддреНрд╡ рд╣реИрдВред рдЙрдирдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреНрдп рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдорд┐рдд-рд░рд╛рдЬреНрдп-рдорд╢реАрди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Pfsm) рдЬреЛ рд╕рдВрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХреЛрдИ рднреА рд╕рд╣реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдордирд╛ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн


┬╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд▓
┬╖ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╕реБрдирдирд╛
┬╖ рдкреНрд░рд▓реЗрдЦрди
рд╕реБрдкрд░рдХреЙрд▓рд┐рдбрд░ рдмреБрдХ (рдПрд╕рд╕реА рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ - рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП )

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░


SuperCollider рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╛рд╕рд┐рдХ DAW (рдбрд┐рдЬрд┐рдЯрд▓ рдСрдбрд┐рдпреЛ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди) рдХреА рдХрдореА рд╣реИ рдФрд░ рдЬреЛ рд╕рдВрдЧреАрдд, рд▓рд╛рдЗрд╡ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЕрдиреНрдп рдСрдбрд┐рдпреЛ (рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓) рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдЙрдкрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In123133/


All Articles