Commit d008a31a by PLN (Algolia)

Study: Because it's there <3

parent cf53db25
......@@ -68,5 +68,40 @@ let setI = streamSetI tidal
setB = streamSetB tidal
:}
:{
let modIndex = pF "modIndex"
mix = pF "mix"
vibrato = pF "vibrato"
chorus = pF "chorus"
lagamount = pF "lagamount"
dec = pF "dec"
sus = pF "sus"
cutoff = pF "cutoff"
drumMachine name ps = stack
(map (\ x ->
(# s (name ++| (extractS "s" (x)))) $ x
) ps)
drumFrom name drum = s (name ++| drum)
drumM = drumMachine
drumF = drumFrom
-- Midi boolean buttons
-- midiOn
midiOn ch pat = someCyclesBy ch pat
midiOff ch pat = someCyclesBy (1 - ch) pat
midiNo c1 c2 pat = someCyclesBy (1 - c1 - c2) pat
midiBoth c1 c2 pat = someCyclesBy (c1 + c2 - 1) pat
-- Parameterized DJF
_LPF lMin lMax ch = (# lpf (min lMax ((range lMin ((lMax*2) - lMin) ch))))
_HPF hMin hMax ch = (# hpf (max hMin (min hMax (range (hMin - hMax) (hMax - hMin) ch))))
midiDJF ch lMin lMax hMin hMax = (_LPF lMin lMax ch) . (_HPF hMin hMax ch)
-- FIXME: Seems to cut some lows when lMin != 0
-- Midi gain control (faders)
midiGGlobal = "^77" * 1.3
_gainG ch = (gain (midiGGlobal * ch)) -- gain Global
midiG' ch l h = _gainG (range l h ch) -- midiGain control
midiGdef = midiG' 1 0 1 -- midiGain default
midiG ch = midiG' ch 0 1 -- midiGain default
:}
:set prompt "tidal> "
-- :set prompt-cont ""
# MASTER/RELEASE
-- It's About Time [Take1?]
-- Burn this book
-- SlowMo: Orchestrated, ready to record :)
# Study
- [MathMusic](https://amath.colorado.edu/pub/matlab/music/MathMusic.pdf)
# Coop
## RAPH
- Ragga la hierarchie :D
- HAN!
- Rainbow Race !!!
- OldSkoolRadius: Raph
-- Diable with Raph
......@@ -25,9 +34,50 @@
# Work in progress
## Beatober
- Oct4: Techno recorded once, peaufine :)
- Oct5: DNB wobwob - manque leads/aigus?
- Oct29: Can I code it?
- BECAUSE it's There <33
## INDUSTRY
-- No Panic!
-- **ABLETON**:
- **Around the Bass** - develop and run!
- Punk Teng with raph!
- The Good Bass!
- Tour du ciel
- _Prestance_: Ambient wip
-- **Sel Marin**: Nuit noire dans la mer noire, TODO varier bass
-- **_Bain bouillant_**: sub bass and jungle breaks :)
-- Wild Coffee: Complainte Jungle Paradisiaque -- bonne intro?
-- Monday Fairy
-- MauerPark!
-- La canopee: recorded :)
-- **Premier mai**: Shiloh techno
-- **Premiere Grillade**: LoFi soleil :)
-- Green Land: Fusion celtique break-to-hardcore
-- Barriere Bleue: Au contact du pavé
-- Clameur: Pour clem :)
-- **Nouveau Soleil** : Debut multi techno record!!
-- *Lendemain Divin*: develop basslines :)
- **Before**: Before it starts...
- It's about Time! BURNING BITS & ACID BUMPS
- BURN THIS BOOK! TECHNO CBOW BURNING FIRE
- r1 :)
- _Breathe_: From lofi breathing exercise to nes drumfest
-
- LatinCore: is it latin or Core?
- *Step silence*: Techno rhythms and dirty basses
-- Midnight breaking: breakbeat+chip midnight tentative
-- **Midnight breaking**: breakbeat+chip midnight tentative
-- *Maudits insectes*: Techno nappée d'insectes bruités
- Soleil Enthousiaste: LoFi ensoleillée basse+rhodes+break
......@@ -79,7 +129,7 @@
- Hors Amsterdam: LoFi/breakbeat instru, keys too much
- *Back Baby*: Lofi/Techno? guitar epiano slicé!
- LoFi/SlowMo: Lent mouvement minimaliste 😘
- **LoFi/SlowMo**: Lent mouvement minimaliste 😘
- Louge/Michael: Techno PianoShards + SynthChoir
- HelloFi: intro to Lofi :)
- Disco/High: Techno -> HiNRJ Disco 8)
......@@ -387,7 +437,7 @@ La voix de l'Ordre: Monotonal drone <> breakbeat
> BASSL1NE, V01CES
- *Solar & Lunar*
>Retro sunset
> Retro sunset
- *Alerte verte!*
> Tout le monde sur le pont
......@@ -397,8 +447,6 @@ La voix de l'Ordre: Monotonal drone <> breakbeat
## Live Algolia FDLM2022 :metal:
### TODO:
......@@ -424,3 +472,230 @@ La voix de l'Ordre: Monotonal drone <> breakbeat
- Nightly Repair 💪
- Alerte verte 🚨
- **Invoque l'Été** \o/
## Live @CMNY #2
- It's about Time ⏰
<!-- /Intro -->
- Michael 🎩
- Atari-ght 🎮
- Solar? 🌇
- Lunar! 🎑
- Contre visite 👓
- Lucy Rhodes 🌳
- Empreinte du 💻[🎀]
- Nightly Repair 💪
- Invoque l'Été \o/
<!-- Outro -->
- Nova Bossera 💃 [🎀]
## Live @MephisTeuf 😈‍💻😈
> Cette nuit t'appartient
> Il ne t'en coutera presque rien
> Serre-donc ma robotique main
> Et scelles-y ton destin
<!-- - It's about Time ⏰ -->
<!-- - BURN THIS BOOK 🕯📖🕯 -->
<!-- - Atari-ght 🎮 -->
<!-- - Contre visite 👓 -->
<!-- - Lucy Rhodes 🌳 -->
<!-- - ALERTE VERTE 🌳🔥 [🎀] -->
<!-- - Empreinte du 💻 -->
<!-- - Nightly Repair 💪 -->
<!-- FINAL -->
- TOP HATS 🌠🎩🎩🎩🌠
### 🌃🪐 LIVE Noctambule 🌙🌃
- Intro _🚪 Contre-Visite 👁️‍_
- Sunset __🌈 ATARI-ght? 🎩__
- Darkness __🧙 Burn this B00K 🧙__
- Sunrise __⏳🕕 It's About TIME ⌚⏰__
- Bonus? __🌅 Solar 🌅__
### <3 Live Love <3
- Something about us
- Best Part [Unplugged]
- Dream a little dream of Me [Unplugged]
- Until I found U
- Killing me Softly
- Can't Help Falling in Love [Unplugged]
- U remind me
⠀⠀⢀⣤⣾⣿⣿⣿⣿⣿⣶⣤⡀⢀⣤⣶⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀
⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀
⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄
⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠀⣿⣿⣿⣿⣿⣿ ALGORHYTHM ⣿⣿⣿⣿⣿⣿⠀
⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀
⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀
⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
# LIVE @Algolia | Gotta Love a Plan B <3
## Intro: Même l'hiver a une fin
- Invoque l'Été
## Le jour est court
- Solar
## La nuit est LONGUE
- Contre Visite
- Empreinte du Numerique
- Break the Loop
- **Alerte Verte**
## Sun always rises
# Bazurto Live@Tignes
> Pour Montagnettes <3
## _Apéritif_
- _Invoque l'été_
## _Entrée_
- _Solar_
- **Lunar**
## _Accompagnement_
- *Michael*
- *Nightly Repair*
- *Contre visite*
## _Plat de résistance_
- _Burn this Book_
## _Dessert_
- _Break the Loop_
- _Atari-ght: techno retro gaming_
## _Dernier Verre_
- Alerte Verte
## __Digestif__
- It's About Time
# Live toi toi mon toit
-- Premiere Grillade
-- Break Dynasty
-- Clameur
-- Nouveau Soleil
-- It's About Time <3
# Divin Live
## Pour _Demeter_ <3
-- Accueil: *Green Land*
-- Paradis perdu: *Break Dynasty*
-- Véneration: *Venons ensemble*
-- Idoles: *Nouveau Soleil*
-- (Pluie): *Contre Visite*
-- Nuit: *AtaRight*
-- Bouquet : *It's About Time*
-- Rite Final: **Été à MauerPark**
-- Bonus: Le quart d'heure de politesse
-- Invoque l'été
-- Alerte VERTE
# CANCELED Live @Orléans - Labomedia's festival :fire:
Premiere grillade?
Premier Mai!
It's about TIME
_Contre Visite_!
**Nouveau Soleil**!!!
Green Land
!**Ataright**!
Empreinte du numerique!
Alerte verte?
**Mauerpark <3** [Triste finale]
[Venons Ensemble - Clear?]
Break Dynasty?
Clameur? Brouillon?
---
---
---
---
# DevCon23 Performance
█████╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ █████╗
██╔══██╗██║ ██╔════╝ ██╔═══██╗██║ ██║ ██╔══██╗
███████║██║ ██║ ███╗██║ ██║██║ ██║ ███████║
██╔══██║██║ ██║ ██║██║ ██║██║ ██║ ██╔══██║
██║ ██║███████╗╚██████╔╝╚██████╔╝███████╗██║ ██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
██████╗ ███████╗██╗ ██╗ ██████╗ ██████╗ ███╗ ██╗
██╔══██╗██╔════╝██║ ██║██╔════╝██╔═══██╗████╗ ██║
██║ ██║█████╗ ██║ ██║██║ ██║ ██║██╔██╗ ██║
██║ ██║██╔══╝ ╚██╗ ██╔╝██║ ██║ ██║██║╚██╗██║
██████╔╝███████╗ ╚████╔╝ ╚██████╗╚██████╔╝██║ ╚████║
╚═════╝ ╚══════╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝
██████╗ ██████╗ ██████╗ ██████╗
╚════██╗██╔═████╗╚════██╗╚════██╗
█████╔╝██║██╔██║ █████╔╝ █████╔╝
██╔═══╝ ████╔╝██║██╔═══╝ ╚═══██╗
███████╗╚██████╔╝███████╗██████╔╝
╚══════╝ ╚═════╝ ╚══════╝╚═════╝
## PreShow with Chuck [15mn]
-- _SlowMo_ [Background]
-- **Lendemain Divin**
-- **Invoque l'été**
## Sessions Break [15mn]
-- _Before_
-- **Nouveau Soleil**
-- *Premiere Grillade*
-- *Été à Mauerpark*
# VelociTeuf
## REPAIR MULTILINE
-- Reboot
-- Nouveau soleil
## Adapt to DAW, removing midiG calls
-- Oct4
-- About time
## READY FOR MIX
-- Premiere Grillade
-- Rainy day
## READY FOR TAKEOFF
-- Intro: Contre Visite...
-- ...Rainy day
### **VELOCITE**
-- Bain bouillant
-- Acid RAIN
-- No Time to Die
-- Haunted house
-- _Finale_: **L'été a Mauerpark**
......@@ -183,10 +183,10 @@ d4 -- Brass voice
"", "c6@2 ~!3" -- bad
-- 76 TODO fin
])
# "brass"
# "brass" # "moogBass" -- FIXME RESTORE BRASS SAMPLES!
# legato "<0.75!7 1>"
# room 0.2
# gain 0.5
# gain 0.8
d6 -- synth Chorus
$ note (cat [
"","","","","","","","", -- Intro
......
once $ "bassWarsaw"
do
setcps (110/60/4)
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
d1 $ gF1 $ gM2
$ midiOn "^42" (<| "k k k k*2")
$ midiOff "^42" (<| "k")
$ fix ((|* gain 0.9) . (# lpf 1000)) "jazz"
$ fix ((# att 0.02) . (# rel 0.5) . (# lpf 400)) "kick:4"
$ "[jazz,kick:4]"
d2 $ gF1 $ gM $ "~ sn ~ sn" # "[snare:5,snare:19]"
d3 $ gF1 $ gM -- Hats ouverts legers
$ midiOn "^76" (ply 2)
$ midiOff "^44" (mask "t(4,8)")
$ "ho:0*8"
# att 0.25
# rel 0.05
# gain "1 0.9 1 0.8 <0.9!3 1.05> 1"
d4$ gF2 $ gM3
$ midiOn "^57" ((|+ note 12) . (# freeze 0.8))
$ sometimesBy (1 - "^17") (mask "[t@6 <f!3 t> <f t>]")
$ note "[cs3@6 gs3 ds3]"
# crushbus 41 (range 16 2.5 "^53")
# octersubbus 42 (range 0 2.5 "^33")
# octersubsubbus 43 (range 0 5 "^33")
# squizbus 44 (range 0 2 "^17")
# roombus 45 (range 0 0.5 "^53")
# "bassWarsaw"
d7 $ note "<b4 as4 gs4 ~>"
# legato 0.125
# room 0.8
# sz 0.4 # dry 1
# "ikedaBass"
# modIndex 0
# crushbus 71 (range 16 4.5 "^55")
# lpf 1500
# att 0.4
# rel 0.9
# delay 0.9
# delayfb 0.2
# delayt 0.75
d9 $ gF3 $ gM3 -- Aterrissage sur venus
$ note "gs5/2"
# "FMRhodes1"
# legato 0.25
# delay 0.9
# delayt 1
# delayfb 0.25
# modIndex 0
# pan "0.1"
d10
$ note "<b4 as4 gs4 ~>"
# "90s_synatm:0"
# room 0.4 # sz 0.9
# cut 10
# lpfbus 101 (slow 8 $ range 3000 1500 sine)
d7 $ note ("<e4 ds4 cs4 cs4>" + "0(3,8) 0(3,8)" + "[0,12]")
# "giorgio_syn:7"
-- # lpf 500
# orbit 6
# octersubbus 102 (range 0 2 "^55")
# gain 0.8
d5 $ note "[<b5 as5 gs5 gs5>]" |+| "0 ~ ~ 0 ~ <~!2 0 ~> 0 ~"
# "FMRhodes1"
# room 0.8 # sz 0.1 # dry 1
# rel 2
# gain 0.7
# orbit 4
-- TODO: VHS Rhythmic section 2:30-3:00
E b d e
once $ "dr"
-- V2: Reboot base mi tension si
do
let gF = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.15 0.85 "^50"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gM = gMask . gMute
let modIndex = pF "modIndex"
let scale = getScale (scaleTable ++ [("snow", [4,6,7,9,11,12,15])])
setcps (90/60/4)
d1 $ gF $ gMute -- HEARTBEAT TODO: Allege?
$ superimpose (# "kick:5")
$ midiOn "^74" (ply 2)
$ midiOff "^42" (<| "k . ~ ~ ~ <~!7 k*<1 2>> <~!3 k>")
$ midiOn "^42" (<| "k k k <k [<k ~> k]>")
$ "tek_strange:1"
# legato "e"
# room 0.2
# lpf 1000
# note "<-3 <-1!3 -5>>"
# midiG' "^78" 0 1.4
d2 $ gF $ gM $ "~ cp ~ cp" -- FIXME: Change le snare
# gain 0.8
# room 0.9
# sz 0.8
# lpf 5000
# dry 1
# midiG' "^79" 0 1.4
d3 $ gF $ gM -- Drums juxés - FIXME DRUMROLL <3
$ fix (
struct "~ t ~ t ~ t ~ t*2"
. (# "[dr,tek_hh:0]")
. (|* gain 0.66)
. (# room 0.4)
) "juxed"
$ fix (
struct "~ t ~ t*2 ~ t ~ t"
. (# "[tek_hh:0]")
. (|* gain 0.7)
) "base"
$ jux (
((# "juxed"))
)
$ "base"
# midiG' "^80" 0 1.4
# room 0.2
# dry 1
d4 $ gF2 $ gMask -- BASSLINE - TODO Sometimes double hit
$ note (scale "snow" ("<[0@7 <-2!3 1>] <[-3@7 -1]!3 -3>>")
- 12
)
# "bassWarsaw"
# midiG' "^81" 0 1.2
# room 0.4 # sz 0.8 # dry 1
# lpf 3000
d5 $ gF2 -- MadKeys - Todo allege?
$ midiOn ("^58") (off "e" id)
$ note (-24 + scale "snow" ("[0(3,8)]*4" + ("[0 1 2 3]" + "4 4 4 <3 4>")
-- + "<0!4 4!4>"
))
# "FMRhodes1"
-- # hpf 500
# modIndex (range 0 12 "^34")
# crushbus 51 (range 16 4 "^54")
# legato 0.5
# midiG' "^82" 0 1.5
d6 $ gF $ gM -- Break salvateur
-- $ chop 4
$ midiOff "^20" (mask "<f!32 t!32>")
$ slice 4 "<[<0 2>]!8 [<0 2> <1 3>]!8 [0 1 <2!3 0> <3!3 1*<1 2>>]!8 [0 1 2 3 [0 1] [1 2] [2 3] [2 3]]!8>"
$ loopAt 1
$ "breaks165"
# cut 6
# pan 0.2
# octersub 0.8
# octersubsub 0.9
# lpf 4000
# midiG' "^84" 0 1.5
d8 -- TODO Finir Choeurs glitchés
$ slice 8 (run "<4 4 8 16>")
$ "voice/2"
-- # "voices_balkan:2"
# "voices_celtic" # n "<2 3>"
# pan 0.8
# midiG' "^83" 0 1
# cut 8
d9
$ note (scale "snow" ("0 1 2 3 0 1 2 3" + "0 <0!3 3>"))
# "moogBass" # legato 0.2
# midiG' "^83" 0 1
-- V1: Yay, voices
do
let gF = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMutePont = (mask "<t!14 f [t f!3]>")
let gM = gMask . gMute . gMutePont
setcps (100/60/4)
d1 $ gMute
$ gF
$ midiOn "^42" (
superimpose (const
$ "<[k k k <k!3 [~ k]>]!64 [[k . k(<3!3 <5 [5 8]>>,8)],[~ . k(<0 1 3 1>,8,4)]]!64>"
# "jazz:0" # room 0
# midiG' "^78" 0 1.6
)
)
$ "<k ~> . ~!3 <~ k>"
# n "[6,7,20]"
# room 0
# "808bd"
# midiG' "^78" 0 1.4
d2 $ gMute $ gF -- Snare n.r.v.
$ "<[~ s]!8 [~ s ~ s]!8>"
# "snare:70"
# octer 0.8
# octersub 4.2
# pan 0.6
# midiG' "^79" 0 1.4
d3 $ gF $ gM
$ midiOn "^44" (fast "2 <2 <4 [4 8 4 16]>>")
$ midiOn "^76" (fast "2 <2 <4 [4 8 4 16]>>")
$ "dr dr dr dr"
# "[dr,drum:2]"
# hpf 500
# midiG' "^80" 0 1.4
d5 $ gF $ gM -- Break nuageux
$ chop 16
$ loopAt 1
$ "breaks165"
# lpf 3000
# cut 5
# midiG' ("^80" * "^52") 0 1.4
d4 $ gF2 -- BassLine
$ superimpose ( -- ELECTRICITY
(# cut 41) .
(# crushbus 41 (range 16 4 "^53"))
. (# legato 4) . (# room 4)
. (|* gain 0.8)
. (# panbus 42 (range "<0.5!3 0.9>" "<0.9!3 0.5>" saw))
)
$ note ("<e [~!7 <d d g a>]>" - 24)
# "bassWarsaw"
# legato 1
# cut 4
# room 0.4
# dry 0.9
# sz 0.8
# midiG' "^81" 0 1.4
d6 $ gF2 -- Heyah!
$ whenmod 4 3 (mask "t . t f")
$ slice 4 "0 0 1 [3 ~]"
$ chop 4
$ "voices_persian:2/2"
# speed 0.8
# octersubsubbus 61 (range 0 2.4 "^56")
# cut 6
# midiG' "^84" 0 1
d10 -- READY FOR THIS MAN?
$ mask "<f!14 t <f t>>"
$ someCyclesBy "<f!32 t!32>" (ply "<1 2>" . (slice 5 0))
$ someCyclesBy "<f!16 t!16 f!32>" (slice 3 1)
$ "voices_reggae:7" # cut 9
# midiG' "^83" 0 1
-- TOO GOSPEL?
d5 -- Chorus 1
$ whenmod 64 48 (-- MYMYMY
-- (ply "<1!4 2 [2 4] [2 8 4] [8 4 16]>") .
(# n "<5 6 7 8 5 6 5 6 7 8 7 8 9 10 9 10>")
-- . (superimpose ((# cut 51) . (# crush 4)))
)
$ n "<0!4 0 1 2 3>"
# "g_gospel3"
# cut 5
# pan 0.13
# room 0.4
# dry 1
# midiG' "^83" 0 1
d6 -- Chorus 2
$ slice 3 "<0!4 1!4>"
$ "g_gospel3:23"
# room 0.58
# dry 1
# legato 2
# hpf 600
# pan 0.8
# midiG' "^84" 0 0.9
#! /usr/bin/env sh
# Init Midi
# Depends on sendmidi being installed:
# https://github.com/gbevin/SendMIDI
# Knobs
# DJFs
sendmidi dev in0 cc 49 64
sendmidi dev in0 cc 50 64
sendmidi dev in0 cc 51 64
# Effects
sendmidi dev in0 cc 52 0
sendmidi dev in0 cc 53 0
sendmidi dev in0 cc 54 0
sendmidi dev in0 cc 55 0
sendmidi dev in0 cc 56 0
sendmidi dev in0 cc 13 0
sendmidi dev in0 cc 14 0
sendmidi dev in0 cc 15 0
sendmidi dev in0 cc 16 0
sendmidi dev in0 cc 17 0
sendmidi dev in0 cc 18 0
sendmidi dev in0 cc 19 0
sendmidi dev in0 cc 20 0
sendmidi dev in0 cc 29 0
sendmidi dev in0 cc 30 0
sendmidi dev in0 cc 31 0
sendmidi dev in0 cc 32 0
sendmidi dev in0 cc 33 0
sendmidi dev in0 cc 34 0
sendmidi dev in0 cc 35 0
sendmidi dev in0 cc 36 0
# Faders
sendmidi dev in0 cc 77 72
sendmidi dev in0 cc 78 46
sendmidi dev in0 cc 79 46
sendmidi dev in0 cc 80 46
sendmidi dev in0 cc 81 46
sendmidi dev in0 cc 82 46
sendmidi dev in0 cc 83 46
sendmidi dev in0 cc 84 46
# Buttons
sendmidi dev in0 cc 41 0
sendmidi dev in0 cc 42 0
sendmidi dev in0 cc 43 0
sendmidi dev in0 cc 44 0
sendmidi dev in0 cc 57 0
sendmidi dev in0 cc 58 0
sendmidi dev in0 cc 59 0
sendmidi dev in0 cc 60 0
sendmidi dev in0 cc 73 0
sendmidi dev in0 cc 74 0
sendmidi dev in0 cc 75 0
sendmidi dev in0 cc 76 0
sendmidi dev in0 cc 89 0
sendmidi dev in0 cc 90 0
sendmidi dev in0 cc 91 0
sendmidi dev in0 cc 92 0
......@@ -15,14 +15,14 @@ let modIndex = pF "modIndex"
d1 $ gM2 $ gF1 -- Kick solide
$ fix ((|* gain 0.9) . (# lpf 1000)) "jazz"
$ fix ((# att 0.02) . (# rel 0.5) . (# lpf 5000)) "kick:4"
$ midiOn "^42" (struct "t*4")
$ midiOn "^42" (struct "t t t t*<1!6 2 2>")
$ midiOff "^42" (<| "k . ~ <~!3 k> ~ ~")
$ "[jazz,kick:4]" # lpf 3000
$ "[jazz,kick:4]"
-- # midiG' "^78" 0 1.5
d2
$ gM1 $ gF1 -- snare contretemps variable
$ fix (|* gain 0.7) "cp"
$ midiOn "^43" (<| "~ cp ~ cp")
$ fix ((|* gain 0.8) . (# legato 0.05)) "cp"
$ midiOn "^43" (<| "~ cp ~ cp*<1 1 2 <1 2>>")
$ midiOff "^43" (<| "~ cp")
$ "[cp,snare:24]"
# pan 0.65
......@@ -36,7 +36,8 @@ d3 $ gM1 $ gF1
d4 -- Basse convaincante
$ gM3 $ gF2
$ whenmod 64 32 (# drybus 41 (slow 32 $ range 1.9 1 saw))
$ midiOn "^89" (ply "<[4@5 2 4 2] 1>")
-- $ midiOn "^89" (ply "<[4@5 2 4 2] 1>")
$ midiOn "^57" (segment "<4 [4 <8 8 16 16>]>")
$ someCyclesBy (1 - "^17") (struct "<t [t t]>")
$ rarely (ply "1@5 1 <1!3 2> [<1 2> <1 1 1 2>]")
$ note "<c3 c3 c3 c3 gs2 gs2 b2 b2>@5 ef3 d3 <ef3!4 c3!3 b2>"
......@@ -48,6 +49,9 @@ d4 -- Basse convaincante
# pan 0.4
|* gain "1@5 0.95 0.98 0.95"
d5 $ gF3 -- Appel oiseau joyeux oiseau joyaux
$ midiOn "^58" ( -- Oiseau de nuit
rev . (|+ note "<<0 0 [0 -7] [0 -7]>!3 [0!3 -12]>")
)
$ mask "<[[t <f!4 t!4>] <f!8 t!8>]!8 t!24 t!96>"
-- g c ef g / g c ef f / gs c ef f / gs c ef g
-- g c ef g / g c ef f / gs c ef gs / gs c ef g
......@@ -83,7 +87,8 @@ d6 $ gF1 -- HAWKS
# dry 1.025
-- # room 0
-- # midiG' "^31" 0 1.5
d7 $ gM2 $ gF3 -- High carillon!
d7
$ gM2 $ gF3 -- High carillon!
$ midiOn "^59" ( -- Basse reponse
superimpose ((0.125 <~) . (|* gain 1.2) . (# note "<c4!4 cs4!4>") . (# pan 0.45))
)
......@@ -104,6 +109,7 @@ d9 $ gF3 -- Pads atmospheriques
# cut 9 # legato 2
-- # midiG' "^20" 0 1.4
# pan 0.4
# gain 1
# room 0.4
d10
$ mask "<f!16 t!16 t!96>"
......@@ -112,7 +118,7 @@ d10
# cut 10
-- # midiG' "^13" 0 1.3
-- # gain (1.3 * "^77")
# gain 1.3
# gain 1
d11
$ mask "<f!24 t!8>"
$ note ("~ <c5!4 ef5 ef5 f5 g5>" + 4)
......
do
setcps (90/60/4)
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
d1 $ gM2 $ gF1
$ midiOn "^42" (<| "k k k [k*2 <k [~ k]>]")
$ midiOff "^42" (<| "k . k(<3 [3 <5 4 5 8>]>,8)")
$ "[jazz, kick:5,808bd:2]"
# gain 0.8
d2 $ gM $ gF1
$ fix (# lpf 200) "snare:15"
$ "~ s [~!3 <~!3 s ~ s ~ s>] s*<1!7 2>"
# note "0 0 -2 0"
# "[snare:55,snare:15]"
# gain 0.9
d3 $ gM $ gF1
$ rarely (off "[s|e]" (|* gain 0.93))
$ midiOn "^76" (mask "t(<24 32 32 24>,32)" . ply "1 2 1 2")
$ midiOn "^44" (ply 2)
$ "d*8"
# note 3
# drumFrom "mpc1000" "sd:4"
# pan 0.2
|* gain (fast 2 $ segment 16 $ range 0.85 1.1 perlin)
d4 $ gMute3 $ gF2 -- Can I?
$ slow 2
$ note ("<[a3@3 ~ ~ ~ ~ <c4 g3>] [e3@3 ~ ~ ~ ~ g3]>" + "[0,12]" - 12)
# modIndex (range 0 4 "^53")
# "FMRhodes2"
# delay "<0.5!3 0>"
# delayt 0.5
# delayfb 0.5
# room 0.2 # dry 1.1 # sz 0.8
# gain 1.2 # cut 4
d5 $ gF3 $ gM3 -- BURNING IT
$ midiOn "^58" (# freeze 0.5)
$ whenmod 32 24 (off 0.25 ( -- Final angels
mask "t(<4 8>,16,1)"
. (|+ note 12)
. fast "2"
-- . (# freeze 0.1)
. (# crushbus 51 (slow 8 $ range 8.5 2.3 saw))
. (# roombus 52 (slow 8 $ range 0 0.5 saw))
. (# dry 1.4)
. rev
. (# cut 52))
)
$ whenmod 16 8 ( -- Echoes of masked figures
off 1 ((|+ note 12)
. ply "<1!3 2 2!3 4>"
. whenmod 32 16 (rev)
. (# cut 51)))
$ slow 2 $ note "<[a4 [b4 <e5 e4>] ~ ~ . ~]>"
-- $ note ("<a3 [<e3 [e3 g3]>]>")
# "giorgio_syn:5"
# cut 5
# pan (slow 32 $ range 0.8 0.6 saw)
# distortbus 53 (range 0 2 "^54")
# room 0.5 # sz (slow 16 $ range 0.4 0.8 saw)
# delaybus 54 (range 0 2 "^34")
# delayt 0.25
# delayfb 0.8
# gain 0.6
d8 $ gM $ gF3
$ (# pan "0.13@3 0.87")
$ midiOn "^92" (ply "2 <2!3 4>")
$ midiOn "^36" (chop 16 . loopAt 0.25 . (|> "jungle_breaks:1"))
$ midiOff "^36" (slice 16 ("<0 2 2 0> <1 3 3 1> <2 6> <3 <7 3>>"))
-- $ slice 16 (run 16)
$ loopAt 4
$ "jungle_breaks:10"
-- # att 1.01
# rel 2
# cut 8
# orbit 7
d7 $ gM $ gF1
$ loopAt 4
$ chop 8
$ n "<0!4 5!4>!3 <0 4>"
# "drums_gameboy"
# cut 7
# pan 0.2
# orbit 6
d9 $ gF3 $ n "<64!3 65>/4"
# "90s_megafx:64"
# cut 9
# gain 0.7
d10
$ (0.75 ~>)
$ "<~!7 90s_synatm:4>"
# note "[-12]"
-- # hpf 1500
# accelerate 4
# gain 0.7
# panbus 101 (range 1 0.7 saw)
# pan 0.9
# cut 10
# room 0.8 # dry 2 # sz 0.5
# delay 0.85
# delayt 2
# delayfb 0.7
once $ "fx_commodore"
once $ note "g4" # "superfork"
# orbit 4
# accelerate 2
......@@ -741,3 +741,77 @@ region BonusBreak
28 30(120BPM).wav
endregion
-->
# Drum machines
AJKPercusyn
AkaiLinn
AkaiMPC60
AkaiXR10
AlesisHR16
AlesisSR16
BossDR110
BossDR220
BossDR55
BossDR550
CasioRZ1
CasioSK1
CasioVL1
DoepferMS404
EmuDrumulator
EmuModular
EmuSP12
KorgDDM110
KorgKPR77
KorgKR55
KorgKRZ
KorgM1
KorgMinipops
KorgPoly800
KorgT3
Linn9000
LinnDrum
LinnLM1
LinnLM2
MFB512
MoogConcertMateMG1
MPC1000
OberheimDMX
RhodesPolaris
RhythmAce
RolandCompurhythm1000
RolandCompurhythm78
RolandCompurhythm8000
RolandD110
RolandD70
RolandDDR30
RolandJD990
RolandMC202
RolandMC303
RolandMT32
RolandR8
RolandS50
RolandSH09
RolandSystem100
RolandTR505
RolandTR606
RolandTR626
RolandTR707
RolandTR727
RolandTR808
RolandTR909
SakataDPM48
SequentialCircuitsDrumtracks
SequentialCircuitsTom
SergeModular
SimmonsSDS400
SimmonsSDS5
SoundmastersR88
UnivoxMicroRhythmer12
ViscoSpaceDrum
XdrumLM8953
YamahaRM50
YamahaRX21
YamahaRX5
YamahaRY30
YamahaTG33
......@@ -50,7 +50,8 @@ if (~stopMidiToOsc != nil, {
// ~stopMidiToOsc.value;
// MIDI OUT
// ~midiOut = MIDIOut.newByName("iO4", "iO4 iO4"); // Alesis iO4
//~midiOut = MIDIOut.newByName("iO4", "iO4 iO4"); // Alesis iO4
//~midiOut = MIDIOut.newByName("HAPAX", "HAPAX MIDI 1");
/*
......@@ -66,9 +67,10 @@ This is an example startup file. You can load it from your startup file
s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples
// Increased from 8192 * 32
s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages
s.options.numWireBufs = 128; // increase if "exceeded number of wire buffer" messages
s.options.numWireBufs = 64; // increase if "exceeded number of wire buffer" messages
s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes"
s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary
s.options.numOutputBusChannels = 12; // set this to your hardware output channel size, if necessary
s.options.numOutputBusChannels = 24; // MULTICHANNEL SETUP
s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary
// boot the server and start SuperDirt
s.waitForBoot {
......@@ -78,10 +80,30 @@ s.waitForBoot {
// for example: ~dirt.loadSoundFiles("/Users/myUserName/Dirt/samples/*");
~dirt.loadSoundFiles("/home/pln/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples/*");
~dirt.loadSoundFiles("/home/pln/Work/Sound/Samples/extra/*");
// DRUM MACHINES
~drumMachinesDir = PathName.new("/home/pln/Work/Sound/Samples/tidal-drum-machines/machines");
~machines = ~drumMachinesDir.folders; //All drum machines
//*~machines = ['Linn9000','RolandTR909']; //Selected drum machines
(
~machines.do({
arg machine;
var folders = machine.folders;
// postln("Loading machine: "++machine.folderName);
folders.do({
arg folder;
~dirt.loadSoundFiles(folder.fullPath,namingFunction: { |x| x.basename.replace("-","")});
});
});
);
// s.sync; // optionally: wait for samples to be read
~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0
//~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0
~dirt.start(57120, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]); // start listening on port 57120, MULTICHANNEL - ALSO UPDATE NUMOUTPUT
//~dirt.soundLibrary.addMIDI(\midi, ~midiOut); // Connect `midi` synth to iO4
// ~dirt.soundLibrary.addMIDI(\midi, ~midiOut); // Connect `midi` synth to iO4
//~looper = TidalLooper(~dirt); // Start TidalLooper on top :)
// ~looper.linput = 1;
......@@ -118,5 +140,5 @@ s.waitForBoot {
};
s.volume = 1;
s.latency = 1; // increase this if you get "late" messages
s.latency = 0.3; // increase this if you get "late" messages
);
-- Study: Ableton Learning Music
-- https://learningmusic.ableton.com/make-basslines/good-life.html
let lineGoodLife = "b3 ~ ~ b3 ~ ~ b3 ~ ~ fs3 ~ ~ fs3 ~ ~ a3 ~ a3 ~ a3 ~ ~ e3 ~ ~ e3 ~ e3 b3 ~ b3 ~"
let lineAround0 = "~ ~ ~ ~ a4 ~ ~ ~ a4 ~ ~ ~ a4 ~ b4 c5" -- [0,1,2,3]
let lineAround1 = "~ ~ ~ ~ c5 ~ ~ ~ c5 ~ ~ ~ c5 ~ d5 e5"
let lineAround2 = "~ ~ ~ ~ e5 ~ ~ ~ e5 ~ ~ ~ e5 ~ ~ ~"
let lineAround3 = "fs5 ~ e5 ~ d5 ~ c5 ~ b4 ~ a4 ~ g4@3 a4"
let lineTeng = "cs d d d cs d d d cs d d d g ~ fs ~"
let lineNever = "<[~ ~ c5 b4 a4 ~ ~ ~] [~ <g4 <~ <g4 d5>>> <a4 ~> <g4 d5> a4 ~ ~ ~]>"
let lineOblivion1 = "d4 d4 d5 a4 d4 <d4 d5> <f4 a4> a4" -- [1,1,2,2]
let lineOblivion2 = "b4 b4 b5 fs4 b4 <b4 b5> <d4 fs4> fs4"
do
setcps (148/60/4)
let lineLoveTear = "e4@8"
d1 $ "jazz"
d2 $ "~ clap:2"
d4 $ note () # "FMRhodes1"
-- Exercise in space
do
setcps (127/60/4)
let lineNever = "<[~ ~ c5 b4 a4 ~ ~ ~] [~ <g4 <~ <g4 d5>>> <a4 ~> <g4 d5> a4 ~ ~ ~]>"
d1 $ loopAt 2 $ "break:1"
# cut 1 # gain 0.8
d4
$ note (lineNever)
# "bass:4" # att 0.1 # rel 2 # lpf 4000
# gain 1.1
do -- Oblivious to your synths
let lineOblivion1 = "d4 d4 d5 a4 d4 <d4 d5> <f4 a4> a4"
let lineOblivion2 = "b4 b4 b5 fs4 b4 <b4 b5> <d4 fs4> fs4"
d4
$ note (cat [lineOblivion1,lineOblivion1,lineOblivion2,lineOblivion2])
# "cs80leadMH"
# att 0.1 # rel 1
# room 0.4
# cut 4
do
setcps (82/60/4)
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
d1 $ gF1 $ gM
$ midiOn "^42" ((<| "k k k k k k <k <~ k*2>> k*<1 2 2 2>") . (# "[jazz:0]"))
$ midiOff "^42" (<| "k . <~!4 k!4 k(3,8)!8>")
$ "[rootsDrums:0,rootsDrums:4]"
-- $ "[techno,jazz,kick:5]*4"
# midiG' "^78" 0 1.5
d3 $ gF1 $ gM
$ "[~ drum:2]*8"
# midiG' "^80" 0 1.5
d4 $ gF2 $ gM2
$ midiOff "^57" ((slow 2) . ( # room 0.5))
$ note (lineTeng)
# "rootsBass"
# crushbus 41 (range 16 2.5 "^53")
# end 0.35 # room 0.3
# legato 2 # gain 1.9 # cut 1
# midiG' "^81" 0 1.5
d8 $ gF1
$ midiOn "^92" (ply "1 2")
$ midiOn "^60" (slice 16 (run "<16!8 [16 8]!7 [8 16]> <16!3 <32 [8 32]>>") )
$ chop 8
$ (someCyclesBy "^20" (# n "21"))
$ "jungle_breaks:33"
# midiG' "^84" 0 1.5
d2 $ gF1
$ whenmod 32 24 (fast "<2!3 [<2 4> 4]>")
$ "~ [cp,snare:24]"
# pan 0.7
# midiG' "^79" 0 1.4
d3 $ gF1
$ sometimesBy (slow 16 $ range 0 0.5 saw) (mask "t(3,8) t(5,8)")
$ "hh*[16 16 16 <8!2 16 12>]"
# midiG' "^80" 0 1.6
# room 0.2 # dry 1
# pan (0.4 + 0.2 * (slow 4 perlin))
d4 $ gF2
$ midiOn "^89" (|+ note "c'minPent'2")
-- $ midiOn "^57" (<| note lineAround3)
$ note (slow 2 $ lineGoodLife) # "bassWarsaw"
# octave 4
# crushbus 41 (range 16 2.5 "^53")
# octersubbus 42 (range 0 4 "^33")
-- # delayfb 0.8 # delayt 0.25
# midiG' "^81" 0 1.4
# pan 0.3
d5
$ midiOn "^90" (sometimesBy "0 1" rev)
$ midiOn "^58" (struct "t(<3!3 <5 2>>,<8!7 4>) . t(<5!7 <8 16>>,8)" . arp "pinkyup")
$ note ("<[a4,c4,e4] [c4,e4,g4] [e4,g4,b4] [d4,fs4,g4]>")
# "moogBass"
# midiG' "^82" 0 1.6
d8 $ gF3
$ midiOn "^92" ((# pan 0.4) . (# n "19"))
$ sometimesBy "^56" (slice 4 ("0 <1 <1*2 ~> ~ 1> <2 ~> 3*<1 <2 4>>"))
-- $ whenmod 4 3 (slice 4 ("0 1 2 3*4"))
$ loopAt 2 $ chop 8
$ n "20" # "jungle_breaks"
# pan 0.55
# midiG' "^84" 0 1.8
-- Study: Ableton Learning Music
-- https://learningmusic.ableton.com/chords/1-5-6-4.html
-- 1-5-6-4
let majPop = "<[d4,fs4,a4] [a3,cs4,e4] [b3,d4,fs4] [g3,b3,d4]>"
-- MAJOR POP!
do
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
let majPop = "<[d4,fs4,a4] [a3,cs4,e4] [b3,d4,fs4] [g3,b3,d4]>"
setcps (80/60/4)
d1 $ gF1 $ gM2
$ midiOn "^42" (<| "k k k [<k <~ k*2>> k]")
$ midiOff "^42" (<| "k . <~!3 k> ~ <~ k*2> k")
$ "[jazz,house,808bd:3]"
# midiG' "^78" 0 1.4
d2 $ gF1 $ gM $ "~ [h2ogmsn:0,h2ogmsn:3,snare:40]"
# pan 0.7
# midiG' "^79" 0 1.4
d3 $ gF1 $ gM $ "hh*[8 <8!3 16>]"
# midiG' "^80" 0 1.4
# pan 0.2
d4 $ gF2
-- $ (arp "up")
$ note (majPop)
-- $ note "<[a4,cs5,e5]>"
# "bassWarsaw"
# midiG' "^81" 0 1.4
# crushbus 41 (range 16 2.5 "^53")
# octersubbus 42 (range 0 2.5 "^33")
d8 $ gM $ gF3 $ loopAt 2
$ midiOn "^20" (# n "22")
$ midiOn "^92" (ply "<2 2 4 8>")
$ whenmod 4 3 (slice 4 (run 8)) $ chop 8
$ "jungle_breaks:42"
# midiG' "^84" 0 1.4
-- https://learningmusic.ableton.com/make-melodies/love-will-tear-us-apart.html
let loveTears = "<<e4!3 [e4 fs4 e4@6]> [fs4@2 g4 fs4@2 e4 d4@2] [b3@7 <d4 fs3>] a3>"
-- How is this melody put together?
--
-- This melody uses only notes in the scale of D major. But the melody starts with a long E, creating a sense of tension against the implied key that continues throughout the whole song.
--
-- Notice the shape (or contour) of the melody. At the beginning, it moves up and down the scale by adjacent notes. But at the end, it leaps from B up to D and then down to A. This contrast between stepwise and leapwise motion helps to make the melody strong and memorable.
-- Try making some of your own melodies that also use a contrast between steps and leaps.
--
let lineTourDeFrance1 = "<[f3@2 bf3 c4 f4@3 d4] [f4 g4 c4 d4 f4@2 bf4@2] <af4 c5>@2>"
let lineTourDeFrance2 = "<[g3@2 c4 d4 g4@3 e4] [g4 a4 d4 e4 g4@2 c5@2] <bf4 [bf4@2 ef5 c5@13]>@2>"
-- The first and second phrases are identical, with the exception of the final note. In the first phrase, the last two notes descend from B♭ to A♭, while in the second phrase, they ascend from B♭ to C. You can hear this as a sort of "question and answer" relationship; the first phrase sounds somehow incomplete, while the second phrase sounds like it serves to resolve the first.
--
--
let praxis = "<[~ d5 d4 e4 g4 a4 b4 d4] [e4 g4 a4 b4 <e4 g4>@4]>"
-- Prestance
do
setcps (134/60/4)
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
let praxis = "<[~ d5 d4 e4 g4 a4 b4 d4] [e4 g4 a4 b4 <e4 g4>@4]>"
d1 $ gF1 $ gM
$ midiOn "^42" (<| "k k k k")
$ midiOff "^42" (<| "k . k(<0!3 1 0 1 3 3>,8,<0!3 6>)")
$ "[jazz,808bd:3]"
# midiG' "^78" 0 1.4
d2 $ gF1
$ midiOn "^43" (<| "~ c ~ c")
$ midiOff "^43" (<| "~ <~ c>")
$ "cp"
# note "-2"
# midiG' "^78" 0 1.8
d3 $ gF1 $ gM
$ midiOn "^75" (loopAt 2 . (>| "jungle_breaks:35"))
$ midiOn "^43" (off 0.5 (ply "<1!3 2>"))
-- $ chop 8
$ midiOff "^75" (slice 8 "<0 1 2 3 [0 1] [1 2] [1 2] [1 2]>")
$ loopAt 2
$ "break:20"
# midiG' "^79" 0 1.4
d4 $ gF2 $ gM2 $ note "<[a2@2 ~ ~ a2 b2 ~ <~!1 <b2 e2>>] <e2 g2>>"
# "FMRhodes1" # cut 4
# modIndex 5
# room 0.2
# delay 0.8
# delayfb "<0.1!3 0.65>"
# delayt 0.125
# crushbus 41 (range 16 2.5 "^53")
# midiG' "^81" 0 1.6
d6 $ gF3 $ gM2
$ mask "<f!12 t!4>"
$ note praxis
# "bassWarsaw"
# modIndex 5
# midiG' "^17" 0 1.4
# pan 0.3
d7 $ gF3 $ gM2
$ mask "<t(10,16)!8 f(10,16)!8>"
$ note (praxis + 36)
# "prophet5pwmStrings"
# pan 0.9
# midiG' "^18" 0 1.4
d8 $ gF3 $ gM2
$ mask "<f(10,16)!8 t(10,16)!8>"
$ juxBy 0.3 (mask "t(3,8) . t(12,16)" . (|+ note 12))
$ note (rev praxis)
# "moogBass"
# modIndex 5
# pan 0.9
# midiG' "^19" 0 1
do
let loveTears = "<<e4!3 [e4 fs4 e4@6]> [fs4@2 g4 fs4@2 e4 d4@2] [b3@7 <d4 fs3>] a3>"
setcps (148/60/4)
d1 $ "<k!7 [k k*2] [k*4]!8>" # "jazz"
d2 $ fast "<1!7 [1 4] 2!3 [2 4] 2!3 4>" "~ snare:55"
d3 $ "[~ hh]*4"
d4
$ note (loveTears
+ "[0,12]")
# "[FMRhodes1]"
# gain 1.4
# pan 0.8
d5
$ mask "<t!4 f!4> t!12"
$ rev
-- $ mask "<f!8 t!8>"
$ note (loveTears
+ "[24]")
# "[FMRhodes2]"
# gain 1.2
# room 0.4 # sz 0.4
# pan 0.3
......@@ -48,3 +48,17 @@ d1
# sz 0.2
-- # midiG' "^79" 0 1.2
# gain 0.9
-- LOFI CHORDS FROM RANDOM WEB
d4 $ gF2
-- $ note "[c3,ef3,g3,as3,d4,f4]"
$ note "<[c3,f4] <[c3,as4] [b2,ef3]>>"
# "bassWarsaw"
# midiG' "^81" 0 1.2
d6 $ gF3
$ (superimpose (struct "t*8" . arp "down"))
$ note "<[c3,ef3,g3,as3,d4,f4] <[c3,f3,gs3,c4,ef4,g4,as4] [b2,ef3,f3,g3,b4,ef4]>>"
# "FMRhodes1"
# modIndex (range 0 16 "^54")
# midiG' "^82" 0 1.2
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment