module Csound.Exp.Options where
import Data.Default
import Csound.Tab(TabFi, fineFi, idSegs, idExps, idConsts)
type CtrlId = Int
type Channel = Int
data CsdOptions = CsdOptions
{ flags :: String
, sampleRate :: Int
, blockSize :: Int
, seed :: Maybe Int
, initc7 :: [(Channel, CtrlId, Double)]
, tabFi :: TabFi
}
instance Default CsdOptions where
def = CsdOptions
{ flags = "-d"
, sampleRate = 44100
, blockSize = 64
, seed = Nothing
, initc7 = []
, tabFi = fineFi 13 [(idSegs, 10), (idExps, 10), (idConsts, 8)] }
data MidiType = Massign | Pgmassign (Maybe Int)
data MidiAssign = MidiAssign
{ midiAssignType :: MidiType
, midiAssignChannel :: Channel
, midiAssignInstr :: Int }