#+title: Programming Music Journal * [2022-08-19 Fri] ** past friday I've done some basic setup (painfully) and had simplest examples running [[file:supercollider-example.lisp::;; to use cl-patterns with its SuperCollider backend, you'll first need to load the cl-patterns/supercollider system with quicklisp:][setting up supercollider]] package - so this doesn't work for some reason ** here simplest things seem to work [[file:setting-up-cl-collider.lisp::;; https://defaultxr.github.io/cl-collider-tutorial/02-getting-started.html][cl-collider-tutorial-getting-started]] ** so, let's just go the site? nope, continue with the file that had some promise the one about cl-collider turorial ** also, let's make this a separate repo? oh, no, the 'supercollider-example' which is about cl-patterns started to work? how and why? maybe reinit of some shit, or what so, new file to hopefully learn something about cl-patterns *** what is it that I want o learn ideally? setting up drum sequences? doing chord things with synth? ** what's this thing about "FAILURE IN SERVER /n_set Node 1539 not found " ? ** this seems to be startup #+begin_src common-lisp (ql:quickload :cl-patterns/supercollider) (cl-patterns:backend-start 'supercollider) ;; also launch QjackCTL and connect SuperCollider outputs 1 & 2 to headphones ;; to force restart, use killall scsynth (in-package #:cl-patterns) (start-clock-loop :tempo 136/60) #+end_src but what's most basic pattern that would play then? ones in [[file:2022-08-12-supercollider-example.lisp::end :bar][supercollider example seem to work]] and example seem to require me to define synth, right? to set it into the :instrument key wtf am I to do. ** maybe let's try to do stuff inside of org file? ** how do I clear things, it seems that cl-patterns seems to send things to server? ** should I try a different backend? ** so, when SC returned lots of errors on pb what helped - starting syn wave from "setting-up" file ;;; https://defaultxr.github.io/cl-collider-tutorial/03-make-a-sound.html (setf *s* (make-external-server "localhost" :port 4444)) (server-boot *s*) ; already in use ;;; https://defaultxr.github.io/cl-collider-tutorial/03-make-a-sound.html (proxy :foo (sin-osc.ar 440 0 0.2)) ; no error, but hear no sound ;; opened QjackCtl, connected Graph SuperCollider to Air by Aftershokz left (proxy :foo (sin-osc.ar 300 0 0.2)) (proxy :foo (saw.ar 300 0.2)) ** how do I make sounds better? do I go to cl-collider package for explanation of synths and such? ** to stopp things that run amok: (cl-patterns:stop t) ** ugh. why doesn't it produce sounds? ** ok, what did I learn today? - some interaction with pseq having scales, root / ocave - intersecting with durations, also seq and not totally alighning - some combined sounds, which don't sound nice - maybe reliant startup procedure - and attempting to run chords hangs it all ** cl-patterns docs: https://github.com/defaultxr/cl-patterns/tree/master/doc that's all files * [2022-08-20 Sat] ** now I'd like to create an instrument for which chords would sound nice and after than some kind of percussion things ** cool! that was just my type :instument instead of :instrument and article on cl-collider now helps with some cool synhts, like chord strum #+begin_src common-lisp (defsynth tone-pluck ((freq 440) (amp 0.2)) (out.ar 0 (* (saw.ar (let ((detune (* freq 0.01))) (list (- freq detune) (+ freq detune)))) (env-gen.kr (perc 0.1 1.8) :level-scale amp :act :free)))) ;; (synth 'tone-pluck) (in-package #:cl-patterns) (pb :what-predef-chord :instrument :tone-pluck :note (pseq (mapcar #'chord-notes (list (chord "Major Triad") (chord "Minor Triad") (chord "Minor 7th") (chord "Major 7th") (chord "Diminished Triad") (chord "Major Triad"))) 1) :octave 4 :root 2 :dur (pseq '(2 2 4)) ;; :play-quant 4 ) ;; (play :what-predef-chord) ;; (stop :what-predef-chord) #+end_src yay. ** now let's figure out percussions? ** searching : "super collider percussion synth" got all sorts of cool results: *** main page of supercollider: https://supercollider.github.io/ *** awesome list : https://github.com/madskjeldgaard/awesome-supercollider#synthdefs and it has link to defs! *** defs : https://github.com/everythingwillbetakenaway/Synthdefs for example a drum kik which I'd try to convert? https://github.com/everythingwillbetakenaway/Synthdefs/blob/master/drum_kick.scd ** to file https://github.com/byulparan/cl-collider#record-audio-output whoh ** now for the well deserved fucking rest ** things I want to figure out in the future: 1. joining patterns in parallel - percussion + rythm + solo 2. having 3 beats in percussion but aligning to 4 beats 3. getting cool instruments from existing repos for supercollider