trying new synths from awesome list
This commit is contained in:
parent
babaf1156a
commit
0ef13a532f
@ -315,3 +315,50 @@ mybuffer
|
|||||||
|
|
||||||
;; then you can play what you recorded with a utility like mpv:
|
;; then you can play what you recorded with a utility like mpv:
|
||||||
;; mpv /tmp/foo.aiff
|
;; mpv /tmp/foo.aiff
|
||||||
|
|
||||||
|
(in-package #:cl-collider)
|
||||||
|
;; https://github.com/SCLOrkHub/SCLOrkSynths
|
||||||
|
;; https://github.com/SCLOrkHub/SCLOrkSynths/blob/master/SynthDefs/bass/acidOto3091.scd
|
||||||
|
|
||||||
|
(defsynth bdrum ((amp 0.5) (out 0) )
|
||||||
|
(out.ar out (* amp (sin-osc.ar (line.ar 120 60 1) 0 (env-gen.ar (env (list 0 1 0) (list 0.005 0.5)) :act :free)))))
|
||||||
|
;; out = 0, gate = 1, freq = 440, amp = 0.1, pan = 0, att = 0.001, dec = 0.5, sus = 0.1, rel = 0.5, curve = -4,
|
||||||
|
;; // Other Controls
|
||||||
|
;; // width is 0 - 1
|
||||||
|
;; // filterRange is in octaves
|
||||||
|
;; lagTime = 0.12, filterRange = 6, width = 0.51, rq = 0.3;
|
||||||
|
(defsynth acid0to3091 ((amp 0.5) (out 0) (gate 1) (freq 440) (pan 0) (att 0.001) (dec 0.5) (sus 0.1) (rel 0.5) (curve -4) (lagTime 0.12) (filterRange 6) (width 0.51) (rq 0.3))
|
||||||
|
(let* ((freq (lag.kr freq lagTime))
|
||||||
|
(ampEnv (env-gen.kr (adsr att dec sus rel amp 0) :gate gate))
|
||||||
|
;; (filterEnv (env-gen.kr (adsr att (* 2 dec) (/ sus 2) (* 2 rel) (expt 2 filterRange) (list (* -1 curve) curve curve curve ) 1) gate :act :free))
|
||||||
|
;; this is likely not correct way to set up cure of the form curve: [-1 * curve, curve, curve, curve],
|
||||||
|
;; does that mean multichannel things?
|
||||||
|
;; let's just set as single curve and check how it looks?
|
||||||
|
(filterEnv (env-gen.kr (adsr att (* 2 dec) (/ sus 2) (* 2 rel) (expt 2 filterRange) (* -1 curve) 1) :gate gate :act :free))
|
||||||
|
;; is LFPulse.ar(...).range(-1, 1) gets from _range ?
|
||||||
|
(sndStep1 (_range nil (lf-pulse.ar freq 0.0 width) -1 1))
|
||||||
|
(sndStep2 (rlpf.ar sndStep1 (* freq filterEnv) rq))
|
||||||
|
(sndStep3 (* sndStep2 ampEnv)))
|
||||||
|
(out.ar out (pan2.ar sndStep3 pan))))
|
||||||
|
(synth :acid0to3091)
|
||||||
|
(stop)
|
||||||
|
|
||||||
|
;; that a nice acid base, just not freeing the thing, so can't be used as is, sad.
|
||||||
|
;; let's try something else?
|
||||||
|
|
||||||
|
;;; (and that one seems interesting for later : https://github.com/SCLOrkHub/SCLOrkSynths/blob/master/SynthDefs/bass/fmBass.scd )
|
||||||
|
;;
|
||||||
|
;;; https://github.com/SCLOrkHub/SCLOrkSynths/blob/master/SynthDefs/bass/bassWarsaw.scd
|
||||||
|
(defsynth fmBass ((out 0) (freq 440) (gate 1) (amp 0.5) (pan 0) (att 0.01) (dec 0.3) (sus 0.4) (rel 0.1) (slideTime 0.17) (cutoff 1100) (width 0.15) (detune 1.005) (preamp 4))
|
||||||
|
(let* ((env (env-gen.kr (adsr att dec sus rel) :gate gate :act :free))
|
||||||
|
(freq (lag.kr freq slideTime))
|
||||||
|
(sndStep1 (var-saw.ar freq 0 width preamp))
|
||||||
|
(sndStep2 (distort sndStep1))
|
||||||
|
(sndStep3 (* sndStep2 env))
|
||||||
|
(sndStep4 (lpf.ar sndStep3 cutoff amp)))
|
||||||
|
(out.ar out (pan2.ar sndStep4 pan))))
|
||||||
|
(synth :fmBass :freq 80)
|
||||||
|
(stop)
|
||||||
|
|
||||||
|
;; overall this is not quite success, not quite a failure
|
||||||
|
;; I've practiced searching for tihngs I don't konw between the libraries
|
||||||
|
@ -225,3 +225,62 @@ past sunday with your help I've figured out how to make percussion instruments f
|
|||||||
Today I tried to figure out more complicated beats, and how to join different lines with pauses
|
Today I tried to figure out more complicated beats, and how to join different lines with pauses
|
||||||
|
|
||||||
Still lots to do, but will share what I've accomplished in hopes that it returns you a little bit of excitement your project brings
|
Still lots to do, but will share what I've accomplished in hopes that it returns you a little bit of excitement your project brings
|
||||||
|
** reading more guids : here about pitch model, duration model
|
||||||
|
http://doc.sccode.org/Tutorials/Streams-Patterns-Events5.html
|
||||||
|
** some advice from a veteran:
|
||||||
|
https://nathan.ho.name/posts/supercollider-tips/
|
||||||
|
** so, now I could try figuring out other instruments?
|
||||||
|
i already found link to examples:
|
||||||
|
[[*awesome list : https://github.com/madskjeldgaard/awesome-supercollider#synthdefs][awesome list : https://github.com/madskjeldgaard/awesome-supercollider#synthdefs]]
|
||||||
|
|
||||||
|
https://github.com/SCLOrkHub/SCLOrkSynths/tree/master/SynthDefs/bass
|
||||||
|
|
||||||
|
these are specifically for use with patterns, cool, but more things to learn before I can rewrite them in cl =0
|
||||||
|
*** so, "go to definition" didn't work with #'ENV but worked with #'ENV-GEN and env was close
|
||||||
|
there I searched for "perc" to see
|
||||||
|
https://depts.washington.edu/dxscdoc/Help/Classes/Env.html
|
||||||
|
what is the analogue Env.perc
|
||||||
|
and that I guess is just #'PERC
|
||||||
|
|
||||||
|
yay, I suppose
|
||||||
|
*** a question into the matrix channel:
|
||||||
|
I've tried to go and convert some of the synths found online into CL form
|
||||||
|
overall when I needed to figure out something I don't quite understand
|
||||||
|
|
||||||
|
for example
|
||||||
|
|
||||||
|
Env.adsr(...)
|
||||||
|
I went to SuperCollider documentation, saw that it's a constructor method for Env, went to definition of EnvDef and searched for adsr, and it's a convenient separate method
|
||||||
|
or
|
||||||
|
|
||||||
|
LFPulse.ar(freq: freq, width: width).range(-1, 1);
|
||||||
|
went to #'LF-PULSE definition and searched for "range" found that it's a separate generic method that supposedly takes in lf-pusle object (I'm after basics, but at the beginning of figuring out CL)
|
||||||
|
With that - I think I missed something important, could you help me out?
|
||||||
|
|
||||||
|
When translating https://github.com/SCLOrkHub/SCLOrkSynths/blob/master/SynthDefs/bass/acidOto3091.scd
|
||||||
|
|
||||||
|
I totally didn't know what to do with
|
||||||
|
curve: [-1 * curve, curve, curve, curve],
|
||||||
|
|
||||||
|
my guess is that it's connected to multi-level? That's when I think I was arrays used?
|
||||||
|
|
||||||
|
What I got produced an interesting sound, but didn't stop
|
||||||
|
|
||||||
|
(defsynth acid0to3091 ((amp 0.5) (out 0) (gate 1) (freq 440) (pan 0) (att 0.001) (dec 0.5) (sus 0.1) (rel 0.5) (curve -4) (lagTime 0.12) (filterRange 6) (width 0.51) (rq 0.3))
|
||||||
|
(let* ((freq (lag.kr freq lagTime))
|
||||||
|
(ampEnv (env-gen.kr (adsr att dec sus rel amp 0) :gate gate))
|
||||||
|
;; (filterEnv (env-gen.kr (adsr att (* 2 dec) (/ sus 2) (* 2 rel) (expt 2 filterRange) (list (* -1 curve) curve curve curve ) 1) gate :act :free))
|
||||||
|
;; this is likely not correct way to set up cure of the form curve: [-1 * curve, curve, curve, curve],
|
||||||
|
;; does that mean multichannel things?
|
||||||
|
;; let's just set as single curve and check how it looks?
|
||||||
|
(filterEnv (env-gen.kr (adsr att (* 2 dec) (/ sus 2) (* 2 rel) (expt 2 filterRange) (* -1 curve) 1) :gate gate :act :free))
|
||||||
|
;; is LFPulse.ar(...).range(-1, 1) gets from _range ?
|
||||||
|
(sndStep1 (_range nil (lf-pulse.ar freq 0.0 width) -1 1))
|
||||||
|
(sndStep2 (rlpf.ar sndStep1 (* freq filterEnv) rq))
|
||||||
|
(sndStep3 (* sndStep2 ampEnv)))
|
||||||
|
(out.ar out (pan2.ar sndStep3 pan))))
|
||||||
|
(synth :acid0to3091)
|
||||||
|
(stop)
|
||||||
|
And I'm currently very far from being able to debug \ troubleshoot what's going on here,
|
||||||
|
I do have one #'ENV-GEN that has :act :free
|
||||||
|
but can't follow all the transformations, so have no idea what's going wrong
|
||||||
|
Loading…
x
Reference in New Issue
Block a user