-- | Basic types and functions. -- -- Example (a concert A) -- -- > module Main where -- > -- > import Csound.Base -- > -- > osc :: Sig -> Sig -- > osc phs = oscil1 1 phs (genHigh 10 [1]) -- > -- > instr :: D -> Out -- > instr pch = out $ 0.5 * (osc $ kr pch) -- > -- > res = score instr [(0, 1, 440)] -- > -- > main :: IO () -- > main = writeFile "tmp.csd" $ renderCsd [res] -- -- Now you can invoke Csound on tmp.csd and listen to the result with your favourite player. -- -- > csound tmp.csd -o a.wav module Csound.Base( -- * Types Val, -- ** Constants -- | A constant value doesn't change while instrument is playing a note. -- Only constants can be passed as arguments to the instruments. D, I, Tab, Str, withInits, -- ** Signals -- | Signals can be audio or control rate. Rate is derived from the code. -- If there are rate-collisions, values will be converted to the right rates. -- For example, if you are trying to apply an opcode that expects control -- rate signal to some audio rate signal, the signal will be downsampled behind the scenes. Sig, BoolSig, Spec, module Data.Boolean, -- ** Side effects SE, -- ** Tuples CsdTuple, -- ** Converters ToSig(..), ir, int, double, str, -- * Making a sound -- | Let's make some noise. Sound is build from list of tracks ("SigOut"). Out, SigOut, effect, out, outs, -- ** Scores -- | We can define an instrument and tell it to play some notes. score, Arg(..), ArgMethods, makeArgMethods, -- ** Midi -- | We can define a midi-instrument. Then we can trigger the instrument with a midi-keyboard. Msg, massign, pgmassign, -- ** Rendering -- | Now we are ready to create a csound-file. The function "renderCsd" creates a 'String' that -- contains the description of our music. We can save it to a file and compile it with our @csound@ -- wizard. renderCsd, -- ** Opcodes -- | Some colors to paint our soundscapes. module Csound.Opcode, -- ** Options -- | We can set some csound options. renderCsdBy, Channel, CtrlId, CsdOptions(..), module Data.Default, mixing, mixingBy ) where import Data.Default import Data.Boolean import Csound.Exp import Csound.Exp.Cons import Csound.Exp.Wrapper import Csound.Opcode import Csound.Exp.Numeric import Csound.Exp.Logic import Csound.Render.Sco import Csound.Render.Options import Csound.Render