Safe Haskell | None |
---|---|
Language | Haskell98 |
This is a module specialised to life performances.
You can create and install instruments in SuperCollider, obtain a handle and use that in your song.
The alternative way would be to upload an instrument whenever one tone shall be played. This is less efficient but simpler and certainly more flexible.
It is certainly not sensible to import that module. Maybe I should provide it as Extra-Source-File or as Main module of a dummy executable in order to ship it via Cabal.
- type InstrumentUGen = UGen -> UGen -> UGen
- installInstr :: (parameterTuple -> AttributeList, graph -> InstrumentUGen) -> String -> graph -> IO (Instrument parameterTuple)
- installInstr0 :: String -> InstrumentUGen -> IO (Instrument ())
- installInstr1 :: String -> (UGen -> InstrumentUGen) -> IO (Instrument Double)
- installInstr2 :: String -> (UGen -> UGen -> InstrumentUGen) -> IO (Instrument (Double, Double))
- type DrumUGen = UGen -> UGen
- installDrum :: (parameterTuple -> AttributeList, graph -> DrumUGen) -> String -> graph -> IO (Drum parameterTuple)
- installSoundChan :: SoundParameters params => String -> Sound params -> IO (Channel, NumberChannels)
- installInstrChan :: (parameterTuple -> AttributeList, graph -> InstrumentUGen) -> String -> graph -> IO (Instrument parameterTuple)
- installDrumChan :: (parameterTuple -> AttributeList, graph -> DrumUGen) -> String -> graph -> IO (Drum parameterTuple)
- reset :: IO ()
- playSound :: UGen -> IO ()
- playMusic :: T DrumAttributes InstrumentAttributes -> IO ()
- playMusicEffect :: UGen -> T DrumAttributes InstrumentAttributes -> IO ()
- germanLatin1Keyboard :: [Char]
- playKey :: Instrument () -> Char -> IO ()
- playKeyboard :: Instrument () -> IO ()
- example :: IO ()
- exampleEffect :: IO ()
Install instruments
type InstrumentUGen = UGen -> UGen -> UGen Source
installInstr :: (parameterTuple -> AttributeList, graph -> InstrumentUGen) -> String -> graph -> IO (Instrument parameterTuple) Source
installInstr0 :: String -> InstrumentUGen -> IO (Instrument ()) Source
installInstr1 :: String -> (UGen -> InstrumentUGen) -> IO (Instrument Double) Source
installInstr2 :: String -> (UGen -> UGen -> InstrumentUGen) -> IO (Instrument (Double, Double)) Source
installDrum :: (parameterTuple -> AttributeList, graph -> DrumUGen) -> String -> graph -> IO (Drum parameterTuple) Source
Install instruments on specific channels
installSoundChan :: SoundParameters params => String -> Sound params -> IO (Channel, NumberChannels) Source
installInstrChan :: (parameterTuple -> AttributeList, graph -> InstrumentUGen) -> String -> graph -> IO (Instrument parameterTuple) Source
installDrumChan :: (parameterTuple -> AttributeList, graph -> DrumUGen) -> String -> graph -> IO (Drum parameterTuple) Source
Play music
playMusic :: T DrumAttributes InstrumentAttributes -> IO () Source
playMusicEffect :: UGen -> T DrumAttributes InstrumentAttributes -> IO () Source
Interactively play music on keyboard
playKey :: Instrument () -> Char -> IO () Source
playKeyboard :: Instrument () -> IO () Source
Interprets the keyboard as piano and play according tones, when keys are hit.
Is it more convenient to have a UGen parameter and install the instrument automatically?
Example music
exampleEffect :: IO () Source