Тёмный

Patterns, Events, Streams - Week 8 Fall 2023 MUS 499C - Intro to SuperCollider 

Eli Fieldsteel
Подписаться 12 тыс.
Просмотров 753
50% 1

Homework Assignments: uofi.box.com/s...
This videos discusses:
- value patterns (Pseq, Prand, Pwhite, Pseries, etc.)
- the Event class, as a model for an action taken in response to "play"
- the 'note'-type Event as a model for the creation of a Synth
- Pbind, a pattern that defines a sequence of Events

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 10   
@yuggothproductions
@yuggothproductions 6 месяцев назад
Question, I'm trying to do some filtering in Pbind. It doesn't seem possible to take a random value from say Pwhite and use that for an EnvGen for say a LPF? Is this possible? If so how would I do that in the SynthDef and then in Pbind? Thanks.
@elifieldsteel
@elifieldsteel 6 месяцев назад
Something like this? s.boot; ( SynthDef(\a, { arg fhi = 1000; var sig, fenv, env; fenv = Env([fhi, 20], [0.1], [-2]).kr; env = Env.perc(0.001, 0.2).kr(2); sig = Saw.ar([80, 81]); sig = LPF.ar(sig, fenv, 0.3) * env; Out.ar(\out.ir(0), sig); }).add ) ( p = Pbind( \instrument, \a, \dur, 0.25, \fhi, Pexprand(100, 20000) ).play )
@SoundEngraver
@SoundEngraver Месяц назад
Hi Eli, can I run a long soundfile through something like Pbind or Pbindef? I'd like to quantize a drum loop with another file like a chord progression. Is Pbind viable for this? I've only used this method for very short sounds.
@elifieldsteel
@elifieldsteel Месяц назад
Sure, though it depends on exactly how long of a file we're talking about, and also on the design of the SynthDef being used, maybe a few other factors to consider. Are you running into a specific issue?
@SoundEngraver
@SoundEngraver Месяц назад
@@elifieldsteel Thanks! I have a 16-second audio file. (It's exactly 16 seconds because the chords are playing at 120bpm, which works great for SC's internal clock.) I'd like to loop the file with Pbind, using TempoClock (e.g., .play(t, quant: 4)). Would the \dur key be factored in? If so, how can I include it? Or, is there a more intuitive way to use audio files like drum loops for performance? Thanks always for the help.
@elifieldsteel
@elifieldsteel Месяц назад
There are different ways to loop/sync sound files. Patterns would not be my first choice. I'd probably consider using BufRd/Phasor, which seems more idiomatic. If you want to use patterns, you'll set \dur to a beat value that corresponds to the duration of the buffer you want to loop, and use a SynthDef that plays a buffer once with doneAction:2. Since your buffer is 16 seconds long, this value would be 16 * t.tempo (assuming you're not doing any playback rate changes). b = Buffer.read(s, "path/to/16sec/buffer.wav"); ( SynthDef(\oneshot, { var sig, buf = \buf.ir(0); sig = PlayBuf.ar(1, buf, BufRateScale.ir(buf), doneAction:2); Out.ar(0, sig ! 2); }).add; ) t = TempoClock(120/60).permanent_(true); ( Pbind( \instrument, \oneshot, \buf, b, \dur, 16 * t.tempo, ).play(t, quant: 4); )
@SoundEngraver
@SoundEngraver Месяц назад
@@elifieldsteel Thanks, Eli! It works! I think "t.tempo" is the ticket. I've explored the BufRd/Phasor method that you provided in your videos. I like it better, but is there a way to incorporate TempoClock with it? From what I understand, TempoClock is an Event specific thing. But it'd be great to start and stop the loops at specific beat multiples, and I can only see this working with something like Pbind. Thanks always for your helpful answers.
@PerplexedMuse
@PerplexedMuse 7 месяцев назад
hey Eli ... thanks for the fantastic tutorials ... I'm a huge fan🤍 I encountered a SC tweet the other day: Pdef(\b,{|dur,note|Pbind(\instrument,SynthDef(\,{ar(Out,0,ar(SinOscFB,kr(\freq)*[1,2],kr(MouseY),EnvGate())/3)}).add,\dur,dur/3, ote,note+Pseq([-7,2,5]))});Pbind(\type,\phrase,\dur,Pseq((9..1),inf), ote,0-Pseq((12..8),inf),\instrument,\b, ecursionLevel,3).play It's pretty simple but there is this ecursionLevel argument that I can't find in any of the source codes I thought to be relevant to check. would you know what this is? Thank you so much. 🤍
@elifieldsteel
@elifieldsteel 7 месяцев назад
Yes! An important observation is that one of these Pbinds is generating \phrase type events, instead of the more typical ote type events. I'm not extensively familiar with this variant, but I think it's essentially a way of having one Pbind recursively embed another Pbind (including itself) within its own context. The relevant help file is here: doc.sccode.org/Tutorials/JITLib/recursive_phrasing.html and it has lots of examples.
@PerplexedMuse
@PerplexedMuse 7 месяцев назад
😊thanks a lot ! @@elifieldsteel
Далее
Being Competent With Coding Is More Fun
11:13
Просмотров 80 тыс.
Катаю тележки  🛒
08:48
Просмотров 293 тыс.
TEAM SPIRIT: НОВЫЙ СОСТАВ. SEASON 24-25
01:31
Новый вид животных Supertype
00:59
Просмотров 152 тыс.
Live coding session with SuperCollider
13:30
My Initial Impresson Of Go
12:39
Просмотров 91 тыс.
Катаю тележки  🛒
08:48
Просмотров 293 тыс.