Commit aad1dd0d by PLN (Algolia)

live: looper to reboot / re:last one

parent 60e430c4
......@@ -11,9 +11,9 @@ d1 -- Snare
$ "k k k <<k ~> k>"
-- $ "k . k"
# "[jazz,cpu]"
# midiG' 0 0.8 "^78"
# midiG' "^78" 0 0.9
d2 -- Snare
$ midiOn "^41" (fast 8)
$ midiOn "^41" (fast 4)
$ g
$ midiOff "^41" (slow "<2!16 1!16>" )
$ "~ [snare:20,clap]"
......@@ -62,7 +62,7 @@ d6 $ g
# modIndex "[0,5]"
# "FMRhodes1"
# crush (range 10 4.8 "^54")
# midiG' "^82" 0 1.4\
# midiG' "^82" 0 1.4
d7 $ g
-- $ slice 8 ("7*4")
$ note "<<c'min c'six> c'min7>"
......@@ -76,3 +76,5 @@ d8 $ g -- Da Bogdan MOFO
# crush (slow 16 $ range 16 2.5 perlin)
# cut 8
# gain "^56"
once $ "dr" # gain 1
......@@ -7,13 +7,13 @@
do
-- region Nova Utils
let gFactor = 1.45
let gFactor = 2
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 gLPF = (# lpf (min 10000 ((range 200 20000 ("^49")))))
-- let gHPF = (# hpf (max 0 (min 7500 ((range "-7500" 7500 ("^49"))))))
let gDJF = (# djfbus 1 (range 0.05 0.95 "^49"))
let novaOn ch pat = someCyclesBy ch pat
let novaOff ch pat = someCyclesBy (1 - ch) pat
-- endregion Nova Utils
......@@ -42,26 +42,25 @@ d1
d2
$ g -- Snare
$ (|- lpf 1000)
$ (|/ lpf 2)
$ novaOn "^43" (|<| "s*4")
$ "~ <~!7 s> ~ ~ . s"
# "[snare:50,snare:4]"
# orbit 1
# gM' 0.2 0.9 "^79"
# gM' 0.2 1.3 "^79"
d3 $ g -- Hats
$ novaOn ("^76") (slice 8 (run 8) . (loopAt 1) . (>| "breaks165"))
$ every' 4 3 (
sometimesBy "0 . 1 0!3" ((# "ho:2") . (|* gain 0.9))
. sometimesBy "0 . 0 1 0 0" (|* gain 0)
)
$ novaOn ("^76") (slice 8 (run 8) . (loopAt 1) . (>| "breaks165"))
$ novaOn ("^44") (degradeBy (slow 4 $ range 0.9 0 saw) . (<|"h*16")) -- TODO Eclaircir
$ novaOff ("^44") (<| "h*[8 . 8 <8 16 32 4>]")
$ (|* gain "[1 0.9]*4") -- make sure that you reduce the velocity of the second Hi Hat hit
$ (|* gain "[1 0.9]*4") -- make sure that you reduce the velocity of the jjjjjjjjjjjjjjj Hi Hat hit
$ s "gretsch:4"
-- # pan "^52"
# cut 3
# orbit 1
# gM' 0.2 1.8 "^80"
# gM' 0.2 1.25 "^80"
d4 $ g -- Bassline
$ novaOn "^57" (>| note "[~ a4] <a4 e e a4> [~ <a4 c>] <a4 e>") -- Naif
$ novaOff "^57" (>| note "<[~ a4@1.5 . a4 a4 e c] [e e . b4*<1 <2 4>>]>") -- simple+adjustements
......@@ -110,7 +109,7 @@ d8 -- Trompette lancinante
$ degradeBy "^35"
$ novaOn "^59" (mask "<f!3 t>")
$ superimpose ((|- note 12) . (# cut 81) . (|* gain 0.95))
$ note ("<g [<a d> bf d ~]> <g [~ g a]>" + "0 <12 0>"
$ note ("<g [<a d> bf d ~]> <g [~ g a]>" + "0 <12 0>"
- 12)
# "brass" # n "2"
# gM' 0.2 1 "^55"
......
......@@ -19,7 +19,6 @@ do
let g = gDJF . gFreqs
d1
$ g -- Beat
$ fast 2
$ midiOn "^41" (<| "k k k k")
$ midiOn "^42" (<| "k . k <~ [<~ k> <k ~>]>")-- RubADub
$ midiNo "^41" "^42" (<| "<k <k*2 k(3,8)>>")
......
......@@ -61,7 +61,8 @@ d5 $ g
d11 $ gAcc
$ sometimesBy "0 0.75" (off "q" (|* gain 0.95))
$ slice 8 "<[0 1] [2 3] [0 3] [2 3]>"
$ "fbass:1" # gain 1.4
$ "fbass:1"
# gain 1.4
# pan 0.7
# cut 11 -- Company funky
......
import Sound.Tidal.ParVagues.Control
-- Dark Money: Downtempo dark minor LoFi
do
setcps (60/60/4)
......
import Sound.Tidal.ParVagues.Control
-- Reboot: From Dark Money to motivating beats
do
setcps (80/60/4)
let whenIntro pat = someCyclesBy "<t!8 f!24>" pat
let whenNotIntro pat = someCyclesBy "<f!8 t!24>" pat
let whenBrk pat = whenmod 16 10 pat
let whenNotBrk pat = someCyclesBy "<t!10 f!6>" pat
let whenBrkLPF = whenBrk (# lpf "<400 200 100 50 0 0>")
let gDJF = (# djfbus 1 (range 0.05 0.95 "^49"))
let g = (gDJF)
d1 $ g -- Kick
$ whenBrkLPF
$ whenNotBrk (# sz "<0.8 0.9 0.95 0.99>")
$ midiOn "^41" (<| "k*4 . [k k] <k k*2 k [~ k]>")
$ midiOff "^41" (<| "k . k(<3 <5!3 [5 8]>>,8,<0!5 3 0 3>)")
$ "[reverbkick,jazz]"
# midiG' "^78" 0 1.1
d2 $ g -- Contretemps snare
$ whenBrkLPF
$ "~ s ~ <~!4 s!12>"
# "snare" # n "[40,52]"
# note (-4)
# midiG' "^79" 0 1.1
d3 $ g -- Drumroll fantôme
$ whenBrk (slow "<2 2 4 4 8 8 16 16>")
$ midiOn "^44" (fast "4 2")
$ "d*<4 4 8 [4 . <4 16> 16]>" # "[drum:2,cpu:2]"
# room 0.6 # sz 0.9 # dry 1.01
# midiG' "^80" 0 1.2
d4 $ g -- A slice of bass
$ midiOn "^89" (chop 8)
$ slice 4 "<0 0 [0 1] 3 0*2 [0 1] [3 2] [3*2 3*<2 4>]>"
-- $ slice 4 "<0!8 1!8 2!8 3!8>*<1!4 2 1 2 4>"
$ "fbass:8"
# midiG' "^81" 0 1.4
# crushbus 41 (range 8 2.9 "^53")
# room 0.2
# pan 0.2
# cut 4
d5 $ g -- Climbing guitar
$ superimpose (
slice 4 "0*<1 2 1 <2 4>>" .
(# cut 51) . (|+ note 12)
. (|* gain (range 0.5 1.5 "^34"))
)
$ slice 4 (
(whenmod 8 4 (fast 4)) $
"<0 1 2 3>"
)
$ "fguitar:11"
# cut 5
# pan 0.4
# midiG' "^82" 0 1
# crushbus 51 (range 8 1.9 "^54")
d6 $ g -- Glitchy piano!
$ whenmod 8 4 (someCyclesBy "0 1 . <0 0.25 0.5 1>" rev)
$ midiOn "^59" (slice 8 $ "0 1(<1 3 5 <2 4 8>>,8) 2 3*2" + "<0!8 4!8>")
$ midiOff "^59" (slice 8 $ "0 1 2 3*2" + "<0!8 4!8>")
$ "fpiano:11"
# cut 6
# pan 0.4
# midiG' "^83" 0 1
d7 $ g -- Sirene
$ note (
slow 8
$ arpeggiate
$ "d3'min'4" + "<0!8 12!8>"
)
# "supersiren"
# room 0.3 # sz 0.6
# midiG' "^84" 0 0.7
# crushbus 71 (range 8 0.9 "^56")
# cut 7
import Sound.Tidal.ParVagues.Control
linput = pI "linput"
lname = pS "lname"
once $ qtrigger 1 $ "looper" # n "<0 1 2 3>" # lname "mojo"
do
setcps (122/60/4)
d1 $ "jazz*4" # gain 0.9
-- Hello Parov!
d10 $ "mojo:5"
# gain 1.8
-- Hello Rhodes
do
let gDJF = (# djfbus 1 (range 0.05 0.95 "^49"))
let g = gDJF
setcps (120/60/4)
d1
$ g
$ midiOn "^41" (<| "k*4")
$ midiOff "^41" (<| "k <k!7 [~ k]>")
$ "jazz"
# midiG "^78"
d2 $ g
$ "~ cp"
# midiG "^79"
d3 $ g
$ fast ( -- cycle/4 ralenti-accelere
slow 4 $ "<1 [0.5 2] [2 0.5 1 2] [1 0.5 2]>"
)
$ s "dr*8"
# s "ifdrums:1"
# pan 0.4
# midiG' "^80" 0 1.1
d4 $ g -- bassine
$ whenmod 16 8 (slice 16 (run 8))
$ "loop" # n "<0!4 1!4>"
# midiG' "^81" 0 0.8
# pan 0.2
# crushbus 41 (range 10 1.5 "^53")
d5 $ g -- Looped Rhodes
$ "loop" # n "<3!3 4 3 4 4 5>"
# pan 0.8
# midiG' "^82" 0 1
# pan 0.75
# ampbus 101 (range 0.5 1.5 "^54")
# room 0.6 # dry 0.8
d6 $ g --
$ "hello"
# n "<0 1 2 3>"
# midiG' "^82" 0 0.8
# pan 0.65
# ampbus 101 (range 0.5 1.5 "^34")
d2 $ s "looper" # n "<0 1 2 3 4 5 6 7>"
......@@ -29,7 +29,7 @@ d2 $ g -- Clave de l'été
$ "d ~ ~ d d ~ d <~!3 d>"
# "snare:22" # gM' 0 1.4 "^79"
# speed (range 0.5 1.5 "^51")
d4 $ g
d4 $ g -- Mecano Course
$ fast 4
$ midiOn "^44" (slice 16 ("0*<1 2> 1 2 3*<2 1>") . (>| "breaks125"))
$ midiOn "^76" (slice 8 "0 <1 ~> 7 3*<1 2 4 4>")
......
import Sound.Tidal.ParVagues.Control
linput = pI "linput"
lname = pS "lname"
once $ qtrigger 1 $ "looper" # n "<0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>" # lname "mojo"
do
setcps (122/60/4)
d1 $ "jazz*4" # gain 0.9
-- Hello Parov!
d10 $ "mojo:5"
# gain 1.2
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.2 * "^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 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gFreqL = (# lpq (range 0 0.25 "^29"))
let gFreqH = (# hpq (range 0 0.25 "^30"))
let gFreqs = (gFreqH . gFreqL)
let g = (gDJF . gFreqs)
setcps 0.5
d1 $ g
$ midiOn "^41" ( -- KICK RUN
((>| "[reverbkick,kick:5]*<4 4 4 [4!3 8] 4 4 2 <2 [2 8]>>")
. (|* gain 0.8)
)
)
$ midiOff "^41" (<| "[k([1|<3!3 5 [3 8]>],8)]*<1!16 2!16>")
$ "jazz"
# midiG' "^78" 0 1.4
d2 $ g -- Breathing snare contretemps
-- $ midiOn "^43" (fast "<2 2 2 2 4 2 2 4 4>")
$ "[hh27:2 hh27:7,~ snare:30]"
# room 0.6 # sz 0.7 # dry (slow 20 $ range 0 2 perlin)
# midiG' "^79" 0.5 1
d3 -- Runny Maracas
$ g
$ whenmod 16 8 (often $ fast 2)
$ someCyclesBy "<1!16 0!16>" (often $ slow "2!3 1")
$ fix ((|* gain 0.9) . (# release 0.8)) (n 9)
$ "hh27*8"
# n "2 <2 <[2|9] [9 <9 ~> <~ 9> 2]>>"
# midiG' "^80" 0.5 1.17
d6 $ g -- Hello Parov! Piano
$ n "3"
|>| note (
"0 <7 12>*<1 2 4 1>"
)
-- |>| n "3 [4 ~]"
# "mojo"
# cut 6
# midiG' "^81" 0.5 1.5
d7 $ g -- Hello Parov! Piano2
$ midiOn "^58" (|+| n ("0*<1!4 2!3 4 4 4 8 16>"
))
$ "mojo" # n "<6 7>"
# cut 7
-- # begin "0.15"
# pan 0.8
# midiG' "^82" 0.5 1.5
......@@ -7,24 +7,23 @@ let midiOn ch pat = someCyclesBy ch pat
let midiOff ch pat = someCyclesBy (1 - ch) pat
let midiNo c1 c2 pat = someCyclesBy (1 - c1 - c2) pat
let gDJF = (# djfbus 1 (range 0.1 0.9 "^49"))
let gDJFb = (# djfbus 1 (range 0.3 0.7 "^49"))
let gLPQ = (# lpqbus 4 (range 0 0.5 "^13"))
let gHPQ = (# hpqbus 5 (range 0 0.5 "^14"))
let gRoom = (# roombus 6 (range 0 0.5 "^14"))
let gRoom = (# roombus 6 (range 0 0.5 "^15"))
let g = gDJF
setcps (110/60/4)
let prog = "<c6'maj7'2 <g6'maj'2 g6'maj> d6'm9 <g6'maj g6'maj'4>>"
-- let prog = "<d6'm9 g6'maj'4>"
let progm = "<<c c e e> d e <d g>>"
d1 $ g
$ midiOn "^41" (<| "k*4")
$ midiOff "^41" (<| "k k")
$ midiOn "^41" (<| "k k k <k k*2 [~ k] k*2>")
$ midiOff "^41" (<| "k . k <~ [<~ k> <k ~>]>")-- RubADub
$ "jazz"
# midiG' "^78" 0 1.8
d2 $ g
$ whenmod 8 4 (ply "1 <1 2 1 1> <2 1 1 2> <1 1 2 1>")
$ midiOn "^43" (fast 2)
$ "~ s ~ s" # "sn" # n "[1,10]"
$ "~ s ~ <s!3 ~>" # "sn" # n "[1,10]"
# midiG' "^79" 0 1.6
d3 $ g
$ midiOn "^76" (fast 2)
......@@ -52,7 +51,7 @@ d5 $ g
))
$ note (prog - 12)
# "moog:2"
# midiG' "^82" 0 1.2
# midiG' "^82" 0.3 1
# attack 0.8
# room 0.4 # sz 0.9
d6
......@@ -61,6 +60,7 @@ d6
$ "fguitar" # n "<34!32 35!16 34!16>"
# midiG' "^83" 0 1.4
# crushbus 60 (range 10 2.85 "^55")
# pan 0.65
# cut 6
d7 $ g
$ midiOn "^60" (mask "t([4 <8 8 4 8>],16)")
......@@ -80,13 +80,12 @@ d7 $ g
# pan "<0.7!7 0.3>"
# midiG' "^84" 0 (1.5 * "^20")
d8 $ g
$ midiOn "^60" (off "q" (# n 11) . (|* gain 0.95))
$ note (
struct "t(5,8)"
$ arpeggiate
$ prog
-- + "<0 0 10 0> <7 12>"
-- + "0 . [0!3 ~] 0*<1!7 2>"
struct "t . t(<1!4 3!4 [5 3]!4 5!4>,8,<0!3 4>)"
$ arp "pinkyup <updown downup>"
$ (fast 2 $ prog)
)
# "cbow:10"
# "cbow" # n "[9,<~!4 10!4>]"
# pan "<0.3!7 0.7>"
# midiG' "^84" 0 1
import Sound.Tidal.ParVagues.Control
once $ "dr"
do
setcps (152/60/4)
let gDJF = (# djfbus 1 (range 0.05 0.95 "^49"))
let slowdown = (midiOff "^41" (slow 2))
let g = gDJF
d1 $ g
$ slowdown
$ midiOn "^42" (<| "k*<1!4 2 1!3> k k*<1!3 2> k*2") -- FULL
$ midiOff "^42" (<| "k . k(<3 1 3 5>,8)") -- Attente
$ midiOn "^74" (<| "k*[<8!7 16> <8!3 16>]") -- Transition
$ "[super808,jazz]"
# midiG "^78"
# room 0.85 # dry 0.98 # sz 0.8
d2 $ g
$ slowdown
$ "hh*[<16!4 8 8 16 16> . 8 16]"
# note "0 2 0 <2 3 2 -1>"
# midiG' 0.5 1.5 "^80"
d10
$ "~ s ~ s*<0!8 1!3 2 1 1 2 [2 4]>"
# "snare"
# n "[10,12]"
# midiG "^79"
d3 $ g -- Bassline + arps
$ midiOn "^57" (superimpose (
(|+| note (
"0 [12 <12 7>]*<2!4 2 4 4 8>" +
"12" -- Base
))
. (# cut 31)
. (|* gain 0.8)
))
$ slice 8 ("<0!4 1!4>")
$ "poesieSynth:2/4"
# midiG' "^81" 0 1.2
# cut 3
# pan 0.2
# room 0.13
# crushbus 31 (range 10 1.5 "^53")
d4 $ g -- Synth disto baseline
$ "poesieSynth/2"
# n (slow 4 "<0 1>")
# midiG' "^82" 0 0.85
# crushbus 41 (range 10 3.5 "^54")
# cut 4
# pan 0.8
# room 0.4
d5 $ g -- Riff guitaresque
$ whenmod 32 24 (mask "t f!7")
$ whenmod 32 16 ( mask "t f")
$ superimpose (
mask "f t"
. (|+ note 12)
. (# cut 41)
. (|* gain 0.75)
)
$ note ("0 1@2 ~ <4!3 8>*<1!4 2!3 1>")
# "poesieBass:1"
# cut 4
# crushbus 51 (range 10 1.5 "^55")
# pan 0.7
# midiG "^83"
d8 -- Voices
$ g
$ someCyclesBy "<f!16 t!16>" (
slice 16 (cat [
"10 10(3,8)",
"10 11 10 11",
"10 10(3,8)",
"10 11 9 12"
]))
$ someCyclesBy "<t!16 f!16>" (slice 16 (cat [
"0", "0*2", "0", "0 . 1",
"0*4", "0", "0 1 0 1", "0 1 2 3"
]) )
$ loopAt 4
$ "poesieVoice:1"
# midiG' "^84" 0 0.75
# crushbus 81 (range 5 1.5 "^56")
# distortbus 82 (range 1 2 "^36")
# pan "0.25 0.75"
# room 0.4
# cut 8
import Sound.Tidal.ParVagues.Control
--
do
let gF = midiDJF "^49" 200 9800 0 2000
let gLeslie = ((# leslie "^29") . (# lsize (range 0 2.5 "^30")) .(# lrate 6.7))
let linput = pI "linput"
let lname = pS "lname"
let g = gF . gLeslie
setcps (120/60/4)
d1 $ g
$ midiOff "^41" (mask "<f f [t f] t t!28>")
$ midiOn "^41" (<| "k*4" )
$ midiOff "^41" (<| "k [~!6 <k!3 ~>] . k*2 ~" )
$ "[jazz,bd]"
# midiG' "^78" 0 0.75
d2 $ g
$ fast "<0!4 0 [0 1] 1 1 0 [0 1] 1 1 [1 2] 1 2 4>"
$ "~ s ~ s"
# "h2ogmsn:6"
# midiG' "^79" 0 1.3
d3 $ "lJazzP"
# n "<0 1 2 3 4 5 6 7>"
# midiG' "^81" 0 1.2
# cut 3
once $ "lJazz"
d3 -- Dubbed midi!
$ qtrigger 1
$ midiOn "^57" (midiOn "^89" (superimpose (# "olooper")))
$ midiOff "^57" (midiOn "^89" (superimpose (# "looper")))
$ "loop"
resetCycles
do
d1 $ qtrigger 1 $ "looper" # n "<0 1 2 3 5 6 7>" # lname "lJazzP"
d2 $ "dr*4" # gain 0.8
d3 $ "jazz" # gain 0.85
d4 $ "<~!7 cp>" # gain 0.8
once $ "freeLoops"
once $ "lDrill:5" # begin 0.05 # end 0.25
# cut 3 -- Je deviens haineux
once
$ "lBlues"
# gain 1.1 # cut 1
-- OVERDUB!
d1
# gain 0.8
d1
$ n "[0,[~ 2*<1!3 2>]*2]" # "cpu2" # gain 1
once $ "dr"
setcps (110/60/4) -- James
once $ s "loop" -- writes one cycle to the loop buffer and uses the input port 0 and the sample number 0
do
let linput = pI "linput"
let lname = pS "lname"
d1 $ "dr*4" # gain 0.5
d2 $ "looper*4" # n "<0 1 2 3 4 5 6 7>" # cut 2
-- d2 $ "loop" # n "<0 1 2 3 4 5 6 7>" # cut 2
once
$ n "5 6"
# "lJames"
# cut 4
once $ "looper" # lname "lEITS"
resetCycles
do -- Looper named loop
setcps (30/60/4) -- Slow sampling
let linput = pI "linput"
let lname = pS "lname"
d1
$ s "looper" # n "<0 1 2 3 4 5 6 7>"
# lname "lEITS"
d2 $ stut 4 0.5 "q" $ s "arpy" # n "<0 1 2 3 4 5 6 7>" # gain 0.5
do
setcps (100/60/4)
d1 $ "k(3,8)" # "jazz" # gain 0.5
d2 $ "hh*8"
# gain 0.45
# room 0.4
# dry 0.99
d3
$ n "<[1 1*[1|2] <1 6> 1?] [<1 1 3 3> <2!3 4>]>"
# s "lEITS"
# cut 3
# gain 1.3
# pan 0.8
d1 $ "jazz*4" # gain 0.8
once
$ "lEITS:1"
# gain 1.2
# cut 1
-- DRILL
do
setcps (120/60/4)
d1
$ "k . k(<3!3 <1 5>>,8)"
# "jazz" # gain 0.7
d2 $ mask "<f!4 t!12>"
$ "~ snare" # gain 0.7
d2 $ "lDrill:3" -- aaAa
# begin 0 # end 0.75
# cut 3 -- Je deviens haineux
once $ "lDrill:5" # begin 0.05 # end 0.25
# cut 3 -- Je deviens haineux
once
$ "lDrill:1"
# gain 1.1 # cut 1
resetCycles
do -- Looper named loop
setcps (30/60/4) -- Slow sampling
let linput = pI "linput"
let lname = pS "lname"
d1
$ s "looper" # n "<0 1 2 3 4 5 6 7>"
# lname "lDrill"
d2 $ stut 4 0.5 "q" $ s "arpy" # n "<0 1 2 3 4 5 6 7>" # gain 0.75
do
setcps (100/60/4)
d1 $ "k(3,8)" # "jazz" # gain 0.5
d2 $ "hh*8"
# gain 0.45
# room 0.4
# dry 0.99
d3
-- $ n "<[1 1*[1|2] <1 6> 1?] [<1 1 3 3> <2!3 4>]>"
$ n (run 8)
# s "lDrill"
# cut 3
# gain 1.3
# pan 0.8
do
d1
$ often (slow 4) $ "loop*[4 [4|8|16]]"
# gain 1.2 # cut 1
# begin (perlin/4)
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