csound-expression-4.4.1: library to make electronic music

Safe HaskellNone
LanguageHaskell98

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 :: *

Signals

Instances

Floating Sig 
Fractional Sig 
Num Sig2 
Num Sig3 
Num Sig4 
Num Sig6 
Num Sig8 
Num Sig 
IfB Sig 
EqB Sig 
OrdB Sig 
Monoid Sig 
Tuple Sig 
Sigs Sig2 
Sigs Sig4 
Sigs Sig6 
Sigs Sig8 
Sigs Sig 
Val Sig 
SigOrD Sig 
Default Sig 
AmpInstr Sig 
Outs Sig 
RenderCsd Sig2 
RenderCsd Sig4 
RenderCsd Sig6 
RenderCsd Sig8 
RenderCsd Sig 
BindSig Sig 
SigSpace Sig 
SigSpace FxFun 
FxUI FxFun 
At Sig2 Sig2 Sig2 
At Sig2 Sig2 Sig 
At Sig Sig2 Sig2 
At Sig Sig2 Sig 
SigSpace a => At Sig Sig a 
At Sig2 Sig2 a => At Sig2 Sig2 (Source a) 
At Sig2 Sig2 (SE Sig2) 
At Sig2 Sig2 (SE Sig) 
At Sig Sig2 (SE Sig2) 
At Sig Sig2 (SE Sig) 
At Sig2 (SE Sig2) Sig2 
At Sig2 (SE Sig2) Sig 
At Sig (SE Sig) Sig2 
At Sig (SE Sig) Sig3 
At Sig (SE Sig) Sig4 
At Sig (SE Sig) Sig 
At Sig2 (SE Sig2) a => At Sig2 (SE Sig2) (Source a) 
At Sig2 (SE Sig2) (SE Sig2) 
At Sig2 (SE Sig2) (SE Sig) 
At Sig (SE Sig) a => At Sig (SE Sig) (Source a) 
At Sig (SE Sig) (SE Sig2) 
At Sig (SE Sig) (SE Sig3) 
At Sig (SE Sig) (SE Sig4) 
At Sig (SE Sig) (SE 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) 
RenderCsd (Source Sig2) 
RenderCsd (Source Sig4) 
RenderCsd (Source Sig) 
RenderCsd (Source (SE Sig2)) 
RenderCsd (Source (SE Sig4)) 
RenderCsd (Source (SE Sig)) 
RenderCsd (SE (Sig8, Sig8)) 
RenderCsd (SE (Sig8, Sig8, Sig8, Sig8)) 
RenderCsd (SE Sig2) 
RenderCsd (SE Sig4) 
RenderCsd (SE Sig6) 
RenderCsd (SE Sig8) 
RenderCsd (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) 
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 (Sig8, Sig8) 
Sigs (Sig8, Sig8) 
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) 
Sigs a => RenderCsd (a -> (Sig8, Sig8, Sig8, Sig8)) 
Sigs a => RenderCsd (a -> (Sig8, Sig8)) 
Sigs a => RenderCsd (a -> Sig8) 
Sigs a => RenderCsd (a -> Sig6) 
Sigs a => RenderCsd (a -> Sig4) 
Sigs a => RenderCsd (a -> Sig2) 
Sigs a => RenderCsd (a -> Sig) 
RenderCsd (Sig8, Sig8) 
BindSig (Sig, Sig) 
SigSpace (Sig, Sig) 
FxUI (Sig2 -> Sig2) 
FxUI a => FxUI (Sig -> a) 
Fractional (Sig, Sig, Sig) 
BindSig (Sig, Sig, Sig) 
SigSpace (Sig, Sig, Sig) 
Fractional (Sig, Sig, Sig, Sig) 
Num (Sig8, Sig8, Sig8, Sig8) 
Sigs (Sig8, Sig8, Sig8, Sig8) 
Outs (Sig, Sig, Sig, Sig) 
RenderCsd (Sig8, Sig8, Sig8, Sig8) 
BindSig (Sig, Sig, Sig, Sig) 
SigSpace (Sig, Sig, Sig, Sig) 
type BooleanOf Sig = BoolSig 
type Snap Sig = D 
type AmpInstrOut Sig = Sig 
type SigOuts Sig = Sig 
type AtOut Sig2 Sig2 Sig2 = Sig2 
type AtOut Sig2 Sig2 Sig = Sig2 
type AtOut Sig Sig2 Sig2 = Sig2 
type AtOut Sig Sig2 Sig = Sig2 
type AtOut Sig Sig a = a 
type AtOut Sig2 Sig2 (Source a) = Source (AtOut Sig2 Sig2 a) 
type AtOut Sig2 Sig2 (SE Sig2) = SE Sig2 
type AtOut Sig2 Sig2 (SE Sig) = SE Sig2 
type AtOut Sig Sig2 (SE Sig2) = SE Sig2 
type AtOut Sig Sig2 (SE Sig) = SE Sig2 
type AtOut Sig2 (SE Sig2) Sig2 = SE Sig2 
type AtOut Sig2 (SE Sig2) Sig = SE Sig2 
type AtOut Sig (SE Sig) Sig2 = SE Sig2 
type AtOut Sig (SE Sig) Sig3 = SE Sig3 
type AtOut Sig (SE Sig) Sig4 = SE Sig4 
type AtOut Sig (SE Sig) Sig = SE Sig 
type AtOut Sig2 (SE Sig2) (Source a) = Source (AtOut Sig2 (SE Sig2) a) 
type AtOut Sig2 (SE Sig2) (SE Sig2) = SE Sig2 
type AtOut Sig2 (SE Sig2) (SE Sig) = SE Sig2 
type AtOut Sig (SE Sig) (Source a) = Source (AtOut Sig (SE Sig) a) 
type AtOut Sig (SE Sig) (SE Sig2) = SE Sig2 
type AtOut Sig (SE Sig) (SE Sig3) = SE Sig3 
type AtOut Sig (SE Sig) (SE Sig4) = SE Sig4 
type AtOut Sig (SE Sig) (SE Sig) = SE Sig 
type AmpInstrOut (SE (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (SE Sig) = Sig 
type SigOuts (SE (Sig, Sig)) = (Sig, Sig) 
type SigOuts (SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type SigOuts (SE Sig) = Sig 
type CpsInstrOut ((Sig, Sig) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((Sig, Sig) -> Sig) = Sig 
type CpsInstrOut ((Sig, Sig) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((Sig, Sig) -> SE Sig) = Sig 
type CpsInstrOut ((Sig, D) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((Sig, D) -> Sig) = Sig 
type CpsInstrOut ((Sig, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((Sig, D) -> SE Sig) = Sig 
type CpsInstrOut ((D, Sig) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, Sig) -> Sig) = Sig 
type CpsInstrOut ((D, Sig) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, Sig) -> SE Sig) = Sig 
type CpsInstrOut ((D, D) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, D) -> Sig) = Sig 
type CpsInstrOut ((D, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, D) -> SE Sig) = Sig 
type CpsInstrOut (Sig -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut (Sig -> Sig) = Sig 
type CpsInstrOut (Sig -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut (Sig -> SE Sig) = Sig 
type CpsInstrOut (D -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut (D -> Sig) = Sig 
type CpsInstrOut (D -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut (D -> SE Sig) = Sig 
type AmpInstrOut (Sig -> (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (Sig -> Sig) = Sig 
type AmpInstrOut (Sig -> SE (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (Sig -> SE Sig) = Sig 
type AmpInstrOut (D -> (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (D -> Sig) = Sig 
type AmpInstrOut (D -> SE (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (D -> SE Sig) = Sig 
type AmpInstrOut (Sig, Sig) = (Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> Sig) = Sig 
type MidiInstrOut ((Sig, Sig) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((Sig, Sig) -> SE Sig) = Sig 
type MidiInstrOut ((Sig, D) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((Sig, D) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> Sig) = Sig 
type MidiInstrOut ((Sig, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((Sig, D) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> SE Sig) = Sig 
type MidiInstrOut ((D, Sig) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, Sig) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> Sig) = Sig 
type MidiInstrOut ((D, Sig) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, Sig) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> SE Sig) = Sig 
type MidiInstrOut ((D, D) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, D) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> Sig) = Sig 
type MidiInstrOut ((D, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, D) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> SE Sig) = Sig 
type MidiInstrOut (Sig -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (Sig -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (Sig -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (Sig -> Sig) = Sig 
type MidiInstrOut (Sig -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (Sig -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (Sig -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (Sig -> SE Sig) = Sig 
type MidiInstrOut (D -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (D -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (D -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (D -> Sig) = Sig 
type MidiInstrOut (D -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (D -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (D -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (D -> SE Sig) = Sig 
type MidiInstrOut (Msg -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (Msg -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (Msg -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (Msg -> Sig) = Sig 
type MidiInstrOut (Msg -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (Msg -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (Msg -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (Msg -> SE Sig) = Sig 
type SigOuts (Sig, Sig) = (Sig, Sig) 
type SigOuts (Sig, Sig, Sig, Sig) = (Sig, Sig, Sig, Sig) 

data D :: *

Constant numbers

Instances

Floating D 
Fractional D 
Num D 
IfB D 
EqB D 
OrdB D 
Monoid D 
Tuple D 
Arg D 
Val D 
SigOrD 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) 
type BooleanOf D = BoolD 
type Snap D = D 
type CpsInstrOut ((Sig, D) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((Sig, D) -> Sig) = Sig 
type CpsInstrOut ((Sig, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((Sig, D) -> SE Sig) = Sig 
type CpsInstrOut ((D, Sig) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, Sig) -> Sig) = Sig 
type CpsInstrOut ((D, Sig) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, Sig) -> SE Sig) = Sig 
type CpsInstrOut ((D, D) -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, D) -> Sig) = Sig 
type CpsInstrOut ((D, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut ((D, D) -> SE Sig) = Sig 
type CpsInstrOut (D -> (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut (D -> Sig) = Sig 
type CpsInstrOut (D -> SE (Sig, Sig)) = (Sig, Sig) 
type CpsInstrOut (D -> SE Sig) = Sig 
type AmpInstrOut (D -> (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (D -> Sig) = Sig 
type AmpInstrOut (D -> SE (Sig, Sig)) = (Sig, Sig) 
type AmpInstrOut (D -> SE Sig) = Sig 
type MidiInstrOut ((Sig, D) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((Sig, D) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> Sig) = Sig 
type MidiInstrOut ((Sig, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((Sig, D) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((Sig, D) -> SE Sig) = Sig 
type MidiInstrOut ((D, Sig) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, Sig) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> Sig) = Sig 
type MidiInstrOut ((D, Sig) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, Sig) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, Sig) -> SE Sig) = Sig 
type MidiInstrOut ((D, D) -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, D) -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> Sig) = Sig 
type MidiInstrOut ((D, D) -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut ((D, D) -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut ((D, D) -> SE Sig) = Sig 
type MidiInstrOut (D -> (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (D -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (D -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (D -> Sig) = Sig 
type MidiInstrOut (D -> SE (Sig, Sig)) = (Sig, Sig) 
type MidiInstrOut (D -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) 
type MidiInstrOut (D -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) 
type MidiInstrOut (D -> SE Sig) = Sig 

data Tab :: *

Tables (or arrays)

Instances

data Str :: *

Strings

Instances

data Spec :: *

Spectrum. It's fsig in the Csound.

data Wspec :: *

Another type for spectrum. It's wsig in the Csound.

Instances

data BoolSig :: *

A signal of booleans.

data BoolD :: *

A constant boolean value.

Instances

class Val a where

Contains all Csound values.

Minimal complete definition

fromGE, toGE

Methods

fromGE :: GE E -> a

toGE :: a -> GE E

fromE :: E -> a

class Val a => SigOrD a

Instances

Constructors

double :: Double -> D

Constructs a number.

int :: Int -> D

Constructs an integer.

text :: String -> Str

Constructs a string.

Constants

idur :: D

Querries a total duration of the note. It's equivallent to Csound's p3 field.

Converters

ar :: Sig -> Sig

Sets a rate of the signal to audio rate.

kr :: Sig -> Sig

Sets a rate of the signal to control rate.

ir :: Sig -> D

Converts a signal to the number (initial value of the signal).

sig :: D -> Sig

Makes a constant signal from the number.

Init values

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

Appends initialisation arguments. It's up to user to supply arguments with the right types. For example:

oscil 0.5 440 sinWave `withInits` (0.5 :: D)

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

A special case of withInits. Here all inits are numbers.

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

A special case of withInits. Here all inits are signals.

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

A special case of withInits. Here all inits are arrays.

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

Appends an init value which is a number.

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

Appends an init value which is a signal.

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

Appends an init value which is a table.

withSeed :: SE Sig -> D -> Sig

Applies a seed to the random value. It's equivalent to the withD but it has a special meaning of canceling the side effect. When random opcode is provided with seed value it's no longer contains a side effect so we don't need to restrict it.

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

boolSig :: BoolD -> BoolSig

Creates a constant boolean signal.

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

Invokes the given procedure if the boolean signal is true.

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

The chain of when1s. Tests all the conditions in sequence if everything is false it invokes the procedure given in the second argument.

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)

type Sig3 = (Sig, Sig, Sig)

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

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

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

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

A tuple of Csound values.

Instances

Tuple Sig 
Tuple D 
Tuple Str 
Tuple Spec 
Tuple Unit 
Tuple Tab 
(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

Defines instance of type class Tuple for a new type in terms of an already defined one.

data Unit :: *

Csound's empty tuple.

unit :: Unit

Constructs Csound's empty tuple.

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

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

Logic functions

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

ifB for tuples of csound values.

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

guardedB for tuples of csound values.

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

caseB for tuples of csound values.

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 D 
Arg Str 
Arg Unit 
Arg Tab 
(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 -> a Source

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

Logic functions

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

ifB for constants.

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

guardedB for constants.

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

caseB for constants.

Outputs

class (Tuple a, Num a) => Sigs a

The tuples of signals.