Unverified Commit 1020205e by PLN

raph,lib,top_hats

parent 3981158b
Copyright Author name here (c) 2021
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Author name here nor the names of other
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
import Distribution.Simple
main = defaultMain
name: lib-parvagues
version: 0.2.1
-- synopsis:
-- description:
homepage: https://git.plnech.fr/Tidal
license: BSD3
license-file: LICENSE
author: ParVagues
maintainer: parvagues@plnech.fr
copyright: 2021 PLNech
category: Music
build-type: Simple
extra-source-files: README.md
cabal-version: >=1.10
library
hs-source-dirs: src
exposed-modules: Sound.Tidal.ParVagues.Control
build-depends: base >= 4.7 && < 5,
tidal
default-language: Haskell2010
default-extensions: OverloadedStrings
source-repository head
type: git
location: https://git.plnech.fr/Tidal/lib-parvagues/
module Sound.Tidal.ParVagues.Control (
midiOn,
midiOff,
midiNo,
midiDJF,
midiG,
midiG'
) where
import Sound.Tidal.Context
import Sound.Tidal.Scales
import Sound.Tidal.Chords
-- Midi boolean buttons
midiOn ch pat = someCyclesBy ch pat
midiOff ch pat = someCyclesBy (1 - ch) pat
midiNo c1 c2 pat = someCyclesBy (1 - c1 - c2) 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)
-- Midi gain control (faders)
_gainG ch gFactor = (gain (gf * "^77" * ch)) -- gain Global
midiG' ch l h
midiG
-- TODO Finir gain control
let gG a = (gain (gF * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
# This file was automatically generated by 'stack init'
#
# Some commonly used options have been documented as comments in this file.
# For advanced use and comprehensive documentation of the format, please see:
# https://docs.haskellstack.org/en/stable/yaml_configuration/
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
# A snapshot resolver dictates the compiler version and the set of packages
# to be used for project dependencies. For example:
#
# resolver: lts-3.5
# resolver: nightly-2015-09-21
# resolver: ghc-7.10.2
#
# The location of a snapshot can be provided as a file or url. Stack assumes
# a snapshot provided as a file might change, whereas a url resource does not.
#
# resolver: ./custom-snapshot.yaml
# resolver: https://example.com/snapshots/2018-01-01.yaml
resolver:
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/5.yaml
# User packages to be built.
# Various formats can be used as shown in the example below.
#
# packages:
# - some-directory
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
# subdirs:
# - auto-update
# - wai
packages:
- .
# Dependency packages to be pulled from upstream that are not in the resolver.
# These entries can reference officially published versions as well as
# forks / in-progress versions pinned to a git hash. For example:
#
# extra-deps:
# - acme-missiles-0.3
# - git: https://github.com/commercialhaskell/stack.git
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
#
# extra-deps: []
# Override default flag values for local packages and extra-deps
# flags: {}
# Extra package databases containing global packages
# extra-package-dbs: []
# Control whether we use the GHC we find on the path
# system-ghc: true
#
# Require a specific version of stack, using version ranges
# require-stack-version: -any # Default
# require-stack-version: ">=2.5"
#
# Override the architecture used by stack, especially useful on Windows
# arch: i386
# arch: x86_64
#
# Extra directories used by stack for building
# extra-include-dirs: [/path/to/dir]
# extra-lib-dirs: [/path/to/dir]
#
# Allow a newer minor version of GHC than the snapshot specifies
# compiler-check: newer-minor
......@@ -4,12 +4,6 @@ setcps 0
-- Tags: Breakbeat, gospel, funk
resetCycles
(* 2 (/ 4 8))
once $ "fbass"
once $ fast 4 $ "dr*4"
do
let gG a = (gain ("^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
......@@ -26,11 +20,10 @@ d1 $ g
$ whenmod 8 6 (# silence)
-- $ novaOn "^74" (mask "t(11,12)" . fast "<2!6 4 2>") -- Folie
$ novaOn "^42" (<| "k*<1!8 2!8> . k(<0 1 0 1 3 5 5 8>,8,<0!3 2>)") -- L'annonce
$ "k(<1 [1|2|5]>,8) . k(<3 5>,8)" -- Le classique
# "reverbkick"
$ novaOff "^42" (<| "k(<1 [1|2|5]>,8) . k(<3 5>,8)") -- Le classique
$ "reverbkick"
# room 0.2
# pan 0.4
# lpf ("<5!3 <2 0.5>>" * 1000)
# gM' 0.2 1.5 "^78"
d4 $ g -- BREAKBEAT
$ someCyclesBy "^74" -- Intro
......@@ -63,7 +56,7 @@ d3 $ g -- Metal drumroll
d5 -- Fragments of Wiley
$ (# lpf (range 5000 200 "^54"))
$ g
-- $ novaOn "^90" (chop 16)
$ novaOn "^90" (segment "<2 [2 4] [4 8] [16 32]>")
$ novaOn "^58" (slow 4)
$ "pray" -- TODO INTRO then /4
# crush (range 10 2.5 "^54")
......@@ -83,6 +76,5 @@ d7 $ g
$ whenmod 32 16 (whenmod 4 3 (ply "<2 3 [2 4] [3 2]>"))
$ whenmod 16 8 (every' 4 0 (off "-0.125" id))
$ s "~ clap"
# gain 0.75
# room 0.5 # size 0.4 # dry 0.95
# gM' 0 0.9 "^83"
# gM' 0 1.6 "^83"
-- Stolen choir variations
-- Accompagnement C#
do -- Break the Choir
-- region moogBass parameters
let cutoff = pF "cutoff"
......@@ -14,7 +14,7 @@ let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
let novaOn ch pat = someCyclesBy ch pat
let novaOff ch pat = someCyclesBy (1 - ch) pat
let gReverb = ((# room "^29") . (# sz (range 0 0.9 "^30")) . (# dry (range 0 2 "^13")))
aqlet gReverb = ((# room "^29") . (# sz (range 0 0.9 "^30")) . (# dry (range 0 2 "^13")))
let gLPF = (# lpf (min 10000 ((range 200 20400 ("^49")))))
let gHPF = (# hpf (max 0 (min 7500 ((range "-7500" 7500 ("^49"))))))
let gDJF = (gLPF . gHPF)
......
......@@ -7,14 +7,15 @@
do
-- region Nova Utils
let gG a = (gain ("^77" * a)) -- gain Global
let gFactor = 1.25
let gG a = (gain (gFactor * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
let gLPF = (# lpf (min 10000 ((range 200 20000 ("^49")))))
let gHPF = (# hpf (max 0 (min 7500 ((range "-7500" 7500 ("^49"))))))
let gDJF = (gLPF . gHPF)
let novaOn ch pat = (sometimesBy ch pat)
let novaOff ch pat = sometimesBy (1 - ch) (pat)
let novaOn ch pat = (someCyclesBy ch pat)
let novaOff ch pat = someCyclesBy (1 - ch) pat
-- endregion Nova Utils
let gDelayD = (# delay (range 0 5 "^13"))
let gDelayFB = (# delayfb (range 0 0.9 "^14"))
......@@ -33,7 +34,7 @@ d1
$ novaOn "^73" (<| "~ ~ k ~") -- 1D
$ novaOn "^74" (<| "k*2") -- 2D
$ novaOn "^75" (<| "k ~ ~ <~!3 k>. k ~ <~ k> <k ~>")-- RubADub+adjustements
$ novaOn "^41" (<| "k*4") -- 4F
$ novaOn "^41" (<| "k k k <k [<~ k> k]>") -- 4F
$ novaOff "^41" (<| "k . k <~ [<~ k> <k ~>]>")-- RubADub
$ "[jazz,tech:5]"
# room 0.05
......@@ -69,7 +70,7 @@ d4 $ g -- Bassline
# pan 0.6
# attack (range 0 1 "^53")
# crush (range 16 4 "^53")
# lpq (range 0 1 "^33")
# lpq (range 0 0.33 "^33")
# release 0.95
# orbit 1
# gM' 0.25 1.2 "^81"
......
......@@ -79,13 +79,10 @@ d6 $ g -- ABS BASS!
$ novaOn "^41" (mask "t*4 . <[t f t f] <f [f t]>>")
$ "abstract:1" # cut 6
# gain (range 0.2 0.95 "^84")
d7
d7 -- TODO: Retravaille guitare
$ chop 8
$ novaOn "^59" (loopAt 2 . mask "t(3,8)")
$ novaOff "^59" (loopAt 4)
$ "fguitar:25"
# gM' 0.35 1.6 "^83"
# cut 8
once $ "methbass:6" # cut 1 # gain 0.8
import Sound.Tidal.ParVagues.Control
do
let gF = 1.2
let gF = 1.3
let gG a = (gain (gF * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
......
import Sound.Tidal.ParVagues.Control
do
let pontH = (someCyclesBy "<0!32 1!8 0!24>" (# hpf (slow 8 $ range 0 500 saw)))
let pontL = (whenmod 16 12 (# lpf 2000))
let toPontL = (every' 16 11 (# lpf 5000))
let chords = "<c'min'2!4 c'maj'2!4>"
let prog = ("<cs5!4 a4 a4 b4 gs4>")
let chorus = pF "chorus"
let mix = pF "mix"
let modIndex = pF "modIndex" -- 0.2
let gG a = (gain (1.3 * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
let gDJF = midiDJF "^49" 200 10000 0 7500
let g = (gDJF)
d1 $ g
$ midiOn "^41" ( -- KICK RUN
((>| "[jazz,kick:5]*<4 4 4 [4!3 8] 4 4 2 <2 [2 8]>>") . (|* gain 0.5))
)
$ midiOff "^41" (<| "[k([1|<3!3 5 [3 8]>],8)]*<1!16 2!16>")
$ "hh27" # n "[5,6]"
# gM' 0 3 "^78"
d2 $ g -- Breathing snare contretemps
$ midiOn "^43" (fast "<2 2 2 2 4 2 2 4 4>")
$ "hh27:2 hh27:7"
# room 0.6 # sz 0.7 # dry (slow 20 $ range 0 2 perlin)
# gM' 0.5 1.5 "^79"
d3
$ g
$ whenmod 16 8 (often $ fast 2)
$ someCyclesBy "<1!16 0!16>" (often $ slow "2!3 1")
$ "hh27*8"
# n "2 <2 <[2|9] [9 <9 ~> <~ 9> 2]>>"
# gM' 0.5 1.75 "^80"
d4
$ g
$ midiOn "^58" (superimpose ( -- ARPS <3
(|+ note 12)
. sometimesBy "0 0.5!7" rev
. fast "1 2"
. arp "pinkyup"
. (|+ pan 0.1)
. (|* gain 1.25)
))
$ note ((
"<0 ~> 0"
+ prog
+ "0 -12"
- "12" -- Octave
))
# "FMRhodes1"
# modIndex "[0,5,10]"
# pan 0.6
# crush (range 10 4 "^54")
# gM' 0.3 1.5 "^82"
d5 $ g -- Choirs + arps
$ juxBy "-0.7" (
arp "<up <up down>>"
. (|+| note "[0,7,12]*2")
. (|* gain 0.85)
. (# lpf 2000)
)
$ "moogBass"
# note prog
# octave 3
# gain 0.75
# pan 0.2
# chorus 0.6
d6 $ g -- Guitar riffs
$ whenmod 16 12 (off "h" (
chop 4
. (# cut 61)
))
$ slice 4 (
whenmod 16 8 (+| "0 0")
"<0!4 1 1 2 3>"
)
$ note 2 -- correction
# "punk"
# cut 6
# attack (range 0.5 1 "^17")
# crush (range 12 3.5 "^53")
# lpq (range 0 0.5 "^33")
# pan 0.9
# room 0.3
# sz 0.9
# gM' 0.4 1.5 "^81"
d8 $ g
$ midiOn "^59" (
(# lpf 2000)
. (# crush (range 16 5 "^55"))
. (# lpq (slow 16 $ range 0 0.15 perlin))
)
$ midiOn "^91" (segment "4 <4 <8 [8 16]>>")
$ note (prog + "0 12")
# "moog"
# cut 8
# gM' 0 1.5 "^83"
# release 100
d9 $ g $ "~ clap" # note (-8) # gM' 0 1.5 "^84"
once $ "hh27:0" -- Drum metal echo
# gain 1.5
once $ "hh27:1" -- Ho lo
once $ "hh27:7" -- Ho hi
once $ "hh27:10" -- Ho hi soft
once $ "hh27:2" -- Maracas fermées
once $ "hh27:9" -- Maracas fermées lo
once $ "hh27:3" -- Maracas ouvertes / balai
once $ "hh27:8" -- Same plus aigu
once $ "hh27:4" -- Clochettes
once $ "hh27:5" -- Kick neige
once $ "hh27:6" -- Kick sec
once $ "hh27:12" -- Snare lo
once $ "hh27:11" -- Snare hi
......@@ -16,7 +16,7 @@ once $ "dr" # gain 0.8
do
-- region Nova Utils
let gF = 1 -- gain factor
let gF = 1.3 -- gain factor
let gG a = (gain (gF * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
......
......@@ -2,20 +2,23 @@ once $ "space" # gain 0.4
do
-- region Nova Utils
let gG a = (gain ("^77" * a)) -- gain Global
let gF = 1.5
let gG a = (gain (gF * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
let gDelay = ((# delay 0.125) . (# delayfb (range 0 0.8 "^13")))
let gLPF = (# lpf (min 10000 ((range 200 19800 ("^49")))))
let gHPF = (# hpf (max 0 (min 10000 ((range "-9000" 9000 ("^49"))))))
let gDJF = (gLPF . gHPF)
let gCPS = (# cps ((range 60 124 "^13")/60/4))
-- let bpm = ("^13")
-- endregion Nova Utils
let g = id
let g = gDJF
setcps (92/60/4)
-- setcps (92/60/4)
-- setcps 0.5
-- resetCycles
d1 $ "k . <k k(<3 5>,8)>" # "reverbkick"
d1 $ g $ gCPS $ "k . <k k(<3 5>,8)>" # "reverbkick"
# lpf 1000
# gM' 0 1.4 "^78"
# cps ((range 1 127 "^13")/60/4)
......@@ -26,7 +29,7 @@ d2 $ g -- Break slow downtempo
(slice 8 "0 1 4 3")
$ someCyclesBy "^76" -- Fulltime!
(slice 8 "0 1 2 <3!2 ~ 3> 4 5 6 7*<1 <2 4>>")
$ splice 8 ("0 1 2 1 3 <5!3 3> 2 <3 1>")
$ slice 8 ("0 1 2 1 3 <5!3 3> 2 <3 1>")
$ "breaks125:4"
# gM' 0 1.4 "^79"
d3 -- Drumroll Zelda
......@@ -34,7 +37,7 @@ d3 -- Drumroll Zelda
$ "d*2 . ~ d*<1!3 2> d*2 d*2"
# "[drum:2,tech:13]"
# gM' 0.2 1.4 "^80"
d4
d4 $ g
$ note ("<c4 bf3 af3 g3>")
# "supersaw"
# voice 0.1
......
......@@ -44,7 +44,7 @@ $ jux id
$ note (slowcat (take 3 (repeat patGuitar) ++ [patGuitarAlt])
+ chordsBass )
# s "pluck"
# gain 0.6
# gain 0.85
d5 -- guitare disco LA
......
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