Safe Haskell | None |
---|---|
Language | Haskell98 |
Patches.
- type CsdNote a = (a, a)
- type Instr a b = CsdNote a -> SE b
- type Fx a = a -> SE a
- type Fx1 = Fx Sig
- type Fx2 = Fx Sig2
- data FxSpec a = FxSpec {
- fxMix :: DryWetRatio
- fxFun :: Fx a
- type DryWetRatio = Sig
- type Patch1 = Patch D Sig
- type Patch2 = Patch D Sig2
- data Patch a b = Patch {
- patchInstr :: Instr a b
- patchFx :: [FxSpec b]
- type PatchSig1 = Patch Sig Sig
- type PatchSig2 = Patch Sig Sig2
- getPatchFx :: (SigSpace a, Sigs a) => Patch b a -> Fx a
- dryPatch :: Patch a b -> Patch a b
- atMix :: Sig -> Patch a b -> Patch a b
- atMixes :: [Sig] -> Patch a b -> Patch a b
- atMidi :: (SigSpace a, Sigs a) => Patch D a -> SE a
- atMono :: (SigSpace a, Sigs a) => Patch Sig a -> SE a
- atMono' :: (SigSpace a, Sigs a) => MidiChn -> D -> D -> Patch Sig a -> SE a
- atMonoSharp :: (SigSpace a, Sigs a) => Patch Sig a -> SE a
- atHoldMidi :: (SigSpace a, Sigs a) => MidiChn -> D -> Patch Sig a -> SE a
- atSched :: (SigSpace a, Sigs a) => Patch D a -> Evt (Sco (CsdNote D)) -> SE a
- atSchedUntil :: (SigSpace a, Sigs a) => Patch D a -> Evt (CsdNote D) -> Evt b -> SE a
- atSco :: (SigSpace a, Sigs a) => Patch D a -> Sco (CsdNote D) -> Sco (Mix a)
- atNote :: (SigSpace b, Sigs b) => Patch a b -> CsdNote a -> SE b
- addInstrFx :: Fx b -> Patch a b -> Patch a b
- addPreFx :: DryWetRatio -> Fx b -> Patch a b -> Patch a b
- addPostFx :: DryWetRatio -> Fx b -> Patch a b -> Patch a b
- harmonPatch :: (Fractional a, SigSpace b, Sigs b) => [Sig] -> [a] -> Patch a b -> Patch a b
- deepPad :: (Fractional a, SigSpace b, Sigs b) => Patch a b -> Patch a b
- patchWhen :: Sigs b => BoolSig -> Patch a b -> Patch a b
- mixInstr :: (SigSpace b, Num b) => Sig -> Patch a b -> Patch a b -> Patch a b
- withSmallRoom :: Patch2 -> Patch2
- withSmallRoom' :: DryWetRatio -> Patch2 -> Patch2
- withSmallHall :: Patch2 -> Patch2
- withSmallHall' :: DryWetRatio -> Patch2 -> Patch2
- withLargeHall :: Patch2 -> Patch2
- withLargeHall' :: DryWetRatio -> Patch2 -> Patch2
- withMagicCave :: Patch2 -> Patch2
- withMagicCave' :: DryWetRatio -> Patch2 -> Patch2
- sfPatch :: Sf -> Patch2
- sfPatchHall :: Sf -> Patch2
- patchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch D a -> SE a
- monoPatchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch Sig a -> SE a
- monoSharpPatchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch Sig a -> SE a
- monoPatchByNameMidi' :: (SigSpace a, Sigs a) => D -> D -> String -> Patch Sig a -> SE a
- atMidiTemp :: (SigSpace a, Sigs a) => Temp -> Patch D a -> SE a
- atMonoTemp :: (SigSpace a, Sigs a) => Temp -> Patch Sig a -> SE a
- atMonoSharpTemp :: (SigSpace a, Sigs a) => Temp -> Patch Sig a -> SE a
- atMonoTemp' :: (SigSpace a, Sigs a) => Temp -> MidiChn -> D -> D -> Patch Sig a -> SE a
- atHoldMidiTemp :: (SigSpace a, Sigs a) => Temp -> MidiChn -> D -> Patch Sig a -> SE a
- patchByNameMidiTemp :: (SigSpace a, Sigs a) => Temp -> String -> Patch D a -> SE a
- monoPatchByNameMidiTemp :: (SigSpace a, Sigs a) => Temp -> String -> Patch Sig a -> SE a
- monoSharpPatchByNameMidiTemp :: (SigSpace a, Sigs a) => Temp -> String -> Patch Sig a -> SE a
- monoPatchByNameMidiTemp' :: (SigSpace a, Sigs a) => Temp -> D -> D -> String -> Patch Sig a -> SE a
Documentation
type CsdNote a = (a, a) Source #
A simple csound note (good for playing with midi-keyboard). It's a pair of amplitude (0 to 1) and freuqncy (Hz).
type DryWetRatio = Sig Source #
A patch. It's an instrument, an effect and default dry/wet ratio.
Patch | |
|
getPatchFx :: (SigSpace a, Sigs a) => Patch b a -> Fx a Source #
Transforms all the effects for the given patch into a single function.
Midi
atMidi :: (SigSpace a, Sigs a) => Patch D a -> SE a Source #
Plays a patch with midi. Supplies a custom value for mixing effects (dry/wet). The 0 is a dry signal, the 1 is a wet signal.
atMono' :: (SigSpace a, Sigs a) => MidiChn -> D -> D -> Patch Sig a -> SE a Source #
Monosynth patch. Plays the patch with function monoMsg
atMonoMidi midiChn portamentotime releaseTime patch
atMonoSharp :: (SigSpace a, Sigs a) => Patch Sig a -> SE a Source #
Simplified monosynth patch (sharp attack and transitions)
atHoldMidi :: (SigSpace a, Sigs a) => MidiChn -> D -> Patch Sig a -> SE a Source #
Monosynth patch. Plays the patch with function holdMsg
atMonoMidi midiChn portamentotime patch
Events
atSched :: (SigSpace a, Sigs a) => Patch D a -> Evt (Sco (CsdNote D)) -> SE a Source #
Plays a patch with event stream. Supplies a custom value for mixing effects (dry/wet). The 0 is a dry signal, the 1 is a wet signal.
Sco
atSco :: (SigSpace a, Sigs a) => Patch D a -> Sco (CsdNote D) -> Sco (Mix a) Source #
Plays a patch with scores. Supplies a custom value for mixing effects (dry/wet). The 0 is a dry signal, the 1 is a wet signal.
Single note
atNote :: (SigSpace b, Sigs b) => Patch a b -> CsdNote a -> SE b Source #
Plays a patch at the given note.
Fx
addPreFx :: DryWetRatio -> Fx b -> Patch a b -> Patch a b Source #
Appends an effect before patch's effect.
addPostFx :: DryWetRatio -> Fx b -> Patch a b -> Patch a b Source #
Appends an effect after patch's effect.
Pads
harmonPatch :: (Fractional a, SigSpace b, Sigs b) => [Sig] -> [a] -> Patch a b -> Patch a b Source #
Misc
patchWhen :: Sigs b => BoolSig -> Patch a b -> Patch a b Source #
Plays the patch when confition is true otherwise it produces silence.
Rever
withSmallRoom :: Patch2 -> Patch2 Source #
withSmallRoom' :: DryWetRatio -> Patch2 -> Patch2 Source #
withSmallHall :: Patch2 -> Patch2 Source #
withSmallHall' :: DryWetRatio -> Patch2 -> Patch2 Source #
withLargeHall :: Patch2 -> Patch2 Source #
withLargeHall' :: DryWetRatio -> Patch2 -> Patch2 Source #
withMagicCave :: Patch2 -> Patch2 Source #
withMagicCave' :: DryWetRatio -> Patch2 -> Patch2 Source #
Sound font patches
sfPatchHall :: Sf -> Patch2 Source #
Csound API
patchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch D a -> SE a Source #
Triggers patch with Csound API. It creates a named instruement with given name (first argument).
It simulates the midi-like instrument. Notes are encoded with messages:
i "givenName" 1 pitchKey volumeKey -- note on i "givenName" 0 pitchKey volumeKey -- note off
monoPatchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch Sig a -> SE a Source #
Triggers patch with Csound API. It creates a named instruement with given name (first argument).
It simulates the midi-like instrument. Notes are encoded with messages:
i "givenName" 1 pitchKey volumeKey -- note on i "givenName" 0 pitchKey volumeKey -- note off
It behaves just like the function patchByNameMidi
but it's defined for
monophonic patches. For instruments that take in continuous signals not messages/notes.
monoSharpPatchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch Sig a -> SE a Source #
The monophonic patch with sharper transition from note to note.
monoPatchByNameMidi' :: (SigSpace a, Sigs a) => D -> D -> String -> Patch Sig a -> SE a Source #
Generic function fr invocation of monophonic instrument with Csound API. We can specify portamento and release times.
Custom temperament
Midi
atMidiTemp :: (SigSpace a, Sigs a) => Temp -> Patch D a -> SE a Source #
Plays a patch with midi. Supplies a custom value for mixing effects (dry/wet). The 0 is a dry signal, the 1 is a wet signal.
atMonoTemp :: (SigSpace a, Sigs a) => Temp -> Patch Sig a -> SE a Source #
Simplified monosynth patch with custom temperament.
atMonoSharpTemp :: (SigSpace a, Sigs a) => Temp -> Patch Sig a -> SE a Source #
Simplified monosynth patch (sharp attack and transitions) with custom temperament.
atMonoTemp' :: (SigSpace a, Sigs a) => Temp -> MidiChn -> D -> D -> Patch Sig a -> SE a Source #
Monosynth patch with custom temperament. Plays the patch with function monoMsgTemp
atMonoMidi midiChn portamentotime releaseTime patch
atHoldMidiTemp :: (SigSpace a, Sigs a) => Temp -> MidiChn -> D -> Patch Sig a -> SE a Source #
Monosynth patch with custom temperament. Plays the patch with function holdMsgTemp
atMonoMidi midiChn portamentotime patch
Csound API
patchByNameMidiTemp :: (SigSpace a, Sigs a) => Temp -> String -> Patch D a -> SE a Source #
Triggers patch with Csound API.
It creates a named instruement with given name (second argument).
It behaves like the function patchByNameMidi
but we can specify custom temperament.
monoPatchByNameMidiTemp :: (SigSpace a, Sigs a) => Temp -> String -> Patch Sig a -> SE a Source #
Triggers patch with Csound API.
It creates a named instruement with given name (first argument).
It behaves like the function monoPatchByNameMidi
but we can specify custom temperament.