-- Copyright 2013 Evan Laforge
-- This program is distributed under the terms of the GNU General Public
-- License 3.0, see COPYING or http://www.gnu.org/licenses/gpl-3.0.txt

-- | Put your own local commands here and reload with @:r@.  You can also put
-- local imports, e.g.  import modules out of User.Elaforge.Instrument to get
-- at per-instrument allocations.
module User.Elaforge.Repl where
import qualified Util.Log as Log
import qualified Cmd.Cmd as Cmd
import qualified Cmd.Repl.LInst as LInst


test_cmd :: Cmd.CmdL ()
test_cmd :: CmdL ()
test_cmd = forall (m :: * -> *). (Stack, LogMonad m) => Text -> m ()
Log.notice Text
"test command"


underwater :: CmdL ()
underwater = do
    let a :: Text -> Text -> Text -> [Channel1] -> CmdL ()
a = Text -> Text -> Text -> [Channel1] -> CmdL ()
LInst.add
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"marim" Text
"pianoteq/" Text
"loop1" [Channel1
0]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"bass" Text
"pianoteq/" Text
"loop1" [Channel1
1]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"lead" Text
"pianoteq/" Text
"loop1" [Channel1
2]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"synb" Text
"pianoteq/" Text
"loop1" [Channel1
3]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"pan" Text
"pianoteq/" Text
"loop1" [Channel1
4]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"wood" Text
"pianoteq/" Text
"loop1" [Channel1
5]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"pizz" Text
"pianoteq/" Text
"loop1" [Channel1
6]

    -- chords
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"maj" Text
"pianoteq/" Text
"loop3" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"min" Text
"pianoteq/" Text
"loop3" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"fmaj" Text
"pianoteq/" Text
"loop3" []
    -- sfx
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"rush1" Text
"pianoteq/" Text
"loop3" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"rush2" Text
"pianoteq/" Text
"loop3" []
    -- percussion
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"shake" Text
"pianoteq/" Text
"loop2" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"bd" Text
"pianoteq/" Text
"loop2" []

piano :: CmdL ()
piano = do
    let a :: Text -> CmdL ()
a Text
name = Text -> Text -> Text -> [Channel1] -> CmdL ()
LInst.add Text
name Text
"pianoteq/" Text
"loop1" [Channel1
0]
    Text -> CmdL ()
a Text
"pno"
    Text -> CmdL ()
a Text
"bass"
    Text -> CmdL ()
a Text
"glock"
    Text -> CmdL ()
a Text
"pipe"
    Text -> CmdL ()
a Text
"string"
    Text -> CmdL ()
a Text
"bell"

elektrodes :: CmdL ()
elektrodes = do
    let a :: Text -> Text -> Text -> [Channel1] -> CmdL ()
a = Text -> Text -> Text -> [Channel1] -> CmdL ()
LInst.add
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"elec" Text
"pianoteq/" Text
"loop1" [Channel1
0]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"bass" Text
"pianoteq/" Text
"loop1" [Channel1
1]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"syn" Text
"pianoteq/" Text
"loop1" [Channel1
2]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"pno" Text
"pianoteq/" Text
"loop1" [Channel1
3]
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"hit" Text
"pianoteq/" Text
"loop1" [Channel1
4]

    -- percussion
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"bd" Text
"pianoteq/" Text
"loop2" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"sn" Text
"pianoteq/" Text
"loop2" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"hh-c" Text
"pianoteq/" Text
"loop2" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"hh-o" Text
"pianoteq/" Text
"loop2" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"hh-m" Text
"pianoteq/" Text
"loop2" []
    Text -> Text -> Text -> [Channel1] -> CmdL ()
a Text
"tom" Text
"pianoteq/" Text
"loop2" []