From 8efbaf690c69e17b57f4c22fe85881beaf735144 Mon Sep 17 00:00:00 2001 From: James Hamlin Date: Fri, 19 Apr 2024 19:06:47 -0700 Subject: [PATCH] Clean up examples Signed-off-by: James Hamlin --- examples/basic_beat.glj | 7 ----- examples/bitcrush.glj | 2 +- examples/drone.glj | 3 -- examples/drumcircle.glj | 8 ++--- examples/fm.glj | 2 +- examples/ihylp.glj | 19 ++++++------ examples/karplus_strong.glj | 60 +------------------------------------ examples/micin.glj | 1 - examples/ping.glj | 4 --- examples/simple.glj | 14 --------- examples/simplesin.glj | 29 ------------------ examples/st.glj | 6 ++-- examples/sunset.glj | 6 ++-- examples/test.glj | 5 ---- 14 files changed, 22 insertions(+), 144 deletions(-) delete mode 100644 examples/basic_beat.glj delete mode 100644 examples/ping.glj delete mode 100644 examples/simple.glj delete mode 100644 examples/simplesin.glj delete mode 100644 examples/test.glj diff --git a/examples/basic_beat.glj b/examples/basic_beat.glj deleted file mode 100644 index 4950366..0000000 --- a/examples/basic_beat.glj +++ /dev/null @@ -1,7 +0,0 @@ -(ns examples.basic_beat - (:require [mrat.core :refer :all] - [mrat.midi :refer :all] - [mrat.scales :refer :all] - [mrat.welsh])) - -(play (sin 200)) \ No newline at end of file diff --git a/examples/bitcrush.glj b/examples/bitcrush.glj index 32d7e89..664ce04 100644 --- a/examples/bitcrush.glj +++ b/examples/bitcrush.glj @@ -1,5 +1,5 @@ (ns user - (:require [mrat.core :refer :all])) + (:require [mrat.core :refer :all])) (play (-> (saw [100 150 202 304 606] :mul 0.5 :iphase [0.2 0 0.5]) (bitcrush :bits (step (impulse 8) [3 2 16 5])) diff --git a/examples/drone.glj b/examples/drone.glj index 5786653..9dc247d 100644 --- a/examples/drone.glj +++ b/examples/drone.glj @@ -15,9 +15,6 @@ (drone 1/11 [A4 C#4] [5 5]) (drone 1/7 [E4 B4] [5 4]) ) - (+ (-> (pink-noise) - (* 0.1) - (rhpf (mtof B8) (sin 1/10 :mul 0.5 :add 0.6)))) (freeverb :room-size 0.6) (* 0.2) limiter)) diff --git a/examples/drumcircle.glj b/examples/drumcircle.glj index 3362f3e..91b69ce 100644 --- a/examples/drumcircle.glj +++ b/examples/drumcircle.glj @@ -5,10 +5,10 @@ (def notes (map mtof [Eb5 B3 C2 D5 B2 C3 G4 A3])) (def prog (step trig notes)) -(play (-> (saw prog :mul 0.2) +(play (-> (sin prog :mul 0.2) (combc 2 0.014 1) - (* 0.7) + (* 0.5) (rlpf 300 0.3) (+ (-> (play-buf :loop_amen_full :rate (step trig [0.4 1 0.1 2 1.5 0.6 0.25]) :trigger trig :mul 0.1) - (rhpf 1500 0.05 :mul 0.3))) - (freeverb :room-size 0.75))) + (rhpf 1400 0.15 :mul 0.2))) + (freeverb :room-size 0.1))) diff --git a/examples/fm.glj b/examples/fm.glj index b12ad66..fb44f31 100644 --- a/examples/fm.glj +++ b/examples/fm.glj @@ -23,7 +23,7 @@ (let [offset (choose gate [0 0 0 0 0 0 12 12 12 24])] (step gate (->> mixolydian - (map #(+ D0 % offset)) + (map #(+ D2 % offset)) (map mtof))))) (def op-conf diff --git a/examples/ihylp.glj b/examples/ihylp.glj index ce85e52..91275e3 100644 --- a/examples/ihylp.glj +++ b/examples/ihylp.glj @@ -11,20 +11,20 @@ (def notes (map #(+ % offset) [E8 D8 B7 A7 G7 F#7 - E7 D7 B6 A6 G6 F#6 - E6 D6 B5 A5 G5 F#5 - E5 D5 B4 A4 G4 F#4 - E4 D4 B3 G3 - E3 D3 B2 G2 - E2 B1 - E1])) + E7 D7 B6 A6 G6 F#6 + E6 D6 B5 A5 G5 F#5 + E5 D5 B4 A4 G4 F#4 + E4 D4 B3 G3 + E3 D3 B2 G2 + E2 B1 + E1])) (def rand-source (math$rand.NewSource 214)) (def mrand (math$rand.New rand-source)) (defn synth [rate note] - (let [osc (sqr (mtof note) :duty 0.2) + (let [osc (sin (mtof note) :duty 0.2) trig (impulse rate :iphase (.Float64 mrand)) amp (env trig [0 1 1 0] [0.01 0.02 0.1])] (* osc amp))) @@ -33,8 +33,7 @@ (-> (map #(-> (synth (/ bps (+ 1 (* speed-factor %1))) %2) (pan2 (/ %1 (count notes)))) (range (count notes)) notes) (sum) - (* (/ 1 (inc (count notes)))) - (* 4) + (* (/ 4 (inc (count notes)))) (freeverb :room-size 0.5))) (play ihylpr) diff --git a/examples/karplus_strong.glj b/examples/karplus_strong.glj index ee676a2..6c37743 100644 --- a/examples/karplus_strong.glj +++ b/examples/karplus_strong.glj @@ -1,46 +1,9 @@ (ns karplus_strong - (:require [mrat.core :refer :all])) - -(defn supersaw - "SuperSaw (Roland JP-8000 and JP-8080) - - Ported from https://gist.github.com/audionerd/fe50790b7601cba65ddd855caffb05ad" - ([freq] (supersaw freq 0.75)) - ([freq mix] (supersaw freq mix 0.75)) - ([freq mix detune] - (letfn [(detune-curve [x] - (+ (* 10028.7312891634 (pow x 11)) - (* -50818.8652045924 (pow x 10)) - (* 111363.4808729368 (pow x 9)) - (* -138150.6761080548 (pow x 8)) - (* 106649.6679158292 (pow x 7)) - (* -53046.9642751875 (pow x 6)) - (* 17019.9518580080 (pow x 5)) - (* -3425.0836591318 (pow x 4)) - (* 404.2703938388 (pow x 3)) - (* -24.1878824391 (pow x 2)) - (* 0.6717417634 x) - 0.0030115596)) - (center-gain [x] (+ (* -0.55366 x) 0.99785)) - (side-gain [x] (+ (* -0.73764 (pow x 2)) (* 1.2841 x) 0.044372))] - (let [center (saw freq :iphase (math$rand.Float64)) - detune-factor (* freq (detune-curve detune)) - freqs [(+ freq (* detune-factor 0.11002313)) - (+ freq (* detune-factor 0.06288439)) - (+ freq (* detune-factor 0.01952356)) - (+ freq (* detune-factor 0.01991221)) - (+ freq (* detune-factor 0.06216538)) - (+ freq (* detune-factor 0.10745242))] - side (sum (map #(saw % :iphase (math$rand.Float64)) freqs)) - sig (+ (* center (center-gain mix)) (* side (side-gain mix)))] - sig)))) - + (:require [mrat.core :refer :all])) (def fade-in-time 60) (def metro (impulse 10)) -(def metro-bass (impulse 5)) -(def metro-kick (impulse 2.5)) (def burst (-> (pink-noise) (* (env-adsr metro [0.001 0.001 1 0.001])) @@ -57,29 +20,8 @@ (pipeset! feedback (+ burst delay-filter)) (play (-> feedback - ;;(* (sin 0.1 :mul 20 :add 25)) wfold - (* 0) (loshelf 20 :db -20) (rhpf 1200) (hishelf 12000 :db -90) limiter)) - -(def bass-line [0 2 7 3 12 10 0 2 3 11]) -(defn bass-synth - [gate freq] - (let [osc (supersaw freq 0.75 0.7) - amp (env gate [0.0001 1 1 0.0001] [0.01 0.1 0.01] :interp :exp) - hicut (* freq 8) - locut (* freq 1) - cutoff (env gate [locut hicut hicut locut] [0.02 0.08 0.01] :interp :exp)] - (-> osc - (* 0.1) - (rlpf cutoff 0.2) - (* amp)))) - -(play (-> (bass-synth metro-bass (step metro-bass (map #(mtof (+ F1 %)) bass-line))) - (* 0.8))) - -(play (-> (play-buf :bass_thick_c :trigger metro-kick :rate 0.5) - (rlpf 800 0.4 :mul 0.75))) diff --git a/examples/micin.glj b/examples/micin.glj index 58dd1d8..ad6042d 100644 --- a/examples/micin.glj +++ b/examples/micin.glj @@ -2,5 +2,4 @@ (:require [mrat.core :refer :all])) (play (-> (sound-in) - (bpf 400 1) (delayc 1 0.5))) diff --git a/examples/ping.glj b/examples/ping.glj deleted file mode 100644 index a5ce97d..0000000 --- a/examples/ping.glj +++ /dev/null @@ -1,4 +0,0 @@ -(ns examples.ping - (:require [mrat.core :refer :all])) - -(play (sin (xline 200 10000 15))) diff --git a/examples/simple.glj b/examples/simple.glj deleted file mode 100644 index 8d11aa2..0000000 --- a/examples/simple.glj +++ /dev/null @@ -1,14 +0,0 @@ -(ns examples.simple - (:require [mrat.core :refer :all])) - -(def trig (impulse (line 4 6 10))) - -(def notes (map mtof [Eb5 B3 C2 D5 B2 C3 G4 A3])) -(def prog (step trig notes)) -(play (-> (sin prog :mul 0.2) - (combc 2 0.014 1) - (* 0.5) - (rlpf 300 0.3) - (+ (-> (play-buf :bass_voxy_c :rate (choose trig [0.4 1 0.1 2 1.5 0.6 0.25]) :trigger trig :mul 0.1) - (rhpf 1000 0.05))) - (freeverb :room-size 0.2))) diff --git a/examples/simplesin.glj b/examples/simplesin.glj deleted file mode 100644 index c4cbb34..0000000 --- a/examples/simplesin.glj +++ /dev/null @@ -1,29 +0,0 @@ -(ns user - (:require [mrat.core :refer :all] - [mrat.scales :refer :all] - [mrat.midi :refer :all])) - -(def trig (impulse 8)) -;;(def drum-trig (impulse 2 :sync trig)) - -(def note (sequencer trig - (map midifreq [A3 B3 D4 G4 B3 A3 C3 - A3 B3 D4 G4 B3 A3 C3 - A3 B3 D4 G4 B3 A3 C3 - A3 B3 D4 G4 B3 A3 D3]))) - -(def cutoff - (envelope trig - [(* 4 note) (* (semitones 7) note) (* 4 note)] - [0.02 0.05])) - -(play (-> (sin note - :sync trig - :mul (sin 2 :sync trig :mul 0.3 :add 0.8)) - wfold - (* (envelope trig [0 1 1 0] [0.05 0.05 0.01])) - (rlpf cutoff 0.5) - (freeverb :room-size 0.5) - (* 0.6) - ;;(+ (play-buf :bass_hit_c :trigger trig :mul 0.3 :rate 0.6)) - limiter)) diff --git a/examples/st.glj b/examples/st.glj index 291d0f5..071c5e6 100644 --- a/examples/st.glj +++ b/examples/st.glj @@ -58,9 +58,9 @@ (let [amp (dbamp drone-env) freq (* root (octaves -1))] (-> (sum (repeatedly - 16 - #(saw (* freq (semitones (* 0.2 (noise-quad 8)))) - :iphase (math$rand.Float64)))) + 16 + #(saw (* freq (semitones (* 0.2 (noise-quad 8)))) + :iphase (math$rand.Float64)))) (lores (* 2 freq) 0.8) (* amp)))) diff --git a/examples/sunset.glj b/examples/sunset.glj index df4ffbf..06b18c0 100644 --- a/examples/sunset.glj +++ b/examples/sunset.glj @@ -19,9 +19,9 @@ 0 0 0 0 0 0 ]) -(def root-midi 40) +(def root-midi 50) -(def metro (impulse 4)) +(def metro (impulse 6)) (def metro-slo (impulse 0.1)) @@ -34,7 +34,7 @@ ]) %)) intervals))) (def hi-pad - (-> (sum (map #(saw % :iphase (math$rand.Float64)) (map #(mtof (+ root-midi 24 %)) [-2 0 7.1 3 12.1 24.1 35.9]))) + (-> (sum (map #(sqr % :iphase (math$rand.Float64)) (map #(mtof (+ root-midi 24 %)) [-2 0 7.1 3 12.1 24.1 35.9]))) (* 0.2) (lores (mtof (+ root-midi 12 24 (lfpulse 1/8 :mul 24))) res) (* (env-adsr metro-slo [1 2 0.5 6])) diff --git a/examples/test.glj b/examples/test.glj deleted file mode 100644 index 1d172ff..0000000 --- a/examples/test.glj +++ /dev/null @@ -1,5 +0,0 @@ -(ns user - (:require [mrat.core :refer :all])) - -(play (sin 200 :mul 0.2)) -(play (sin 200 :sync (impulse 340) :mul 0.2))