csound-expression-4.1.0: library to make electronic music

Safe HaskellNone

Csound.Types

Contents

Description

The Csound types.

There are several primitive types:

  • Sig - signals
  • D - numbers
  • Str - strings
  • Tab - 1-dimensional arrays
  • Spec and Wspec - sound spectrums

A signal is a stream of numbers. Signals carry sound or time varied control values. Numbers are constants. 1-dimensional arrays contain some useful data which is calculated at the initial run of the program.

There is only one compound type. It's a tuple of Csound values. The empty tuple is signified with special type called Unit.

Synopsis

Primitive types

data Sig

Instances

Floating Sig 
Fractional Sig 
Num Sig 
Monoid Sig 
Tuple Sig 
Sigs Sig 
Val Sig 
SigOrD Sig 
OrdB Sig 
IfB Sig 
EqB Sig 
Default Sig 
AmpInstr Sig 
Outs Sig 
BindSig Sig 
SigSpace Sig 
RenderCsd Sig 
Fractional (SE (Sig, Sig)) 
Fractional (SE (Sig, Sig, Sig)) 
Fractional (SE (Sig, Sig, Sig, Sig)) 
Fractional (SE Sig) 
Num (SE (Sig, Sig)) 
Num (SE (Sig, Sig, Sig)) 
Num (SE (Sig, Sig, Sig, Sig)) 
Num (SE Sig) 
AmpInstr (SE (Sig, Sig)) 
AmpInstr (SE Sig) 
Outs (SE (Sig, Sig)) 
Outs (SE (Sig, Sig, Sig, Sig)) 
Outs (SE Sig) 
BindSig (SE (Sig, Sig)) 
BindSig (SE (Sig, Sig, Sig)) 
BindSig (SE (Sig, Sig, Sig, Sig)) 
BindSig (SE Sig) 
SigSpace (SE (Sig, Sig)) 
SigSpace (SE (Sig, Sig, Sig)) 
SigSpace (SE (Sig, Sig, Sig, Sig)) 
SigSpace (SE Sig) 
RenderCsd (SE ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig))) 
RenderCsd (SE (Sig, Sig)) 
RenderCsd (SE ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig))) 
RenderCsd (SE (Sig, Sig, Sig, Sig)) 
RenderCsd (SE (Sig, Sig, Sig, Sig, Sig, Sig)) 
RenderCsd (SE (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
RenderCsd (SE Sig) 
Fractional (a -> (Sig, Sig, Sig, Sig)) 
Fractional (a -> (Sig, Sig, Sig)) 
Fractional (a -> (Sig, Sig)) 
Fractional (a -> Sig) 
Fractional (a -> SE (Sig, Sig, Sig, Sig)) 
Fractional (a -> SE (Sig, Sig, Sig)) 
Fractional (a -> SE (Sig, Sig)) 
Fractional (a -> SE Sig) 
Fractional (Sig, Sig) 
Num (a -> SE (Sig, Sig, Sig, Sig)) 
Num (a -> SE (Sig, Sig, Sig)) 
Num (a -> SE (Sig, Sig)) 
Num (a -> SE Sig) 
Num (a -> (Sig, Sig, Sig, Sig)) 
Num (a -> (Sig, Sig, Sig)) 
Num (a -> (Sig, Sig)) 
Num (a -> Sig) 
Num (Sig, Sig) 
Sigs ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
Sigs (Sig, Sig) 
CpsInstr ((Sig, Sig) -> (Sig, Sig)) 
CpsInstr ((Sig, Sig) -> Sig) 
CpsInstr ((Sig, Sig) -> SE (Sig, Sig)) 
CpsInstr ((Sig, Sig) -> SE Sig) 
CpsInstr ((Sig, D) -> (Sig, Sig)) 
CpsInstr ((Sig, D) -> Sig) 
CpsInstr ((Sig, D) -> SE (Sig, Sig)) 
CpsInstr ((Sig, D) -> SE Sig) 
CpsInstr ((D, Sig) -> (Sig, Sig)) 
CpsInstr ((D, Sig) -> Sig) 
CpsInstr ((D, Sig) -> SE (Sig, Sig)) 
CpsInstr ((D, Sig) -> SE Sig) 
CpsInstr ((D, D) -> (Sig, Sig)) 
CpsInstr ((D, D) -> Sig) 
CpsInstr ((D, D) -> SE (Sig, Sig)) 
CpsInstr ((D, D) -> SE Sig) 
CpsInstr (Sig -> (Sig, Sig)) 
CpsInstr (Sig -> Sig) 
CpsInstr (Sig -> SE (Sig, Sig)) 
CpsInstr (Sig -> SE Sig) 
CpsInstr (D -> (Sig, Sig)) 
CpsInstr (D -> Sig) 
CpsInstr (D -> SE (Sig, Sig)) 
CpsInstr (D -> SE Sig) 
AmpInstr (Sig -> (Sig, Sig)) 
AmpInstr (Sig -> Sig) 
AmpInstr (Sig -> SE (Sig, Sig)) 
AmpInstr (Sig -> SE Sig) 
AmpInstr (D -> (Sig, Sig)) 
AmpInstr (D -> Sig) 
AmpInstr (D -> SE (Sig, Sig)) 
AmpInstr (D -> SE Sig) 
AmpInstr (Sig, Sig) 
MidiInstr ((Sig, Sig) -> (Sig, Sig)) 
MidiInstr ((Sig, Sig) -> (Sig, Sig, Sig)) 
MidiInstr ((Sig, Sig) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((Sig, Sig) -> Sig) 
MidiInstr ((Sig, Sig) -> SE (Sig, Sig)) 
MidiInstr ((Sig, Sig) -> SE (Sig, Sig, Sig)) 
MidiInstr ((Sig, Sig) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((Sig, Sig) -> SE Sig) 
MidiInstr ((Sig, D) -> (Sig, Sig)) 
MidiInstr ((Sig, D) -> (Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> Sig) 
MidiInstr ((Sig, D) -> SE (Sig, Sig)) 
MidiInstr ((Sig, D) -> SE (Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> SE Sig) 
MidiInstr ((D, Sig) -> (Sig, Sig)) 
MidiInstr ((D, Sig) -> (Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> Sig) 
MidiInstr ((D, Sig) -> SE (Sig, Sig)) 
MidiInstr ((D, Sig) -> SE (Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> SE Sig) 
MidiInstr ((D, D) -> (Sig, Sig)) 
MidiInstr ((D, D) -> (Sig, Sig, Sig)) 
MidiInstr ((D, D) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, D) -> Sig) 
MidiInstr ((D, D) -> SE (Sig, Sig)) 
MidiInstr ((D, D) -> SE (Sig, Sig, Sig)) 
MidiInstr ((D, D) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, D) -> SE Sig) 
MidiInstr (Sig -> (Sig, Sig)) 
MidiInstr (Sig -> (Sig, Sig, Sig)) 
MidiInstr (Sig -> (Sig, Sig, Sig, Sig)) 
MidiInstr (Sig -> Sig) 
MidiInstr (Sig -> SE (Sig, Sig)) 
MidiInstr (Sig -> SE (Sig, Sig, Sig)) 
MidiInstr (Sig -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr (Sig -> SE Sig) 
MidiInstr (D -> (Sig, Sig)) 
MidiInstr (D -> (Sig, Sig, Sig)) 
MidiInstr (D -> (Sig, Sig, Sig, Sig)) 
MidiInstr (D -> Sig) 
MidiInstr (D -> SE (Sig, Sig)) 
MidiInstr (D -> SE (Sig, Sig, Sig)) 
MidiInstr (D -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr (D -> SE Sig) 
MidiInstr (Msg -> (Sig, Sig)) 
MidiInstr (Msg -> (Sig, Sig, Sig)) 
MidiInstr (Msg -> (Sig, Sig, Sig, Sig)) 
MidiInstr (Msg -> Sig) 
MidiInstr (Msg -> SE (Sig, Sig)) 
MidiInstr (Msg -> SE (Sig, Sig, Sig)) 
MidiInstr (Msg -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr (Msg -> SE Sig) 
Outs (Sig, Sig) 
BindSig (Sig, Sig) 
SigSpace (Sig, Sig) 
RenderCsd ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
RenderCsd (Sig, Sig) 
Fractional (Sig, Sig, Sig) 
Num (Sig, Sig, Sig) 
BindSig (Sig, Sig, Sig) 
SigSpace (Sig, Sig, Sig) 
Fractional (Sig, Sig, Sig, Sig) 
Num (Sig, Sig, Sig, Sig) 
Sigs ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
Sigs (Sig, Sig, Sig, Sig) 
Outs (Sig, Sig, Sig, Sig) 
BindSig (Sig, Sig, Sig, Sig) 
SigSpace (Sig, Sig, Sig, Sig) 
RenderCsd ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
RenderCsd (Sig, Sig, Sig, Sig) 
Sigs (Sig, Sig, Sig, Sig, Sig, Sig) 
RenderCsd (Sig, Sig, Sig, Sig, Sig, Sig) 
Sigs (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) 
RenderCsd (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) 

data D

Instances

Floating D 
Fractional D 
Num D 
Monoid D 
Tuple D 
Arg D 
Val D 
SigOrD D 
OrdB D 
IfB D 
EqB D 
Default D 
CpsInstr ((Sig, D) -> (Sig, Sig)) 
CpsInstr ((Sig, D) -> Sig) 
CpsInstr ((Sig, D) -> SE (Sig, Sig)) 
CpsInstr ((Sig, D) -> SE Sig) 
CpsInstr ((D, Sig) -> (Sig, Sig)) 
CpsInstr ((D, Sig) -> Sig) 
CpsInstr ((D, Sig) -> SE (Sig, Sig)) 
CpsInstr ((D, Sig) -> SE Sig) 
CpsInstr ((D, D) -> (Sig, Sig)) 
CpsInstr ((D, D) -> Sig) 
CpsInstr ((D, D) -> SE (Sig, Sig)) 
CpsInstr ((D, D) -> SE Sig) 
CpsInstr (D -> (Sig, Sig)) 
CpsInstr (D -> Sig) 
CpsInstr (D -> SE (Sig, Sig)) 
CpsInstr (D -> SE Sig) 
AmpInstr (D -> (Sig, Sig)) 
AmpInstr (D -> Sig) 
AmpInstr (D -> SE (Sig, Sig)) 
AmpInstr (D -> SE Sig) 
MidiInstr ((Sig, D) -> (Sig, Sig)) 
MidiInstr ((Sig, D) -> (Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> Sig) 
MidiInstr ((Sig, D) -> SE (Sig, Sig)) 
MidiInstr ((Sig, D) -> SE (Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((Sig, D) -> SE Sig) 
MidiInstr ((D, Sig) -> (Sig, Sig)) 
MidiInstr ((D, Sig) -> (Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> Sig) 
MidiInstr ((D, Sig) -> SE (Sig, Sig)) 
MidiInstr ((D, Sig) -> SE (Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, Sig) -> SE Sig) 
MidiInstr ((D, D) -> (Sig, Sig)) 
MidiInstr ((D, D) -> (Sig, Sig, Sig)) 
MidiInstr ((D, D) -> (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, D) -> Sig) 
MidiInstr ((D, D) -> SE (Sig, Sig)) 
MidiInstr ((D, D) -> SE (Sig, Sig, Sig)) 
MidiInstr ((D, D) -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr ((D, D) -> SE Sig) 
MidiInstr (D -> (Sig, Sig)) 
MidiInstr (D -> (Sig, Sig, Sig)) 
MidiInstr (D -> (Sig, Sig, Sig, Sig)) 
MidiInstr (D -> Sig) 
MidiInstr (D -> SE (Sig, Sig)) 
MidiInstr (D -> SE (Sig, Sig, Sig)) 
MidiInstr (D -> SE (Sig, Sig, Sig, Sig)) 
MidiInstr (D -> SE Sig) 

data Tab

Instances

Tuple Tab 
Arg Tab 
Val Tab 
IfB Tab 
Default Tab 

data Str

Instances

Tuple Str 
Arg Str 
Val Str 
IfB Str 
Default Str 

data Spec

Instances

Tuple Spec 
Val Spec 
IfB Spec 
Default Spec 

data Wspec

Instances

data BoolSig

Instances

Val BoolSig 
Boolean BoolSig 

data BoolD

Instances

Val BoolD 
Boolean BoolD 

class Val a where

Methods

fromGE :: GE E -> a

toGE :: a -> GE E

fromE :: E -> a

class Val a => SigOrD a

Instances

Constructors

int :: Int -> D

Constants

idur :: D

Converters

ar :: Sig -> Sig

kr :: Sig -> Sig

ir :: Sig -> D

sig :: D -> Sig

Init values

withInits :: (Tuple a, Tuple b) => a -> b -> a

withDs :: Tuple a => a -> [D] -> a

withSigs :: Tuple a => a -> [Sig] -> a

withTabs :: Tuple a => a -> [Tab] -> a

withD :: Tuple a => a -> D -> a

withSig :: Tuple a => a -> Sig -> a

withTab :: Tuple a => a -> Tab -> a

withSeed :: SE Sig -> D -> Sig

Numeric functions

quot' :: SigOrD a => a -> a -> a

rem' :: SigOrD a => a -> a -> a

div' :: SigOrD a => a -> a -> a

mod' :: SigOrD a => a -> a -> a

ceil' :: SigOrD a => a -> a

floor' :: SigOrD a => a -> a

round' :: SigOrD a => a -> a

int' :: SigOrD a => a -> a

frac' :: SigOrD a => a -> a

Logic functions

when1 :: BoolSig -> SE () -> SE ()

whens :: [(BoolSig, SE ())] -> SE () -> SE ()

whileDo :: BoolSig -> SE () -> SE ()

untilDo :: BoolSig -> SE () -> SE ()

Aliases

Handy for functions that return tuples to specify the utput type

 (aleft, aright) = ar2 $ diskin2 "file.wav" 1

or

 asig = ar1 $ diskin2 "file.wav" 1

type Sig2 = (Sig, Sig)Source

type Sig4 = (Sig, Sig, Sig, Sig)Source

type Sig6 = (Sig, Sig, Sig, Sig, Sig, Sig)Source

type Sig8 = (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)Source

ar1 :: Sig -> Sig

ar2 :: (Sig, Sig) -> (Sig, Sig)

ar4 :: (Sig, Sig, Sig, Sig) -> (Sig, Sig, Sig, Sig)

ar6 :: (Sig, Sig, Sig, Sig, Sig, Sig) -> (Sig, Sig, Sig, Sig, Sig, Sig)

ar8 :: (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) -> (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)

Tuples

class Tuple a where

Methods

tupleMethods :: TupleMethods a

Instances

Tuple Unit 
Tuple Tab 
Tuple Str 
Tuple Spec 
Tuple Sig 
Tuple D 
(Tuple a, Tuple b) => Tuple (a, b) 
(Tuple a, Tuple b, Tuple c) => Tuple (a, b, c) 
(Tuple a, Tuple b, Tuple c, Tuple d) => Tuple (a, b, c, d) 
(Tuple a, Tuple b, Tuple c, Tuple d, Tuple e) => Tuple (a, b, c, d, e) 
(Tuple a, Tuple b, Tuple c, Tuple d, Tuple e, Tuple f) => Tuple (a, b, c, d, e, f) 
(Tuple a, Tuple b, Tuple c, Tuple d, Tuple e, Tuple f, Tuple g) => Tuple (a, b, c, d, e, f, g) 
(Tuple a, Tuple b, Tuple c, Tuple d, Tuple e, Tuple f, Tuple g, Tuple h) => Tuple (a, b, c, d, e, f, g, h) 

makeTupleMethods :: Tuple a => (a -> b) -> (b -> a) -> TupleMethods b

data Unit

Instances

atTuple :: Tuple a => [a] -> Sig -> aSource

Gets an control/audio-rate value from the list by index.

Logic functions

ifTuple :: Tuple a => BoolSig -> a -> a -> a

guardedTuple :: Tuple b => [(BoolSig, b)] -> b -> b

caseTuple :: Tuple b => a -> [(a -> BoolSig, b)] -> b -> b

Instruments

An instrument is a function that takes a tpule of csound values as an argument and returns a tuple of signals as an output. The type of the instrument is:

 (Arg a, Out b) => a -> b

Arguments

class Tuple a => Arg a

Instances

Arg Unit 
Arg Tab 
Arg Str 
Arg D 
(Arg a, Arg b) => Arg (a, b) 
(Arg a, Arg b, Arg c) => Arg (a, b, c) 
(Arg a, Arg b, Arg c, Arg d) => Arg (a, b, c, d) 
(Arg a, Arg b, Arg c, Arg d, Arg e) => Arg (a, b, c, d, e) 
(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f) => Arg (a, b, c, d, e, f) 
(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f, Arg h) => Arg (a, b, c, d, e, f, h) 
(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f, Arg h, Arg g) => Arg (a, b, c, d, e, f, h, g) 

atArg :: (Tuple a, Arg a) => [a] -> D -> aSource

Gets an init-rate value from the list by index.

Logic functions

ifArg :: (Arg a, Tuple a) => BoolD -> a -> a -> a

guardedArg :: (Tuple b, Arg b) => [(BoolD, b)] -> b -> b

caseArg :: (Tuple b, Arg b) => a -> [(a -> BoolD, b)] -> b -> b

Outputs

class Tuple a => Sigs a

Instances

Sigs Sig 
Sigs ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
Sigs (Sig, Sig) 
Sigs ((Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig), (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) 
Sigs (Sig, Sig, Sig, Sig) 
Sigs (Sig, Sig, Sig, Sig, Sig, Sig) 
Sigs (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)