Eli, these tutorials are great. They're not only an excellent introduction to Supercollider specifically, but an example of how to do clear, to-the-point, well-produced tutorials in general. Thank you!
@abbasnake10 жыл бұрын
Finally, been waiting for your next tutorial forever.range(few months). Once again it's very helpful and incredibly clear, thank you.
@PhilBusby4 жыл бұрын
You are the SuperCollider guru. Thank you, Eli, for these tutorials. Clear, extensive and highly informative.
@missoula22136 жыл бұрын
I really appreciate these videos. I’ve been watching them for a couple of weeks now and they are really helping. This isn’t something you can cram, it’s a language, it takes time.
@NealJackMeKC4 жыл бұрын
Your tutorials are amazing. Your examples always end up impressing me so much.
@eriktrips9 жыл бұрын
I have been waiting *so long* for tutorials like these for SuperCollider. Thank you for distilling the interminable Help Files into the essentials needed to use so many of the powerful tools hidden therein! I was beginning to think I was going to be stuck in PureData for the rest of my life. pd is a fine piece of software too, but it doesn't scale at all, and trying to understand mathematical constructs implemented using boxes and patch cords in example source code makes both my head and my eyes hurt. Self-taught music geeks everywhere must be rejoicing.
@JaeCreator9 жыл бұрын
sincerely like to thank you for these tutorials, I learn much better visually.
@MsDganit6 жыл бұрын
Your tutorials are enlightening - I learn so very much from you. Thank you for making them and sharing! Yours, Dganit, composer, Tel-Aviv
@peterjay53013 жыл бұрын
Thanks a lot for all these tutorials!!
@andygarcia52706 жыл бұрын
Thank you so much for these tutorials and the github resources you rock!
@insightfool9 жыл бұрын
Your tutorials are so valuable! Thank you. Wondering if there is an argument type for midiratio that allows one to adjust ratios according to something other than the chromatic scale? Couldn't find any clarity in the SC help docs on this. Thanks.
@elifieldsteel9 жыл бұрын
Cere Mony You might find the Scale class to be useful. I also know that Cole Ingraham often works with custom scales and intonations: coleingraham.com/2014/09/26/an-approach-to-custom-scales-in-supercollider/
@insightfool9 жыл бұрын
Thanks Eli!
@hbayumy9 жыл бұрын
Thank you very much, wonderful tutorial :)
@mersadmuminovic149410 жыл бұрын
great as always! thank you for doing this, eli!
@franciscochinchurreta7 жыл бұрын
Anazing tutorials! Thank you so much
@nextlevelist89215 жыл бұрын
Eli you are a god
@hermanverbaeten163110 жыл бұрын
Hi Eli, Your tutorials have all been of great use to understand Supercollider. But once again i have a question. Unfortunately i don't get an answer on the mailinglist. I tried using the SinOSC.ar as you did to controle the pointer (at time 25m50s). But I also wanted to make the amplitude (e.g.Mul:0.1) smaller to diminish the sine amplitude curve and thus the difference between the high and low pitch. But instead i diminished the whole pitch. Is there a logic explaination for this? Thanks for your help. Gr. Herman
@elifieldsteel10 жыл бұрын
Remember that SinOsc does not directly control the pitch of the sound, but instead directly controls the pointer position. The slope (or steepness) of SinOsc at a given moment determines the pitch of the sound. A SinOsc with a high frequency will create a wide pitch range. A slower SinOsc will give a narrower pitch range. SinOsc's amplitude determines how much of the sound file is traversed. With mul:0.1, you only read one tenth of the buffer. You could also try a different oscillating pointer (a soft-clipped LFTri.ar, maybe).
@Λ.Κ4 жыл бұрын
Hello Eli. I like more the BufRd method to execute soundfiles via buffers.However, it has a disadvantage. It hasn't a doneAction parameter,like PlayBuf has,so the Synths do not free themselves.How we could let synths free themselves after execution inside a BufRd?Also, can an envelope be practical in SynthDefs that manipulate sound from buffers?
@elifieldsteel4 жыл бұрын
Use an audio rate UGen that *does* have a doneAction argument (like Line.ar) to control the pointer position (phase argument) of BufRd. If that doneAction is set to 2, the Synth will free itself when the UGen is finished. Envelopes are very practical in buffer-playing SynthDefs. For example, if you have a long buffer, but only want to hear a short section of it, you can multiply the buffer-reading UGen by an instance of EnvGen that has doneAction:2. In this case, you'll only hear a section of the buffer equal to the duration of the envelope.
@jaymrichardson3 жыл бұрын
Hi Eli, is it possible to store an array of numerical values in a buffer? I'm trying to get an EnvGen within a SynthDef to read values from a CSV file. I tried doing that using CSVFileReader but I can't find a way to store the CSV on the server side--using ~data = CSVFileReader(path) seems to just store it on the client side. Any help would be hugely appreciated!
@jaymrichardson3 жыл бұрын
Never mind--I figured out how to do it without using a buffer! Turns out I was wrong about CSVFileReader, I just forgot to put .readInterpret on the end of it lol
@elifieldsteel3 жыл бұрын
@@jaymrichardson Nice! Glad you got it figured out.
@dreamcorners2 жыл бұрын
good tutorial
@shyofshyness7 жыл бұрын
hey Eli, I forget if I have already asked you (nor if you check the comment threads tbh), but, is there a github repo for your example snippets? It would be helpful for following your tutorials
@elifieldsteel7 жыл бұрын
Sung Hoon Yang github.com/zeffii/Supercollider3_tutorials_code
@shyofshyness7 жыл бұрын
thank you so much
@n.stevik8 жыл бұрын
love ur tutorials, i have a question though...at the 20min-ish mark, when u talk about your group example, at the point where i use g.set[ ate, 0.5]; i keep gettin this error: ----- ERROR: Message 'at' not understood. RECEIVER: Instance of Group { (0x106a44ac8, gc=D0, fmt=00, flg=00, set=03) instance variables [5] nodeID : Integer 1002 server : instance of Server (0x10a647588, size=47, set=6) group : instance of Group (0x11e9ba738, size=5, set=3) isPlaying : false isRunning : false } ARGS: Symbol 'rate' Float 0.500000 00000000 3FE00000 PATH: /Users/humbert/tut8dot3.scd CALL STACK: DoesNotUnderstandError:reportError 0x106a1fb08 arg this = Nil:handleError 0x11e9bf438 arg this = nil arg error = Thread:handleError 0x11e9b8638 arg this = arg error = Object:throw 0x11e9cdbe8 arg this = Object:doesNotUnderstand 0x11a926328 arg this = arg selector = 'at' arg args = [*2] Interpreter:interpretPrintCmdLine 0x11c268ae8 arg this = var res = nil var func = var code = "g.set[ ate, 0.5];" var doc = nil var ideClass = Process:interpretPrintCmdLine 0x11aae4e88 arg this = ^^ The preceding error dump is for ERROR: Message 'at' not understood. RECEIVER: Group(1002) ---- i kno it has something to do w groups, like my noodtree also looks slightly different from urs: i.imgur.com/6l9uYXe.png i'm jus very confused what the problem is...i even restart the server and the programm, but keep gettin this error hope u can help me w the info i can give u..thx
@elifieldsteel8 жыл бұрын
+Nicolas Humbert Use parentheses, not square brackets. g.set( ate, 0.5);
@n.stevik8 жыл бұрын
oops, simple mistake...thx for the quick help
@magonsar7 жыл бұрын
Hello man, Great tutorials, id like to ask u about an issue: I am unable to load any file to super collider. I reinstalled windows allready and downloaded the 3.8 version with no super nova. Any time i start the program, the post window says: init_OSC compiling class library... initPassOne started NumPrimitives = 692 initPassOne done compiling dir: 'C:\Program Files\SuperCollider-3.8.0\SCClassLibrary' pass 1 done numentries = 809690 / 11150036 = 0.073 5059 method selectors, 2204 classes method table size 12214248 bytes, big table size 89200288 Number of Symbols 11518 Byte Code Size 348612 compiled 313 files in 0.29 seconds Info: 2 methods are currently overwritten by extensions. To see which, execute: MethodOverride.printAll compile done Class tree inited in 0.02 seconds Cleaning up temp synthdefs... *** Welcome to SuperCollider 3.8.0. *** For help press Ctrl-D. SCDoc: Indexing help-files... SCDoc: Indexed 1331 documents in 1.3 seconds ...So i execute the thing and it gives me this: String ------ String:absolutePath C:\Program Files\SuperCollider-3.8.0\SCClassLibrary\Platform\windows\SystemOverwrites\overwrites.sc C:\Program Files\SuperCollider-3.8.0\SCClassLibrary\Common\Collections\String.sc PathName -------- PathName:isAbsolutePath C:\Program Files\SuperCollider-3.8.0\SCClassLibrary\Platform\windows\SystemOverwrites\overwrites.sc C:\Program Files\SuperCollider-3.8.0\SCClassLibrary\Common\Files\PathName.sc -> MethodOverride Making any Ugen can work, like {SinOsc.ar}.play; but when i try to load the buffer, i write: c = Buffer.read(s, "The path of any wav file just like you say"); i press Ctrl + Enter and post window gives me: -> Buffer(1, nil, nil, nil, C:/Users/magon/Documents/Tranajo Orquestación/Bounced Files/Tranajo Orquestación.wav) File 'C:/Users/magon/Documents/Tranajo Orquestación/Bounced Files/Tranajo Orquestación.wav' could not be opened: System error : The system cannot find the path specified. I would so much apreciate if you can help me with that, im a musician and i have to load audios in a class, i speak spanish and i honestly have no technical vocabulary or knowdlege of the inner workings of Supercollider. Hope u could answer, Greetings.
@elifieldsteel7 жыл бұрын
Sorry I missed this comment -- unfortunately, a lot of comments with pasted code get caught by my YT spam filter, and I sometimes overlook them. But, glad to see you got your question answered on the SC listserv: new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Supercollider-does-not-recognize-the-path-to-any-external-audio-sample-tt7633164.html#a7633165
@Japerspn6 жыл бұрын
Hey Eli, quick question. is there something about the underscore in the trig argument that makes it reset automatically? I tried just using "trig" as the argument, and it only worked when I changed the value from a negative value to a positive, eg. 0 to 1. But when I changed it to "t_trig," it reset to the trigger every time I sent a 1. Just curious about the syntax there, and if it's a good idea to use that for all trigger applications.
@cikibli4 жыл бұрын
in Eli's tutorial nr. 4 at 13:16 he explains this in the context of envelopes (and with t_gate), but it applies here too. Hope this helps! :)
@chiffonmyst10 жыл бұрын
Thank you!!
@genelecrau70194 жыл бұрын
Hi Eli, why is it that phasor doesn't allow looping to go backwards, just as line does?
@elifieldsteel4 жыл бұрын
Phasor does allow backward looping. It's tempting to swap start and end values for Phasor, but that won't do it. You need to provide a negative value for Phasor's rate argument: s.boot; b = Buffer.read(s, Platform.resourceDir++"/sounds/a11wlk01.wav"); ( { var sig, phs; phs = Phasor.ar( 0, BufRateScale.ir(b).neg, //negative rate 0, b.numFrames-1 ); sig = BufRd.ar(1, b, phs); sig = sig * 0.5!2; }.play )
@genelecrau70194 жыл бұрын
@@elifieldsteel Great! This clarifies everything. Thanks so much!
@latanun3 жыл бұрын
Thx!
@gravisan6 жыл бұрын
Is there a way to change the pitch of a sample without the rate?
@elifieldsteel6 жыл бұрын
Yes, but not using the techniques shown in this video. For pitch-shifting independent of time-stretching, I will take either a granular approach using GrainBuf, or an FFT-based approach using PV_RecordBuf and PV_PlayBuf (available in the JoshUGens collection, part of the SC3 plugins package: github.com/supercollider/sc3-plugins)
@phenixnunlee3725 жыл бұрын
I am using a custom server and I want to play a buffer. I think the buffer is playing on the wrong server as I get no sound and no errors
@elifieldsteel5 жыл бұрын
What code are you using to read the audio file into a Buffer?
I'm guessing you meant to type Buffer.read(n,path.fullPath) instead of Buffer.read(s,path.fullPath), since you are defining a custom server instance and storing it in the environment variable n.
@phenixnunlee3725 жыл бұрын
@@elifieldsteel ohhhh
@axelkramble8 жыл бұрын
is it posible to make patterns with buffers?
@elifieldsteel8 жыл бұрын
Most definitely. I cover the basics of this topic in the second half of SC Tutorial 10.
@germboy1235 жыл бұрын
how did you go from ~bells.at(i) to ~b(i)
@elifieldsteel5 жыл бұрын
This is a syntax shortcut for addressing items in an ordered collection. ~bells.at(i) is equivalent to ~bells[i]. Note that this syntax shortcut has square brackets, not the parentheses you used in your comment.
@JaeCreator9 жыл бұрын
Eli, wonder if you can help, i am on your buffers tutorial, and keep receiving nth_set error (FAILURE NOT IN SERVER) could you possibly forward a email so could pick your wonderfully corey brain :)
@elifieldsteel8 жыл бұрын
+Jae Creator You can send your code to me via private message on KZbin and I'll try to help.
@thatnewcool76693 жыл бұрын
the sounds you picked in this one are so loud dude lol