-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | library to make electronic music -- -- Welcome to the simplest textual synthesizer. -- --
-- dac $ osc 440 ---- -- Csound-expression is a Haskell framework for computer music. With the -- help of the library we can create our instruments on the fly. A few -- lines in the interpreter is enough to get the cool sound going out of -- your speakers. It can be used for simple daily sound-file processing -- or for a full-blown live performances. -- -- Got interested? Check out the guide: -- https://github.com/anton-k/csound-expression/blob/master/tutorial/Index.md -- -- Acknowledgements (I'd like to mention those who supported me a lot -- with their music and ideas): -- --
-- import Csound.Base -- import qualified Csound.Cabbage as C -- -- ui = do -- C.cabbage $ do -- C.form $ do -- C.size 100 100 -- C.pluginid "plugin" -- C.button $ do -- C.bounds 10 10 80 80 -- C.channel "button" -- C.text1 "Click me" -- C.colour0 (C.Rgb 150 30 0) -- C.colour1 (C.Rgb 30 150 12) -- res <- chnCtrlGet "button" -- return res -- -- main = dac $ do -- btn <- ui -- return $ btn * osc 220 ---- -- We can read a complete tutorial on how to create Cabbage plugins at -- the guide: -- https://github.com/spell-music/csound-expression/blob/master/tutorial/chapters/CabbageTutorial.md module Csound.Cabbage type Cab = Cab' () type CabProp = CabProp' () data Col Hash :: String -> Col Rgb :: Int -> Int -> Int -> Col cabbage :: Cab -> SE () button :: CabProp -> Cab filebutton :: CabProp -> Cab infobutton :: CabProp -> Cab checkbox :: CabProp -> Cab combobox :: CabProp -> Cab csoundoutput :: CabProp -> Cab encoder :: CabProp -> Cab gentable :: CabProp -> Cab hrange :: CabProp -> Cab vrange :: CabProp -> Cab form :: CabProp -> Cab groupbox :: CabProp -> Cab image :: CabProp -> Cab keyboard :: CabProp -> Cab label :: CabProp -> Cab hslider :: CabProp -> Cab vslider :: CabProp -> Cab rslider :: CabProp -> Cab soundfiler :: CabProp -> Cab signaldisplay :: CabProp -> Cab textbox :: CabProp -> Cab texteditor :: CabProp -> Cab xypad :: CabProp -> Cab bounds :: Int -> Int -> Int -> Int -> CabProp channel :: String -> CabProp text1 :: String -> CabProp text2 :: String -> String -> CabProp value :: Float -> CabProp colour :: Col -> CabProp colour0 :: Col -> CabProp colour1 :: Col -> CabProp backgroundcolour :: Col -> CabProp textcolour :: Col -> CabProp trackercolour :: Col -> CabProp outlinecolour :: Col -> CabProp fontcolour :: Col -> CabProp fontcolour0 :: Col -> CabProp fontcolour1 :: Col -> CabProp latched :: Bool -> CabProp identchannel :: String -> CabProp rotate :: Float -> Float -> Float -> CabProp alpha :: Float -> CabProp visible :: Bool -> CabProp caption :: String -> CabProp widgetarray :: String -> Int -> CabProp popuptext :: String -> CabProp active :: Bool -> CabProp svgfile :: String -> String -> CabProp populate :: String -> String -> CabProp mode :: String -> CabProp file :: String -> CabProp shape :: String -> CabProp corners :: Float -> CabProp channeltype :: String -> CabProp align :: String -> CabProp sliderincr :: Float -> CabProp max :: Float -> CabProp min :: Float -> CabProp textbox' :: Bool -> CabProp trackerthickness :: Float -> CabProp linethickness :: Float -> CabProp range :: Float -> Float -> (Float, Float) -> CabProp range2 :: Float -> Float -> (Float, Float) -> Maybe Float -> Maybe Float -> CabProp size :: Int -> Int -> CabProp pluginid :: String -> CabProp guirefresh :: Int -> CabProp plant :: String -> CabProp child :: Bool -> CabProp show :: Bool -> CabProp middlec :: Int -> CabProp keywidth :: Int -> CabProp scrollbars :: Bool -> CabProp fontstyle :: String -> CabProp scrubberpos :: Int -> CabProp zoom :: Float -> CabProp displaytype :: String -> CabProp updaterate :: Int -> CabProp wrap :: Bool -> CabProp -- | Use this module if your version of Csound is pre 6.09. module Csound.Compat.Filter zdf1 :: Sig -> Sig -> (Sig, Sig) zlp1 :: Sig -> Sig -> Sig zhp1 :: Sig -> Sig -> Sig zap1 :: Sig -> Sig -> Sig zdf2 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig) zlp :: Sig -> Sig -> Sig -> Sig zbp :: Sig -> Sig -> Sig -> Sig zhp :: Sig -> Sig -> Sig -> Sig zdf2_notch :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig) zbr :: Sig -> Sig -> Sig -> Sig zladder :: Sig -> Sig -> Sig -> Sig -- | Non-Linear normalized diode ladder filter. -- --
-- diode saturation centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. -- -- saturation ranges from 1 and higher (typical value: 4) diode :: Sig -> Sig -> Sig -> Sig -> Sig -- | Linear diode ladder filter. -- --
-- linDiode centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. linDiode :: Sig -> Sig -> Sig -> Sig -- | Non-Linear not normalized diode ladder filter. -- --
-- noNormDiode saturation centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. -- -- saturation ranges from 1 and higher (typical value: 4) noNormDiode :: Sig -> Sig -> Sig -> Sig -> Sig -- | Linear korg 35 low pass filter (12 dB). -- --
-- linDiode centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. linKorg_lp :: Sig -> Sig -> Sig -> Sig -- | Linear korg 35 high pass filter (6 dB). -- --
-- linDiode centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. linKorg_hp :: Sig -> Sig -> Sig -> Sig -- | Korg 35 low pass filter (12 dB). -- --
-- diode saturation centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. -- -- saturation ranges from 1 and higher (typical value: 4) korg_lp :: Sig -> Sig -> Sig -> Sig -> Sig -- | Korg 35 high pass filter (6 dB). -- --
-- diode saturation centerFrequency resonance asig ---- -- resonance ranges in the interval [0, 1] and higher. self-resonance -- occurs at 1. -- -- saturation ranges from 1 and higher (typical value: 4) korg_hp :: Sig -> Sig -> Sig -> Sig -> Sig -- | The compatibility functions. Functions to work with older versions of -- Csound. -- -- The module contains opcodes that work in old versions of Csound. Some -- opcodes are initialy implemented as UDOs. And if they are super cool -- Csound developers decide to reimplement them in C and built in the -- Csound core. It makes the opcodes faster. -- -- But if your version of Csound is not so modern and opcode version is -- not available for you. You can still use the UDO version, which is -- less efficient but should work. -- -- This module is not imported by default and intended to be used -- qualified. module Csound.Compat -- | Named channels. -- -- With named channels we can read and write values to the variables with -- dynamic names. We can specify the variable with string (Str). -- -- Csound has an C api wich is ported to many languages. With named -- channels we can interact with csound that runns a program. We can read -- and write to named channels from another program. module Csound.Control.Channel -- | Reads a value of type double. chnGetD :: Str -> SE D -- | Reads an audio signal. chnGetSig :: Str -> SE Sig -- | Reads a control signal. The control signals are updated at the lower -- rate. chnGetCtrl :: Str -> SE Sig -- | Reads a string. chnGetStr :: Str -> SE Str -- | Writes a value of type double. chnSetD :: D -> Str -> SE () -- | Writes an audio signal. chnSetSig :: Sig -> Str -> SE () -- | Writes a control signal. The control signals are updated at the lower -- rate. chnSetCtrl :: Sig -> Str -> SE () -- | Writes a string. chnSetStr :: Str -> Str -> SE () -- | The functions from this module specify the geometry of the -- GUI-elements. They tell where to render the elements. -- -- Every element is rectangular. To know where to place the element is to -- know the parameters of the bounding rectangle. All rectangles are -- relative and automatically aligned. -- -- We have two functions for grouping. They construct horizontal and -- vertical groups of the elements. Within the group we can change the -- relative size of the rectangles (by scaling one side of the -- rectangle). In place of rectangle we can put an empty space. module Csound.Control.Gui.Layout -- | Horizontal groupping of the elements. All elements are placed in the -- stright horizontal line and aligned by Y-coordinate and height. hor :: [Gui] -> Gui -- | Vertical groupping of the elements. All elements are placed in the -- stright vertical line and aligned by X-coordinate and width. ver :: [Gui] -> Gui -- | An empty space. space :: Gui -- | Scales an element within the group. It depends on the type of the -- alignment (horizontal or vertical) which side of the bounding box is -- scaled. If it's a horizontal group then the width is scaled and height -- is scaled otherwise. -- -- Every element in the group has a scaling factor. By default it equals -- to one. During rendering all scaling factors are summed and divided on -- the sum of all factors. So that factors become weights or proportions. -- This process is called normalization. Scaling one element affects not -- only this element but all other elements in the group! -- -- An example: -- -- One element is twice as large as the other two: -- --
-- hor [a, b, sca 2 c] ---- -- Why is it so? Let's look at the hidden scaling factors: -- --
-- hor [sca 1 a, sca 1 b, sca 2 c] ---- -- During rendering we scale all the scaling fators so that total sum -- equals to one: -- --
-- hor [sca 0.25 a, sca 0.25 b, sca 0.5 c] --sca :: Double -> Gui -> Gui -- | Weighted horizontal grouping. It takes a list of scaling factors and -- elements. horSca :: [(Double, Gui)] -> Gui -- | Weighted vertical grouping. It takes a list of scaling factors and -- elements. verSca :: [(Double, Gui)] -> Gui -- | Layouts the widgets in grid. The first argument is the number of -- widgets in the row. -- --
-- grid rowLength widgets --grid :: Int -> [Gui] -> Gui -- | Sets the padding of the element. How much empty space to reserve -- outside the element. padding :: Int -> Gui -> Gui -- | Sets the margin of the element. How much empty space to reserve -- between the elements within the group. It affects only compound -- elements. margin :: Int -> Gui -> Gui type ScaleFactor = (Double, Double) -- | Rescales the default sizes for the UI elements. resizeGui :: ScaleFactor -> Gui -> Gui -- | Properties that specify the appearance of the GUI elements. The -- specification is inspired by CSS. All properties are set in the -- cascade manner. For example, if you want to change the font type for -- all elements you should set this property only for the top-most GUI -- element. If the property is set on the lower level it wins versus -- property that is set on the higher level. module Csound.Control.Gui.Props -- | Sets the properties for a GUI element. props :: [Prop] -> Gui -> Gui -- | Sets the properties for a GUI element on all levels. forceProps :: [Prop] -> Gui -> Gui -- | Properties of the widgets. data Prop SetLabel :: String -> Prop SetMaterial :: Material -> Prop SetBoxType :: BoxType -> Prop SetColor1 :: Color -> Prop SetColor2 :: Color -> Prop SetTextColor :: Color -> Prop SetFontSize :: Int -> Prop SetFontType :: FontType -> Prop SetEmphasis :: Emphasis -> Prop SetSliderType :: SliderType -> Prop SetTextType :: TextType -> Prop SetButtonType :: ButtonType -> Prop SetOrient :: Orient -> Prop SetKnobType :: KnobType -> Prop SetLabelType :: LabelType -> Prop data BorderType NoBorder :: BorderType DownBoxBorder :: BorderType UpBoxBorder :: BorderType EngravedBorder :: BorderType EmbossedBorder :: BorderType BlackLine :: BorderType ThinDown :: BorderType ThinUp :: BorderType -- | The Csound colours. type Color = Colour Double -- | A rectangle. data Rect Rect :: Int -> Int -> Int -> Int -> Rect [px] :: Rect -> Int [py] :: Rect -> Int [width] :: Rect -> Int [height] :: Rect -> Int data FontType Helvetica :: FontType Courier :: FontType Times :: FontType Symbol :: FontType Screen :: FontType Dingbats :: FontType data Emphasis NoEmphasis :: Emphasis Italic :: Emphasis Bold :: Emphasis BoldItalic :: Emphasis -- | The type of the material of the element. It affects sliders and -- buttons. data Material NoPlastic :: Material Plastic :: Material -- | The orientation of the widget (slider, roller). This property is never -- needs to be set in practice. If this property is not set then default -- orientation is calculated from the bounding box of the widget. If the -- width is greater than the height then we need to use a horizontal -- widget otherwise it should be a vertical one. data Orient Hor :: Orient Ver :: Orient setBorder :: BorderType -> Gui -> Gui setLabel :: String -> Gui -> Gui setMaterial :: Material -> Gui -> Gui setColor1 :: Color -> Gui -> Gui setColor2 :: Color -> Gui -> Gui setColors :: Color -> Color -> Gui -> Gui setTextColor :: Color -> Gui -> Gui setFontSize :: Int -> Gui -> Gui setFontType :: FontType -> Gui -> Gui setEmphasis :: Emphasis -> Gui -> Gui setOrient :: Orient -> Gui -> Gui -- | Open Sound Control. module Csound.Control.Osc -- | The hostname of the computer. An empty string is for local machine. type OscHost = String -- | Port to listen OSC-messages. type OscPort = Int -- | Path-like string ("foobar/baz") type OscAddress = String -- | The string specifies the type of expected arguments. The string can -- contain the characters "bcdfilmst" which stand for Boolean, character, -- double, float, 32-bit integer, 64-bit integer, MIDI, string and -- timestamp. type OscType = String data OscRef -- | Initializes host client. The process starts to run in the background. initOsc :: OscPort -> OscRef -- | Listens for the OSC-messages. The first argument is OSC-reference. We -- can create it with the function initOsc. The next two -- arguments are strings. The former specifies the path-like address to -- listen the messages. It can be: -- --
-- /foo/bar/baz ---- -- The latter specifies the type of expected arguments. The string can -- contain the characters "bcdfilmst" which stand for Boolean, character, -- double, float, 32-bit integer, 64-bit integer, MIDI, string and -- timestamp. -- -- The result is an event of messages. We can run a callback on it with -- standard function runEvt: -- --
-- runEvt :: Evt a -> (a -> SE ()) -> SE () --listenOsc :: Tuple a => OscRef -> OscAddress -> OscType -> Evt a type ListenOsc a = OscAddress -> a -> SE a class Tuple a => OscVal a -- | Listens for tuples of continuous signals read from OSC-channel. -- --
-- listenOscVal ref address initValue --listenOscVal :: (Tuple a, OscVal a) => OscRef -> String -> a -> SE a -- | Listens for continuous signal from OSC-channel -- --
-- listenOscSig host address initValue --listenOscSig :: OscRef -> OscAddress -> Sig -> SE Sig -- | Listens for pair of continuous signals from OSC-channel -- --
-- listenOscSig2 host address initValue --listenOscSig2 :: OscRef -> OscAddress -> Sig2 -> SE Sig2 -- | Sends OSC-messages. It takes in a name of the host computer (empty -- string is alocal machine), port on which the target machine is -- listening, OSC-addres and type. The last argument produces the values -- for OSC-messages. sendOsc :: Tuple a => OscHost -> OscPort -> OscAddress -> OscType -> Evt a -> SE () module Csound.Control.SE -- | The Csound's IO-monad. All values that produce side effects -- are wrapped in the SE-monad. data SE a -- | It describes a reference to mutable values. data Ref a writeRef :: Tuple a => Ref a -> a -> SE () readRef :: Tuple a => Ref a -> SE a -- | Modifies the Ref value with given function. modifyRef :: Tuple a => Ref a -> (a -> a) -> SE () -- | Adds the given signal to the value that is contained in the reference. mixRef :: (Num a, Tuple a) => Ref a -> a -> SE () -- | Allocates a new local (it is visible within the instrument) mutable -- value and initializes it with value. A reference can contain a tuple -- of variables. newRef :: Tuple a => a -> SE (Ref a) -- | An alias for the function newRef. It returns not the -- reference to mutable value but a pair of reader and writer functions. sensorsSE :: Tuple a => a -> SE (SE a, a -> SE ()) -- | Allocates a new global mutable value and initializes it with value. A -- reference can contain a tuple of variables. newGlobalRef :: Tuple a => a -> SE (Ref a) -- | An alias for the function newRef. It returns not the -- reference to mutable value but a pair of reader and writer functions. globalSensorsSE :: Tuple a => a -> SE (SE a, a -> SE ()) -- | Allocates a new local (it is visible within the instrument) mutable -- value and initializes it with value. A reference can contain a tuple -- of variables. It contains control signals (k-rate) and constants for -- numbers (i-rates). newCtrlRef :: Tuple a => a -> SE (Ref a) -- | Allocates a new global mutable value and initializes it with value. A -- reference can contain a tuple of variables. It contains control -- signals (k-rate) and constants for numbers (i-rates). newGlobalCtrlRef :: Tuple a => a -> SE (Ref a) -- | Allocates a new clearable global mutable value and initializes it with -- value. A reference can contain a tuple of variables. The variable is -- set to zero at the end of every iteration. It's useful for -- accumulation of audio values from several instruments. newClearableGlobalRef :: Tuple a => a -> SE (Ref a) -- | Creates a new table. The Tab could be used while the instrument is -- playing. When the instrument is retriggered the new tab is allocated. -- --
-- newTab size --newTab :: D -> SE Tab -- | Creates a new global table. It's generated only once. It's persisted -- between instrument calls. -- --
-- newGlobalTab identifier size --newGlobalTab :: Int -> SE Tab whileRef :: Tuple st => st -> (st -> SE BoolSig) -> (st -> SE st) -> SE () module Csound.Options -- | Csound options. The default values are -- --
-- flags = def -- the only flag set by default is "no-displays" -- -- to supress the display of the tables -- sampleRate = 44100 -- blockSize = 64 -- gain = 0.5 -- tabFi = fineFi 13 [(idLins, 11), (idExps, 11), (idConsts, 9), (idSplines, 11), (idStartEnds, 12)] } -- scaleUI = (1, 1) --data Options Options :: Flags -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe TabFi -> Maybe (Double, Double) -> Maybe Jacko -> Maybe [(String, String)] -> Maybe Bool -> Options -- | Csound command line flags [csdFlags] :: Options -> Flags -- | The sample rate [csdSampleRate] :: Options -> Maybe Int -- | The number of audio samples in one control step [csdBlockSize] :: Options -> Maybe Int -- | A gain of the final output [csdGain] :: Options -> Maybe Double -- | Default fidelity of the arrays [csdTabFi] :: Options -> Maybe TabFi -- | Scale factors for UI-window [csdScaleUI] :: Options -> Maybe (Double, Double) [csdJacko] :: Options -> Maybe Jacko -- | list of jack connections to make after csound app is launched (Linux -- only) [csdJackConnect] :: Options -> Maybe [(String, String)] -- | Do we need debug-trace, default is False [csdTrace] :: Options -> Maybe Bool -- | Sets the global duration of the file or output signal to the given -- value. It should be used only once! The proper place is in the -- top-most expression before sending to dac or -- writeWav. setDur :: Sigs a => D -> a -> a -- | Sets sample rate and block size -- --
-- setRates sampleRate blockSize --setRates :: Int -> Int -> Options -- | Sets hardware and software buffers. -- --
-- setBufs hardwareBuf ioBuf --setBufs :: Int -> Int -> Options -- | Sets the default gain for the output signal (should be in range 0 to -- 1). setGain :: Double -> Options -- | Runs as JACK unit with given name (first argument). setJack :: String -> Options -- | Defines what ports we should connect after application is launched -- -- It invokes jack_connect for every pair of port-names in the -- list. setJackConnect :: [(String, String)] -> Options -- | Sets real-time driver to Alsa (use on Linux). setAlsa :: Options -- | Sets real-time driver to Core Audio (use on OSX). setCoreAudio :: Options -- | Sets real-time driver to Mme (use on Windows). setMme :: Options -- | Set's the output name of the device or file. setOutput :: String -> Options -- | Set's the input name of the device or file. setInput :: String -> Options -- | Sends output to speakers. setDac :: Options -- | Reads input from audio-card inputs. setAdc :: Options -- | Provides name identifier for dac. setDacBy :: String -> Options -- | Provides name identifier for adc. setAdcBy :: String -> Options -- | Sets both dac and adc. setThru :: Options -- | Sets the output to nosound. setSilent :: Options -- | Sets midi device. It's an string identifier of the device. -- -- Read MIDI events from device DEVICE. If using ALSA MIDI -- (-+rtmidi=alsa), devices are selected by name and not number. So, you -- need to use an option like -M hw:CARD,DEVICE where CARD and DEVICE are -- the card and device numbers (e.g. -M hw:1,0). In the case of PortMidi -- and MME, DEVICE should be a number, and if it is out of range, an -- error occurs and the valid device numbers are printed. When using -- PortMidi, you can use '-Ma' to enable all devices. This is also -- convenient when you don't have devices as it will not generate an -- error. setMidiDevice :: String -> Options -- | Sets midi device to all. setMa :: Options -- | Sets message level. For input integer value consult the Csound docs -- -- http://csound.com/docs/manual/CommandFlagsCategory.html setMessageLevel :: Int -> Options -- | Sets the tracing or debug info of csound console to minimum. noMessages :: Options setTrace :: Options -- | Provides options for Cabbage VST-engine. setCabbage :: Options -- | Defines a header for a Jacko opcodes. The Jacko opcodes allow for -- greater flexibility with definition of Jack-client. See the Csound -- docs for details and the datatype Jacko. -- --
-- csound doc: <http://csound.github.io/docs/manual/JackoOpcodes.html> --setJacko :: Jacko -> Options data Flags Flags :: AudioFileOutput -> IdTags -> Maybe Rtaudio -> Maybe PulseAudio -> MidiIO -> MidiRT -> Maybe Rtmidi -> Displays -> Config -> Maybe String -> Flags [audioFileOutput] :: Flags -> AudioFileOutput [idTags] :: Flags -> IdTags [rtaudio] :: Flags -> Maybe Rtaudio [pulseAudio] :: Flags -> Maybe PulseAudio [midiIO] :: Flags -> MidiIO [midiRT] :: Flags -> MidiRT [rtmidi] :: Flags -> Maybe Rtmidi [displays] :: Flags -> Displays [config] :: Flags -> Config [flagsVerbatim] :: Flags -> Maybe String data AudioFileOutput AudioFileOutput :: Maybe FormatSamples -> Maybe FormatType -> Maybe String -> Maybe String -> Bool -> Bool -> Maybe Dither -> AudioFileOutput [formatSamples] :: AudioFileOutput -> Maybe FormatSamples [formatType] :: AudioFileOutput -> Maybe FormatType [output] :: AudioFileOutput -> Maybe String [input] :: AudioFileOutput -> Maybe String [nosound] :: AudioFileOutput -> Bool [nopeaks] :: AudioFileOutput -> Bool [dither] :: AudioFileOutput -> Maybe Dither data FormatHeader NoHeader :: FormatHeader RewriteHeader :: FormatHeader data FormatSamples Bit24 :: FormatSamples Alaw :: FormatSamples Uchar :: FormatSamples Schar :: FormatSamples FloatSamples :: FormatSamples Ulaw :: FormatSamples Short :: FormatSamples Long :: FormatSamples data FormatType Aiff :: FormatType Au :: FormatType Avr :: FormatType Caf :: FormatType Flac :: FormatType Htk :: FormatType Ircam :: FormatType Mat4 :: FormatType Mat5 :: FormatType Nis :: FormatType Paf :: FormatType Pvf :: FormatType Raw :: FormatType Sd2 :: FormatType Sds :: FormatType Svx :: FormatType Voc :: FormatType W64 :: FormatType Wav :: FormatType Wavex :: FormatType Xi :: FormatType data Dither Triangular :: Dither Uniform :: Dither data IdTags IdTags :: Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> IdTags [idArtist] :: IdTags -> Maybe String [idComment] :: IdTags -> Maybe String [idCopyright] :: IdTags -> Maybe String [idDate] :: IdTags -> Maybe String [idSoftware] :: IdTags -> Maybe String [idTitle] :: IdTags -> Maybe String data Rtaudio PortAudio :: Rtaudio Alsa :: Rtaudio Jack :: String -> String -> String -> Rtaudio [jackClient] :: Rtaudio -> String [jackInport] :: Rtaudio -> String [jackOutport] :: Rtaudio -> String Mme :: Rtaudio CoreAudio :: Rtaudio NoRtaudio :: Rtaudio data PulseAudio PulseAudio :: String -> String -> String -> PulseAudio [paServer] :: PulseAudio -> String [paOutput] :: PulseAudio -> String [paInput] :: PulseAudio -> String data MidiIO MidiIO :: Maybe String -> Maybe String -> Maybe String -> Bool -> Bool -> MidiIO [midiFile] :: MidiIO -> Maybe String [midiOutFile] :: MidiIO -> Maybe String [muteTracks] :: MidiIO -> Maybe String [rawControllerMode] :: MidiIO -> Bool [terminateOnMidi] :: MidiIO -> Bool data MidiRT MidiRT :: Maybe String -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe String -> MidiRT [midiDevice] :: MidiRT -> Maybe String [midiKey] :: MidiRT -> Maybe Int [midiKeyCps] :: MidiRT -> Maybe Int [midiKeyOct] :: MidiRT -> Maybe Int [midiKeyPch] :: MidiRT -> Maybe Int [midiVelocity] :: MidiRT -> Maybe Int [midiVelocityAmp] :: MidiRT -> Maybe Int [midiOutDevice] :: MidiRT -> Maybe String data Rtmidi PortMidi :: Rtmidi AlsaMidi :: Rtmidi AlsaSeq :: Rtmidi CoreMidi :: Rtmidi MmeMidi :: Rtmidi WinmmeMidi :: Rtmidi VirtualMidi :: Rtmidi NoRtmidi :: Rtmidi data Displays Displays :: Maybe Int -> Maybe DisplayMode -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Bool -> Bool -> Maybe Int -> Displays [csdLineNums] :: Displays -> Maybe Int [displayMode] :: Displays -> Maybe DisplayMode [displayHeartbeat] :: Displays -> Maybe Int [messageLevel] :: Displays -> Maybe Int [mAmps] :: Displays -> Maybe Int [mRange] :: Displays -> Maybe Int [mWarnings] :: Displays -> Maybe Int [mDb] :: Displays -> Maybe Int [mColours] :: Displays -> Maybe Int [mBenchmarks] :: Displays -> Maybe Int [msgColor] :: Displays -> Bool [displayVerbose] :: Displays -> Bool [listOpcodes] :: Displays -> Maybe Int data DisplayMode NoDisplay :: DisplayMode PostScriptDisplay :: DisplayMode AsciiDisplay :: DisplayMode data Config Config :: Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe String -> Maybe (String, String) -> Maybe (String, String) -> Bool -> Maybe Int -> Maybe (Int, String) -> Maybe Double -> Maybe Int -> Config [hwBuf] :: Config -> Maybe Int [ioBuf] :: Config -> Maybe Int [newKr] :: Config -> Maybe Int [newSr] :: Config -> Maybe Int [scoreIn] :: Config -> Maybe String [omacro] :: Config -> Maybe (String, String) [smacro] :: Config -> Maybe (String, String) [setSched] :: Config -> Bool [schedNum] :: Config -> Maybe Int [strsetN] :: Config -> Maybe (Int, String) [skipSeconds] :: Config -> Maybe Double [setTempo] :: Config -> Maybe Int module Csound.SigSpace -- | A class for easy way to process the outputs of the instruments. class SigSpace a mapSig :: SigSpace a => (Sig -> Sig) -> a -> a -- | A class for easy way to process the outputs of the instruments. class SigSpace a => BindSig a bindSig :: BindSig a => (Sig -> SE Sig) -> a -> SE a -- | Scaling the sound. mul :: SigSpace a => Sig -> a -> a -- | Scaling the sound with effectful signal. mul' :: BindSig a => SE Sig -> a -> SE a -- | Rescaling of the bipolar signal (-1, 1) -> (a, b) -- --
-- on a b biSig --on :: SigSpace a => Sig -> Sig -> a -> a -- | Rescaling of the unipolar signal (0, 1) -> (a, b) -- --
-- on a b uniSig --uon :: SigSpace a => Sig -> Sig -> a -> a class SigSpace b => At a b c where { type family AtOut a b c; } at :: At a b c => (a -> b) -> c -> AtOut a b c -- | It applies an effect and mixes the processed signal with original one. -- The first argument is for proportion of drywet -- (originalprocessed). It's like at but it allows to -- balance processed signal with original one. class (SigSpace b, At a b c) => MixAt a b c mixAt :: MixAt a b c => Sig -> (a -> b) -> c -> AtOut a b c -- | It applies an effect and balances the processed signal by original -- one. bat :: At Sig a b => (Sig -> a) -> b -> AtOut Sig a b -- | It applies an effect and balances the processed signal by original -- one. Also it applies an effect and mixes the processed balanced signal -- with original one. bmixAt :: MixAt Sig a b => Sig -> (Sig -> a) -> b -> AtOut Sig a b -- | Crossfade. -- --
-- cfd coeff sig1 sig2 ---- -- If coeff equals 0 then we get the first signal and if it equals 1 we -- get the second signal. cfd :: (Num a, SigSpace a) => Sig -> a -> a -> a -- | Bilinear interpolation for four signals. The signals are placed in the -- corners of the unit square. The first two signals are the xy -- coordinates in the square. -- --
-- cfd4 x y a b c d ---- --
-- cfds coeffs sigs --cfds :: (Num a, SigSpace a) => [Sig] -> [a] -> a -- | Spectral crossfade. cfdSpec :: Sig -> Spec -> Spec -> Spec -- | Spectral bilinear crossfade (see cfd4). cfdSpec4 :: Sig -> Sig -> Spec -> Spec -> Spec -> Spec -> Spec -- | Generic spectral crossfade. cfdsSpec :: [Sig] -> [Spec] -> Spec -- | Weighted sum. wsum :: (Num a, SigSpace a) => [(Sig, a)] -> a -- | A class for easy way to process the outputs of the instruments. class SigSpace2 a mapSig2 :: SigSpace2 a => (Sig2 -> Sig2) -> a -> a -- | A class for easy way to process the outputs of the instruments. class SigSpace2 a => BindSig2 a bindSig2 :: BindSig2 a => (Sig2 -> SE Sig2) -> a -> SE a -- | Scaling the sound with a pair. mul2 :: SigSpace2 a => Sig2 -> a -> a -- | Scaling the sound with effectful pair of signals. mul2' :: BindSig2 a => SE Sig2 -> a -> SE a -- | Filters module Csound.Air.Filter -- | First order low pass filter (tone in Csound, 6 dB) -- --
-- lp1 centerFreq asig --lp1 :: Sig -> Sig -> Sig -- | First order high pass filter (atone in Csound, 6 dB) -- --
-- hp1 centerFreq asig --hp1 :: Sig -> Sig -> Sig -- | Low-pass filter. -- --
-- lp cutoff resonance sig --lp :: Sig -> Sig -> Sig -> Sig -- | High-pass filter. -- --
-- hp cutoff resonance sig --hp :: Sig -> Sig -> Sig -> Sig -- | Band-pass filter. -- --
-- bp cutoff resonance sig --bp :: Sig -> Sig -> Sig -> Sig -- | Band-reject filter. -- --
-- br cutoff resonance sig --br :: Sig -> Sig -> Sig -> Sig -- | All-pass filter. -- --
-- alp cutoff resonance sig --alp :: Sig -> Sig -> Sig -> Sig -- | Resonance band pass filter (yet another implementation, it's reson in -- Csound) -- --
-- bp2 centerFreq q asig --bp2 :: Sig -> Sig -> Sig -> Sig -- | Resonance band reject filter (yet another implementation, it's areson -- in Csound) -- --
-- br2 centerFreq q asig --br2 :: Sig -> Sig -> Sig -> Sig -- | Low-pass filter. -- --
-- blp cutoff sig --blp :: Sig -> Sig -> Sig -- | High-pass filter. -- --
-- bhp cutoff sig --bhp :: Sig -> Sig -> Sig -- | Band-pass filter. -- --
-- bbp cutoff bandwidth sig --bbp :: Sig -> Sig -> Sig -> Sig -- | Band-regect filter. -- --
-- bbr cutoff bandwidth sig --bbr :: Sig -> Sig -> Sig -> Sig -- | Resonant filter. -- --
-- f centerFreq q asig --type ResonFilter = Sig -> Sig -> Sig -> Sig -- | Filter without a resonance. -- --
-- f centerFreq q asig --type FlatFilter = Sig -> Sig -> Sig -- | Applies a filter n-times. The n is given in the first rgument. filt :: Int -> ResonFilter -> ResonFilter -- | Applies a flat filter (without resonance) n-times. The n is given in -- the first rgument. flatFilt :: Int -> FlatFilter -> FlatFilter -- | Makes fake resonant filter from flat filter. The resulting filter just -- ignores the resonance. toReson :: FlatFilter -> ResonFilter -- | Moog's low-pass filter. -- --
-- mlp centerFrequency qResonance signal --mlp :: Sig -> Sig -> Sig -> Sig -- | Another implementation of moog low pass filter (it's moogladder in -- Csound). The arguments have are just like in the mlp filter. -- --
-- mlp2 centerFreq q asig --mlp2 :: Sig -> Sig -> Sig -> Sig -- | Mooglowpass filter with 18 dB. -- --
-- mlp3 centerFreq q asig --mlp3 :: Sig -> Sig -> Sig -> Sig -- | Low pass filter 18 dB with built in distortion module. -- --
-- lp18 distortion centerFreq resonance asig ---- --
-- ladder centerFreq q asig --ladder :: Sig -> Sig -> Sig -> Sig -- | Formant filter. -- --
-- formant bandPassFilter formants asig ---- -- It expects a band pass filter, a list of formants and processed -- signal. The signal is processed with each filter the result is a sum -- of all proceessed signals. Formant filters are used to mimic the -- vocalization of the sound. formant :: ResonFilter -> [(Sig, Sig)] -> Sig -> Sig -- | Formant filter that sings an A. singA :: Sig -> Sig -- | Formant filter that sings an O. singO :: Sig -> Sig -- | Formant filter that sings an E. singE :: Sig -> Sig -- | Formant filter that sings an U. singU :: Sig -> Sig -- | Formant filter that sings an O. singO2 :: Sig -> Sig -- | Produces smooth transitions between values in the signals. The first -- value defines a duration in seconds for a transition from one value to -- another in piecewise constant signals. -- --
-- smooth transTime asig --smooth :: Sig -> Sig -> Sig -- | Makes slides between values in the signals. The first value defines a -- duration in seconds for a transition from one value to another in -- piecewise constant signals. slide :: Sig -> Sig -> Sig -- | Analog-like low-pass filter -- --
-- alpf1 centerFrequency resonance asig --alp1 :: Sig -> Sig -> Sig -> Sig -- | Analog-like low-pass filter -- --
-- alpf2 centerFrequency resonance asig --alp2 :: Sig -> Sig -> Sig -> Sig -- | Analog-like low-pass filter -- --
-- alpf3 centerFrequency resonanceance asig --alp3 :: Sig -> Sig -> Sig -> Sig -- | Analog-like low-pass filter -- --
-- alpf4 centerFrequency resonance asig ---- -- Analog outputs -- --
-- ahp centerFrequency asig --ahp :: Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 1 pole filter. -- -- ouputs low-pass and high-pass signals. -- --
-- zdf1 centerFreq asig = (alp, ahp) --zdf1 :: Sig -> Sig -> (Sig, Sig) -- | Zero-delay feedback implementation of 1 pole low-pass filter. -- --
-- zlp1 centerFreq asig --zlp1 :: Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 1 pole high-pass filter. -- --
-- zhp1 centerFreq asig --zhp1 :: Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 1 pole allpass filter. -- --
-- zap1 centerFreq asig --zap1 :: Sig -> Sig -> Sig -- | zero delay feedback 2 pole filter -- --
-- zdf2 centerFreq q asig = (alp, abp, ahp) --zdf2 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig) -- | zero delay feedback 2 pole Low pass filter. Q is unipolar [0, 1] -- --
-- zlp centerFreq q asig --zlp :: Sig -> Sig -> Sig -> Sig -- | zero delay feedback 2 pole High pass filter. Q is unipolar [0, 1] -- --
-- zhp centerFreq q asig --zhp :: Sig -> Sig -> Sig -> Sig -- | zero delay feedback 2 pole Band pass. Q is unipolar [0, 1] -- --
-- zbp centerFreq q asig --zbp :: Sig -> Sig -> Sig -> Sig -- | Unity-gain bandpass (zero delay feedback 2 pole). Q is unipolar [0, 1] -- --
-- zubp centerFreq q asig --zubp :: Sig -> Sig -> Sig -> Sig -- | zero delay feedback 2 pole Notch (band reject). Q is unipolar [0, 1] -- --
-- zbr centerFreq q asig --zbr :: Sig -> Sig -> Sig -> Sig -- | zero delay feedback 2 pole Allpass filter. Q is unipolar [0, 1] -- --
-- zap centerFreq q asig --zap :: Sig -> Sig -> Sig -> Sig -- | zero delay feedback 2 pole Peak filter. Q is unipolar [0, 1] -- --
-- zpeak centerFreq q asig --zpeak :: Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 4 pole ladder filter. Q is -- unipolar [0, 1] -- --
-- zladder centerFreq q asig --zladder :: Sig -> Sig -> Sig -> Sig -- | Chebyshev type I low pass filter (with 2 poles). -- -- lpCheb1 centerFreq asig lpCheb1 :: Sig -> Sig -> Sig -- | Chebyshev type I low pass filter (with given number of poles, first -- argument). -- -- lpCheb1' npols centerFreq asig lpCheb1' :: D -> Sig -> Sig -> Sig -- | Chebyshev type II low pass filter (with 2 poles). -- -- lpCheb2 centerFreq asig lpCheb2 :: Sig -> Sig -> Sig -- | Chebyshev type II low pass filter (with given number of poles, first -- argument). -- -- lpCheb2' npols centerFreq asig lpCheb2' :: D -> Sig -> Sig -> Sig -- | Butterworth lowpass filter based on clfilt opcode (with 2 poles). -- -- clp centerFreq asig clp :: Sig -> Sig -> Sig -- | Butterworth lowpass filter based on clfilt opcode (with given number -- of poles, first argument). -- -- clp' npols centerFreq asig clp' :: D -> Sig -> Sig -> Sig bpCheb1 :: Sig -> Sig -> Sig -> Sig bpCheb1' :: D -> Sig -> Sig -> Sig -> Sig bpCheb2 :: Sig -> Sig -> Sig -> Sig bpCheb2' :: D -> Sig -> Sig -> Sig -> Sig cbp :: Sig -> Sig -> Sig -> Sig cbp' :: D -> Sig -> Sig -> Sig -> Sig -- | Chebyshev type I high pass filter (with 2 poles). -- -- hpCheb1 centerFreq asig hpCheb1 :: Sig -> Sig -> Sig -- | Chebyshev type I high pass filter (with given number of poles, first -- argument). -- -- hpCheb1' npols centerFreq asig hpCheb1' :: D -> Sig -> Sig -> Sig -- | Chebyshev type II high pass filter (with 2 poles). -- -- hpCheb2 centerFreq asig hpCheb2 :: Sig -> Sig -> Sig -- | Chebyshev type II high pass filter (with given number of poles, first -- argument). -- -- hpCheb2' npols centerFreq asig hpCheb2' :: D -> Sig -> Sig -> Sig -- | Butterworth high pass filter based on clfilt opcode (with 2 poles). -- -- chp centerFreq asig chp :: Sig -> Sig -> Sig -- | Butterworth high pass filter based on clfilt opcode (with given number -- of poles, first argument). -- -- chp' npols centerFreq asig chp' :: D -> Sig -> Sig -> Sig cheb1 :: Sig -> Sig -> Sig -> Sig cheb2 :: Sig -> Sig -> Sig -> Sig vcf :: Sig -> Sig -> Sig -> Sig cheb1' :: D -> Sig -> Sig -> Sig -> Sig cheb2' :: D -> Sig -> Sig -> Sig -> Sig vcf' :: D -> Sig -> Sig -> Sig -> Sig -- | plastic sound -- --
-- plastic centerFreq q asig --plastic :: Sig -> Sig -> Sig -> Sig -- | wobble sound -- --
-- wobble centerFreq q asig --wobble :: Sig -> Sig -> Sig -> Sig -- | trumpy sound -- --
-- trumpy centerFreq q asig --trumpy :: Sig -> Sig -> Sig -> Sig -- | harsh sound -- --
-- harsh centerFreq q asig --harsh :: Sig -> Sig -> Sig -> Sig -- | Fixed version of tbfcv filter the first argument is distortion (range -- [0, 1]) tbf :: Sig -> Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 4 pole diode ladder filter (24 -- dB/oct) . This filter design was originally used in the EMS VCS3 and -- was the resonant filter in the Roland TB-303. -- --
-- diode saturation centerFreq q asig --diode :: D -> Sig -> Sig -> Sig -> Sig -- | Faster diode, but lesser quality -- --
-- fdiode saturation centerFreq q asig --fdiode :: D -> Sig -> Sig -> Sig -> Sig -- | Linear diode, no saturation involved -- --
-- linDiode centerFreq q asig --linDiode :: Sig -> Sig -> Sig -> Sig -- | Linear Korg35 resonant low-pass filter -- --
-- linKorg_lp centerFreq q asig --linKorg_lp :: Sig -> Sig -> Sig -> Sig -- | Linear Korg35 resonant high-pass filter -- --
-- linKorg_hp centerFreq q asig --linKorg_hp :: Sig -> Sig -> Sig -> Sig linKorg_bp :: Sig -> Sig -> Sig -> Sig -- | Korg35 resonant low-pass filter. Q is unipolar [0, 1] -- --
-- korg_lp saturation centerFreq q asig --korg_lp :: D -> Sig -> Sig -> Sig -> Sig -- | Korg35 resonant high-pass filter. Q is unipolar [0, 1] -- --
-- korg_hp saturation centerFreq q asig --korg_hp :: D -> Sig -> Sig -> Sig -> Sig -- | Korg35 resonant band-pass filter. Q is unipolar [0, 1] -- --
-- korg_bp saturation centerFreq q asig --korg_bp :: D -> Sig -> Sig -> Sig -> Sig -- | Alias for korg_lp klp :: D -> Sig -> Sig -> Sig -> Sig -- | Alias for korg_hp khp :: D -> Sig -> Sig -> Sig -> Sig -- | Alias for korg_bp kbp :: D -> Sig -> Sig -> Sig -> Sig -- | State variable low-pass filter slp :: Sig -> Sig -> Sig -> Sig -- | State variable high-pass filter shp :: Sig -> Sig -> Sig -> Sig -- | State variable band-pass filter sbp :: Sig -> Sig -> Sig -> Sig -- | State variable band-reject filter sbr :: Sig -> Sig -> Sig -> Sig multiStatevar :: (Sig, Sig, Sig) -> Sig -> Sig -> Sig -> Sig multiSvfilter :: (Sig, Sig, Sig) -> Sig -> Sig -> Sig -> Sig -- | Creating Function Tables (Buffers) module Csound.Tab -- | Tables (or arrays) data Tab -- | The default table. It's rendered to (-1) in the Csound. noTab :: Tab -- | nsamp — Returns the number of samples loaded into a stored function -- table number. -- --
-- nsamp(x) (init-rate args only) ---- -- csound doc: http://www.csounds.com/manual/html/nsamp.html nsamp :: Tab -> D -- | Returns a length of the table. ftlen :: Tab -> D -- | Returns the sample rate for a table that stores wav files ftsr :: Tab -> D -- | Returns the number of channels for a table that stores wav files ftchnls :: Tab -> D -- | Returns the base frequency for a table that stores wav files ftcps :: Tab -> D -- | Table size fidelity (how many points in the table by default). data TabFi -- | Sets different table size for different GEN-routines. -- --
-- fineFi n ps ---- -- where -- --
-- coarseFi n ---- -- where n is a degree of 2. For example, n = 10 sets -- size to 1024 points for all tables by default. coarseFi :: Int -> TabFi -- | Table contains all provided values (table is extended to contain all -- values and to be of the power of 2 or the power of two plus one). (by -- default it skips normalization). doubles :: [Double] -> Tab -- | Creates a new table. The Tab could be used while the instrument is -- playing. When the instrument is retriggered the new tab is allocated. -- --
-- newTab size --newTab :: D -> SE Tab -- | Creates a new global table. It's generated only once. It's persisted -- between instrument calls. -- --
-- newGlobalTab identifier size --newGlobalTab :: Int -> SE Tab -- | Calculates the number of samples needed to store the given amount of -- seconds. It multiplies the value by the current sample rate. tabSizeSeconds :: D -> D -- | Calculates the closest power of two value for a given size. tabSizePower2 :: D -> D -- | Calculates the closest power of two value in samples for a given size -- in seconds. tabSizeSecondsPower2 :: D -> D data WavChn WavLeft :: WavChn WavRight :: WavChn WavAll :: WavChn data Mp3Chn Mp3Mono :: Mp3Chn Mp3Stereo :: Mp3Chn Mp3Left :: Mp3Chn Mp3Right :: Mp3Chn Mp3All :: Mp3Chn -- | Loads wav or aiff file to table -- --
-- wavs fileName skipTime channel ---- -- skipTime specifies from what second it should read the file. -- -- with channel argument we can read left, right or both channels. wavs :: String -> Double -> WavChn -> Tab -- | Reads left channel of audio-file wavLeft :: String -> Tab -- | Reads right channel of audio-file wavRight :: String -> Tab -- | Loads mp3 file to table: -- --
-- mp3s fileName skipTime format ---- -- skipTime specifies from what second it should read the file. -- -- format is: 1 - for mono files, 2 - for stereo files, 3 - for left -- channel of stereo file, 4 for right channel of stereo file mp3s :: String -> Double -> Mp3Chn -> Tab -- | Reads left channel of mp3-file mp3Left :: String -> Tab -- | Reads right channel of mp3-file mp3Right :: String -> Tab -- | Reads mono of mp3-file mp3m :: String -> Tab -- | Reads numbers from file (GEN23) -- -- csound doc: http://www.csounds.com/manual/html/GEN23.html readNumFile :: String -> Tab -- | Reads trajectory from file (GEN28) -- -- csound doc: http://www.csounds.com/manual/html/GEN28.html readTrajectoryFile :: String -> Tab -- | Reads PVOCEX files (GEN43) -- -- csound doc: http://www.csounds.com/manual/html/GEN43.html readPvocex :: String -> Int -> Tab -- | readMultichannel — Creates an interleaved multichannel table from the -- specified source tables, in the format expected by the ftconv opcode -- (GEN52). -- --
-- f # time size 52 nchannels fsrc1 offset1 srcchnls1 [fsrc2 offset2 srcchnls2 ... fsrcN offsetN srcchnlsN] ---- -- csound doc: http://www.csounds.com/manual/html/GEN52.html readMultichannel :: Int -> [(Tab, Int, Int)] -> Tab type PartialStrength = Double type PartialNumber = Double type PartialPhase = Double type PartialDC = Double -- | Series of harmonic partials: -- --
-- sine = sines [1] ---- --
-- saw = sines $ fmap (1 / ) [1 .. 10] ---- --
-- square = sines $ fmap (1 / ) [1, 3 .. 11] ---- --
-- triangle = sines $ zipWith (\a b -> a / (b ** 2)) (cycle [1, -1]) [1, 3 .. 11] --sines :: [PartialStrength] -> Tab -- | Specifies series of possibly inharmonic partials. sines3 :: [(PartialNumber, PartialStrength, PartialPhase)] -> Tab -- | Just like sines3 but phases are set to zero. sines2 :: [(PartialNumber, PartialStrength)] -> Tab -- | Just like sines2 but partial strength is set to one. sines1 :: [PartialNumber] -> Tab -- | Specifies series of possibly inharmonic partials with direct current. sines4 :: [(PartialNumber, PartialStrength, PartialPhase, PartialDC)] -> Tab -- | Generates values similar to the opcode buzz. -- --
-- buzzes numberOfHarmonics [lowestHarmonic, coefficientOfAttenuation] ---- -- With buzzes n [l, r] you get n harmonics from -- l that are attenuated by the factor of r on each -- step. buzzes :: Double -> [Double] -> Tab -- | Sines with bandwidth (simplified padsynth generator) -- -- bwSines harmonics bandwidth bwSines :: [Double] -> Double -> Tab -- | Sines with bandwidth (simplified padsynth generator). Only odd -- harmonics are present -- -- bwOddSines harmonics bandwidth bwOddSines :: [Double] -> Double -> Tab -- | It's just like sines3 but inplace of pure sinewave it uses supplied in -- the first argument shape. -- -- mixOnTab srcTable [(partialNumber, partialStrength, partialPahse)] -- -- phahse is in range [0, 1] mixOnTab :: Tab -> [(PartialNumber, PartialStrength, PartialPhase)] -> Tab -- | It's like mixOnTab but it's more generic since we can mix not -- only one shape. But we can specify shape for each harmonic. mixTabs :: [(Tab, PartialNumber, PartialStrength, PartialPhase)] -> Tab -- | Csound's GEN33 — Generate composite waveforms by mixing simple -- sinusoids. -- --
-- tabSines1 srcTab nh scl [fmode] ---- -- Csound docs: http://www.csounds.com/manual/html/GEN33.html tabSines1 :: Tab -> Double -> Double -> Maybe Double -> Tab -- | Csound's GEN34 — Generate composite waveforms by mixing simple -- sinusoids. -- --
-- tabSines2 srcTab nh scl [fmode] ---- -- Csound docs: http://www.csounds.com/manual/html/GEN3.html tabSines2 :: Tab -> Double -> Double -> Maybe Double -> Tab -- | "wave" — Generates a compactly supported wavelet function. -- --
-- waveletTab srcTab seq ---- -- Csound docs: http://www.csounds.com/manual/html/GENwave.html waveletTab :: Tab -> Int -> Tab -- | "wave" — Generates a compactly supported wavelet function. The result -- table is rescaled. -- --
-- waveletTab srcTab seq ---- -- Csound docs: http://www.csounds.com/manual/html/GENwave.html rescaleWaveletTab :: Tab -> Int -> Tab -- | Table for pure sine wave. sine :: Tab -- | Table for pure cosine wave. cosine :: Tab -- | Table for sigmoid wave. sigmoid :: Tab -- | Table for sigmoid rise wave. sigmoidRise :: Tab -- | Table for sigmoid fall wave. sigmoidFall :: Tab -- | Creates tanh sigmoid. The argument is the radius of teh sigmoid. tanhSigmoid :: Double -> Tab -- | Linear segments that form a singl cycle of triangle wave. triTab :: Tab -- | Linear segments that form a single cycle of sawtooth wave. sawTab :: Tab -- | Linear segments that form a single cycle of square wave. sqrTab :: Tab -- | Pulse-width wave formed with linear segments. Duty cycle rages from 0 -- to 1. 0.5 is a square wave. pwTab :: Double -> Tab -- | Tab with tanh from the given interval. -- --
-- tanhTab (start, end) --tanhTab :: (Double, Double) -> Tab -- | Tab with tanh from the given interval. The table is rescaled. -- --
-- rescaleTanhTab (start, end) --rescaleTanhTab :: (Double, Double) -> Tab -- | Tab with exponential from the given interval. -- --
-- expTab (start, end) --expTab :: (Double, Double) -> Tab -- | Tab with exponential from the given interval. The table is rescaled. -- --
-- rescaleExpTab (start, end) --rescaleExpTab :: (Double, Double) -> Tab -- | Tab with sone from the given interval. -- --
-- soneTab (start, end) equalpoint ---- --
-- soneTab (start, end) equalpoint ---- --
-- fareyTab mode num ---- -- num -- the integer n for generating Farey Sequence Fn -- -- mode -- integer to trigger a specific output to be written into the -- table: -- --
-- consts [a, n1, b, n2, c, ...] ---- -- where -- --
-- lins [a, n1, b, n2, c, ...] ---- -- where -- --
-- cubes [a, n1, b, n2, c, ...] ---- -- where -- --
-- exps [a, n1, b, n2, c, ...] ---- -- where -- --
-- splines [a, n1, b, n2, c, ...] ---- -- where -- --
-- startEnds [val1, dur1, type1, val2, dur2, type2, val3, ... typeX, valN] ---- --
-- beg + (end - beg) * (1 - exp( i*type)) / (1 - exp(type * dur)) ---- --
-- bpLins [x1, y1, x2, y2, ..., xN, yN] ---- -- csound docs: http://www.csounds.com/manual/html/GEN27.html -- -- All x1, x2, .. should belong to the interval [0, 1]. The actual values -- are rescaled to fit the table size. bpLins :: [Double] -> Tab -- | Exponential segments in breakpoint fashion: -- --
-- bpExps [x1, y1, x2, y2, ..., xN, yN] ---- -- csound docs: http://www.csounds.com/manual/html/GEN25.html -- -- All x1, x2, .. should belong to the interval [0, 1]. The actual values -- are rescaled to fit the table size. bpExps :: [Double] -> Tab -- | Equally spaced constant segments. -- --
-- econsts [a, b, c, ...] ---- -- is the same as -- --
-- consts [a, 1, b, 1, c, ...] --econsts :: [Double] -> Tab -- | Equally spaced segments of straight lines. -- --
-- elins [a, b, c, ...] ---- -- is the same as -- --
-- lins [a, 1, b, 1, c, ...] --elins :: [Double] -> Tab -- | Equally spaced segments of cubic polynomials. -- --
-- ecubes [a, b, c, ...] ---- -- is the same as -- --
-- cubes [a, 1, b, 1, c, ...] --ecubes :: [Double] -> Tab -- | Equally spaced segments of exponential curves. -- --
-- eexps [a, b, c, ...] ---- -- is the same as -- --
-- exps [a, 1, b, 1, c, ...] --eexps :: [Double] -> Tab -- | Equally spaced spline curve. -- --
-- esplines [a, b, c, ...] ---- -- is the same as -- --
-- splines [a, 1, b, 1, c, ...] --esplines :: [Double] -> Tab -- | Equally spaced interpolation for the function startEnds -- --
-- estartEnds [val1, type1, val2, typ2, ...] ---- -- is the same as -- --
-- estartEnds [val1, 1, type1, val2, 1, type2, ...] --estartEnds :: [Double] -> Tab etabseg :: [(Tab, PartialStrength)] -> Tab -- | Polynomials. -- --
-- polys xl xr [c0, c1, c2, ..] ---- -- where -- --
-- c0 + c1 * x + c2 * x * x + ... --polys :: Double -> Double -> [Double] -> Tab -- | Chebyshev polynomials of the first kind. -- --
-- polys xl xr [h0, h1, h2, ..] ---- -- where -- --
-- polys xl xr [h0, h1, h2, ..] ---- -- where -- --
-- bessels xint ---- -- the function is defined within the interval [0, xint]. bessels :: Double -> Tab -- | Uniform (positive numbers only) uniDist :: Tab -- | Linear (positive numbers only) linDist :: Tab -- | Triangular (positive and negative numbers) triDist :: Tab -- | Exponential (positive numbers only) expDist :: Tab -- | Biexponential (positive and negative numbers) biexpDist :: Tab -- | Gaussian (positive and negative numbers) gaussDist :: Tab -- | Cauchy (positive and negative numbers) cauchyDist :: Tab -- | Positive Cauchy (positive numbers only) pcauchyDist :: Tab -- | Beta (positive numbers only) -- --
-- betaDist alpha beta ---- --
-- randDist [value1, prob1, value2, prob2, value3, prob3 ... valueN, probN] ---- -- The first number of each pair is a value, and the second is the -- probability of that value to be chosen by a random algorithm. Even if -- any number can be assigned to the probability element of each pair, it -- is suggested to give it a percent value, in order to make it clearer -- for the user. -- -- This subroutine is designed to be used together with duserrnd and urd -- opcodes (see duserrnd for more information). randDist :: [Double] -> Tab -- | rangeDist — Generates a random distribution of discrete ranges of -- values (GEN42). -- -- The first number of each group is a the minimum value of the range, -- the second is the maximum value and the third is the probability of -- that an element belonging to that range of values can be chosen by a -- random algorithm. Probabilities for a range should be a fraction of 1, -- and the sum of the probabilities for all the ranges should total 1.0. -- -- This subroutine is designed to be used together with duserrnd and urd -- opcodes (see duserrnd for more information). Since both duserrnd and -- urd do not use any interpolation, it is suggested to give a size -- reasonably big. rangeDist :: [Double] -> Tab -- | The Hamming window. The peak equals to 1. winHamming :: Tab -- | The Hanning window. The peak equals to 1. winHanning :: Tab -- | The Bartlett window. The peak equals to 1. winBartlett :: Tab -- | The Blackman window. The peak equals to 1. winBlackman :: Tab -- | The Harris window. The peak equals to 1. winHarris :: Tab -- | This creates a function that contains a Gaussian window with a maximum -- value of 1. The extra argument specifies how broad the window is, as -- the standard deviation of the curve; in this example the s.d. is 2. -- The default value is 1. -- --
-- winGauss 2 --winGauss :: Double -> Tab -- | This creates a function that contains a Kaiser window with a maximum -- value of 1. The extra argument specifies how "open" the window is, for -- example a value of 0 results in a rectangular window and a value of 10 -- in a Hamming like window. -- --
-- winKaiser openness --winKaiser :: Double -> Tab -- | The Rectangle window. The peak equals to 1. winRectangle :: Tab -- | The Sync window. The peak equals to 1. winSync :: Tab -- | Creates tables for the padsynth algorithm (described at -- http://www.paulnasca.com/algorithms-created-by-me). The table -- size should be very big the default is 18 power of 2. -- -- csound docs: -- http://csound.github.io/docs/manual/GENpadsynth.html padsynth :: PadsynthSpec -> Tab -- | Padsynth parameters. -- -- see for details: -- http://csound.github.io/docs/manual/GENpadsynth.html data PadsynthSpec PadsynthSpec :: Double -> Double -> Double -> Double -> PadsynthShape -> Double -> [Double] -> PadsynthSpec [padsynthFundamental] :: PadsynthSpec -> Double [padsynthBandwidth] :: PadsynthSpec -> Double [padsynthPartialScale] :: PadsynthSpec -> Double [padsynthHarmonicStretch] :: PadsynthSpec -> Double [padsynthShape] :: PadsynthSpec -> PadsynthShape [padsynthShapeParameter] :: PadsynthSpec -> Double [padsynthHarmonics] :: PadsynthSpec -> [Double] data PadsynthShape GaussShape :: PadsynthShape SquareShape :: PadsynthShape ExpShape :: PadsynthShape -- | Specs for padsynth algorithm: -- --
-- defPadsynthSpec partialBandwidth harmonics ---- --
-- tabHarmonics src minh maxh [ref_sr] [interp] ---- --
-- scaleTab (minValue, maxValue) sourceTab --scaleTab :: (Double, Double) -> Tab -> Tab -- | Creates a table of doubles (It's f-table in Csound). Arguments are: -- --
-- kstart tablewa kfn, asig, koff ---- -- csound docs: http://www.csounds.com/manual/html/tablewa.html tablewa :: Tab -> Sig -> Sig -> SE Sig -- | tablew — Change the contents of existing function tables. -- -- This opcode operates on existing function tables, changing their -- contents. tablew is for writing at k- or at a-rates, with the table -- number being specified at init time. Using tablew with i-rate signal -- and index values is allowed, but the specified data will always be -- written to the function table at k-rate, not during the initialization -- pass. The valid combinations of variable types are shown by the first -- letter of the variable names. -- --
-- tablew asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode] -- tablew isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode] -- tablew ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode] ---- -- csound doc: http://www.csounds.com/manual/html/tablew.html tablew :: Sig -> Sig -> Tab -> SE () -- | Notice that this function is the same as tab, but it wraps -- the output in the SE-monad. So you can use the tab if your -- table is read-only and you can use readTab if you want to -- update the table and the order of read/write operation is important. -- -- Fast table opcodes. -- -- Fast table opcodes. Faster than table and tablew because don't allow -- wrap-around and limit and don't check index validity. Have been -- implemented in order to provide fast access to arrays. Support -- non-power of two tables (can be generated by any GEN function by -- giving a negative length value). -- --
-- kr tab kndx, ifn[, ixmode] -- ar tab xndx, ifn[, ixmode] ---- -- csound doc: http://www.csounds.com/manual/html/tab.html readTab :: Sig -> Tab -> SE Sig -- | Notice that this function is the same as table, but it wraps -- the output in the SE-monad. So you can use the table if your -- table is read-only and you can use readTable if you want to -- update the table and the order of read/write operation is important. -- -- Accesses table values by direct indexing. -- --
-- ares table andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires table indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://www.csounds.com/manual/html/table.html readTable :: SigOrD a => a -> Tab -> SE a -- | Notice that this function is the same as tablei, but it wraps -- the output in the SE-monad. So you can use the tablei if your -- table is read-only and you can use readTablei if you want to -- update the table and the order of read/write operation is important. -- -- Accesses table values by direct indexing with cubic interpolation. -- --
-- ares table3 andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires table3 indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres table3 kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://www.csounds.com/manual/html/table3.html readTable3 :: SigOrD a => a -> Tab -> SE a -- | Notice that this function is the same as table3, but it wraps -- the output in the SE-monad. So you can use the table3 if your -- table is read-only and you can use readTable3 if you want to -- update the table and the order of read/write operation is important. -- -- Accesses table values by direct indexing with linear interpolation. -- --
-- ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://www.csounds.com/manual/html/tablei.html readTablei :: SigOrD a => a -> Tab -> SE a -- | tableikt — Provides k-rate control over table numbers. -- -- k-rate control over table numbers. Function tables are read with -- linear interpolation. The standard Csound opcode tablei, when -- producing a k- or a-rate result, can only use an init-time variable to -- select the table number. tableikt accepts k-rate control as well as -- i-time. In all other respects they are similar to the original -- opcodes. -- --
-- ares tableikt xndx, kfn [, ixmode] [, ixoff] [, iwrap] -- kres tableikt kndx, kfn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://www.csounds.com/manual/html/tableikt.html tableikt :: Sig -> Tab -> Sig -- | tablekt — Provides k-rate control over table numbers. -- -- k-rate control over table numbers. Function tables are read with -- linear interpolation. The standard Csound opcode table when producing -- a k- or a-rate result, can only use an init-time variable to select -- the table number. tablekt accepts k-rate control as well as i-time. In -- all other respects they are similar to the original opcodes. -- --
-- ares tablekt xndx, kfn [, ixmode] [, ixoff] [, iwrap] -- kres tablekt kndx, kfn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://www.csounds.com/manual/html/tablekt.html tablekt :: Sig -> Tab -> Sig -- | tablexkt — Reads function tables with linear, cubic, or sinc -- interpolation. -- --
-- ares tablexkt xndx, kfn, kwarp, iwsize [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://www.csounds.com/manual/html/tablexkt.html tablexkt :: Sig -> Tab -> Sig -> D -> Sig -- | cuserrnd — Continuous USER-defined-distribution RaNDom generator. -- -- Continuous USER-defined-distribution RaNDom generator. -- --
-- aout cuserrnd kmin, kmax, ktableNum -- iout cuserrnd imin, imax, itableNum -- kout cuserrnd kmin, kmax, ktableNum ---- -- csound doc: http://www.csounds.com/manual/html/cuserrnd.html -- -- the tab should be done with tabDist, randDist or rangeDist cuserrnd :: SigOrD a => a -> a -> Tab -> SE a -- | duserrnd — Discrete USER-defined-distribution RaNDom generator. -- -- Discrete USER-defined-distribution RaNDom generator. -- --
-- aout duserrnd ktableNum -- iout duserrnd itableNum -- kout duserrnd ktableNum ---- -- csound doc: http://www.csounds.com/manual/html/duserrnd.html -- -- the tab should be done with tabDist, randDist or rangeDist duserrnd :: SigOrD a => Tab -> SE a instance GHC.Classes.Eq Csound.Tab.WavChn instance GHC.Show.Show Csound.Tab.WavChn instance GHC.Classes.Eq Csound.Tab.Mp3Chn instance GHC.Show.Show Csound.Tab.Mp3Chn instance GHC.Enum.Enum Csound.Tab.PadsynthShape instance GHC.Classes.Ord Csound.Tab.PadsynthShape instance GHC.Classes.Eq Csound.Tab.PadsynthShape instance GHC.Show.Show Csound.Tab.PadsynthShape instance GHC.Classes.Eq Csound.Tab.PadsynthSpec instance GHC.Show.Show Csound.Tab.PadsynthSpec instance Data.Default.Class.Default Csound.Tab.Mp3Chn instance Data.Default.Class.Default Csound.Tab.WavChn -- | Basic waveforms that are used most often. A waveform function takes in -- a time varied frequency (in Hz). module Csound.Air.Wave type Wave = Sig -> SE Sig -- | A pure tone (sine wave). osc :: Sig -> Sig -- | An oscillator with user provided waveform. oscBy :: Tab -> Sig -> Sig -- | A sawtooth. saw :: Sig -> Sig -- | Integrated sawtooth: 4 * x * (1 - x). isaw :: Sig -> Sig -- | Pulse (not normalized). pulse :: Sig -> Sig -- | A square wave. sqr :: Sig -> Sig -- | Pulse width modulation (width range is 0 to 1) -- --
-- pw dutyCycle cps --pw :: Sig -> Sig -> Sig -- | A triangle wave. tri :: Sig -> Sig -- | Triangle wave with ramp factor (factor's range is 0 to 1) -- --
-- ramp factor cps --ramp :: Sig -> Sig -> Sig -- | A band-limited oscillator with user defined waveform (it's stored in -- the table). blosc :: Tab -> Sig -> Sig -- | A pure tone (sine wave) with initial phase (the first argiment). osc' :: D -> Sig -> Sig -- | An oscillator with user provided waveform with initial phase (the -- second argiment). oscBy' :: Tab -> D -> Sig -> Sig -- | A sawtooth. saw' :: D -> Sig -> Sig -- | Integrated sawtooth: 4 * x * (1 - x). isaw' :: D -> Sig -> Sig -- | Pulse (not normalized). pulse' :: D -> Sig -> Sig -- | A square wave. sqr' :: D -> Sig -> Sig -- | Pulse width modulation (width range is 0 to 1) -- --
-- pw' dutyCycle phase cps --pw' :: Sig -> D -> Sig -> Sig -- | A triangle wave. tri' :: D -> Sig -> Sig -- | Triangle wave with ramp factor (factor's range is 0 to 1) -- --
-- ramp' factor phase cps --ramp' :: Sig -> D -> Sig -> Sig -- | A band-limited oscillator with user defined waveform (it's stored in -- the table). blosc' :: Tab -> D -> Sig -> Sig rndOsc :: Sig -> SE Sig rndOscBy :: Tab -> Sig -> SE Sig rndSaw :: Sig -> SE Sig rndIsaw :: Sig -> SE Sig rndPulse :: Sig -> SE Sig rndSqr :: Sig -> SE Sig rndPw :: Sig -> Sig -> SE Sig rndTri :: Sig -> SE Sig rndRamp :: Sig -> Sig -> SE Sig rndBlosc :: Tab -> Sig -> SE Sig -- | Generic random smoothTypephase oscil rndPhs :: (D -> Sig -> Sig) -> Sig -> SE Sig rawTri :: Sig -> Sig rawSaw :: Sig -> Sig rawSqr :: Sig -> Sig rawPw :: Double -> Sig -> Sig rawTri' :: D -> Sig -> Sig rawSaw' :: D -> Sig -> Sig rawSqr' :: D -> Sig -> Sig rawPw' :: Double -> D -> Sig -> Sig rndRawTri :: Sig -> SE Sig rndRawSaw :: Sig -> SE Sig rndRawSqr :: Sig -> SE Sig rndRawPw :: Double -> Sig -> SE Sig -- | Turns a bipolar sound (ranges from -1 to 1) to unipolar (ranges from 0 -- to 1) unipolar :: Sig -> Sig -- | Turns an unipolar sound (ranges from 0 to 1) to bipolar (ranges from -- -1 to 1) bipolar :: Sig -> Sig -- | Unipolar pure tone. uosc :: Sig -> Sig -- | Unipolar oscBy. uoscBy :: Tab -> Sig -> Sig -- | Unipolar sawtooth. usaw :: Sig -> Sig -- | Unipolar integrated sawtooth. uisaw :: Sig -> Sig -- | Unipolar pulse. upulse :: Sig -> Sig -- | Unipolar square wave. usqr :: Sig -> Sig -- | Unipolar pulse width modulation wave. upw :: Sig -> Sig -> Sig -- | Unipolar triangle wave. utri :: Sig -> Sig -- | Unipolar triangle wave with ram factor. uramp :: Sig -> Sig -> Sig -- | Unipolar band-limited oscillator. ublosc :: Tab -> Sig -> Sig uosc' :: D -> Sig -> Sig uoscBy' :: Tab -> D -> Sig -> Sig usaw' :: D -> Sig -> Sig uisaw' :: D -> Sig -> Sig upulse' :: D -> Sig -> Sig usqr' :: D -> Sig -> Sig upw' :: Sig -> D -> Sig -> Sig utri' :: D -> Sig -> Sig uramp' :: Sig -> D -> Sig -> Sig ublosc' :: Tab -> D -> Sig -> Sig urndOsc :: Sig -> SE Sig urndOscBy :: Tab -> Sig -> SE Sig urndSaw :: Sig -> SE Sig urndIsaw :: Sig -> SE Sig urndPulse :: Sig -> SE Sig urndSqr :: Sig -> SE Sig urndPw :: Sig -> Sig -> SE Sig urndTri :: Sig -> SE Sig urndRamp :: Sig -> Sig -> SE Sig urndBlosc :: Tab -> Sig -> SE Sig urawTri :: Sig -> Sig urawSaw :: Sig -> Sig urawSqr :: Sig -> Sig urawPw :: Double -> Sig -> Sig urawTri' :: D -> Sig -> Sig urawSaw' :: D -> Sig -> Sig urawSqr' :: D -> Sig -> Sig urawPw' :: Double -> D -> Sig -> Sig urndRawTri :: Sig -> SE Sig urndRawSaw :: Sig -> SE Sig urndRawSqr :: Sig -> SE Sig urndRawPw :: Double -> Sig -> SE Sig -- | Constant random signal. It updates random numbers with given -- frequency. -- --
-- constRnd freq --rndh :: Sig -> SE Sig -- | Unipolar rndh urndh :: Sig -> SE Sig -- | Linear random signal. It updates random numbers with given frequency. -- --
-- rndi freq --rndi :: Sig -> SE Sig -- | Unipolar rndi urndi :: Sig -> SE Sig -- | White noise. white :: SE Sig -- | Pink noise. pink :: SE Sig -- | Brownian noise brown :: SE Sig -- | Frequency modulation -- --
-- fosc carrierFreq modulatorFreq modIndex cps --fosc :: Sig -> Sig -> Sig -> Sig -> Sig -- | Low frequency oscillator type Lfo = Sig -- | Low frequency oscillator -- --
-- lfo shape depth rate --lfo :: (Sig -> Sig) -> Sig -> Sig -> Sig -- | Scales the oscillator by frequency. That's how we can rise the pitch -- by 2 semitones and 15 cents: -- --
-- detune (semitone 2 * cent 15) osc --detune :: Sig -> (Sig -> a) -> Sig -> a -- | Unision by Hertz. It creates n oscillators that are playing the same -- pitch slightly detuned. The oscillatos's pitch is evenly distributed -- in Hz. -- --
-- multiHz numberOfUnits amountHz wave --multiHz :: Fractional a => Int -> Sig -> (Sig -> a) -> Sig -> a -- | Unision by Cents. It creates n oscillators that are playing the same -- pitch slightly detuned. The oscillatos's pitch is evenly distributed -- in cents. -- --
-- multiCent numberOfUnits amountCent wave --multiCent :: Fractional a => Int -> Sig -> (Sig -> a) -> Sig -> a -- | Oscillators are detuned randomly in the given interval. -- --
-- multiRnd numberOfUnits amountCent wave --multiRnd :: Fractional a => Int -> Sig -> (Sig -> a) -> Sig -> SE a -- | Oscillators are detuned randomly with Gauss distribution in the given -- interval. -- --
-- multiGauss numberOfUnits amountCent wave --multiGauss :: Fractional a => Int -> Sig -> (Sig -> a) -> Sig -> SE a -- | Oscillators are detuned randomly in the given interval. Useful for -- waves that return a signals with Side Effects. -- --
-- multiRnd numberOfUnits amountCent wave --multiRndSE :: Fractional a => Int -> Sig -> (Sig -> SE a) -> Sig -> SE a -- | Oscillators are detuned randomly with Gauss distribution in the given -- interval. Useful for waves that return a signals with Side Effects. -- --
-- multiGauss numberOfUnits amountCent wave --multiGaussSE :: Fractional a => Int -> Sig -> (Sig -> SE a) -> Sig -> SE a -- | Unipolar random splines. It generates the splines with unipolar output -- (ranges from 0 to 1). Arguments affect the frequency for generation of -- new values. -- --
-- urspline cpsMin cpsMax --urspline :: Sig -> Sig -> SE Sig -- | Bipolar random splines. It generates the splines with bipolar output -- (ranges from -1 to 1). Arguments affect the frequency for generation -- of new values. -- --
-- birspline cpsMin cpsMax --birspline :: Sig -> Sig -> SE Sig -- | Output is a set of harmonically related sine partials. -- --
-- buz numOfHarmonics frequency --buz :: Sig -> Sig -> Sig -- | Output is a set of harmonically related cosine partials. -- --
-- gbuz (minHarm, maxHarm) ratio frequency --gbuz :: (Sig, Sig) -> Sig -> Sig -> Sig -- | Buz with phase buz' :: D -> Sig -> Sig -> Sig -- | Gbuz with phase gbuz' :: D -> (Sig, Sig) -> Sig -> Sig -> Sig -- | Oscillators with hard and soft sync module Csound.Air.Wave.Sync -- | Type of smooth shape to make smooth transitions on retrigger. -- Available types are: -- --
-- sawSync ratio cps --sawSync :: Sig -> Sig -> Sig -- | Integrated sawtooth oscillator with hard-sync. The first argument is a -- ration between slave and master oscillators. -- --
-- isawSync ratio cps --isawSync :: Sig -> Sig -> Sig -- | Pulse oscillator with hard-sync. The first argument is a ration -- between slave and master oscillators. -- --
-- pulseSync ratio cps --pulseSync :: Sig -> Sig -> Sig -- | Square oscillator with hard-sync. The first argument is a ration -- between slave and master oscillators. -- --
-- sqrSync ratio cps --sqrSync :: Sig -> Sig -> Sig -- | Triangle oscillator with hard-sync. The first argument is a ration -- between slave and master oscillators. -- --
-- triSync ratio cps --triSync :: Sig -> Sig -> Sig -- | Band-limited oscillator with hard-sync. The first argument is a ration -- between slave and master oscillators. -- --
-- bloscSync tab ratio cps --bloscSync :: Tab -> Sig -> Sig -> Sig -- | Sawtooth oscillator with hard-sync with phase. The second argument is -- a ration between slave and master oscillators. -- --
-- sawSync' phase ratio cps --sawSync' :: D -> Sig -> Sig -> Sig -- | Integrated sawtooth oscillator with hard-sync with phase. The second -- argument is a ration between slave and master oscillators. -- --
-- isawSync' phase ratio cps --isawSync' :: D -> Sig -> Sig -> Sig -- | Pulse oscillator with hard-sync with phase. The second argument is a -- ration between slave and master oscillators. -- --
-- pulseSync' phase ratio cps --pulseSync' :: D -> Sig -> Sig -> Sig -- | Square oscillator with hard-sync with phase. The second argument is a -- ration between slave and master oscillators. -- --
-- sqrSync' phase ratio cps --sqrSync' :: D -> Sig -> Sig -> Sig -- | Triangle oscillator with hard-sync with phase. The second argument is -- a ration between slave and master oscillators. -- --
-- triSync' phase ratio cps --triSync' :: D -> Sig -> Sig -> Sig -- | Band-limited oscillator with hard-sync with phase. The second argument -- is a ration between slave and master oscillators. -- --
-- bloscSync' phase tab ratio cps --bloscSync' :: Tab -> D -> Sig -> Sig -> Sig -- | Hard sync with saw waveform and randomized phase. rndSawSync :: Sig -> Sig -> SE Sig -- | Hard sync with integral saw waveform and randomized phase. rndIsawSync :: Sig -> Sig -> SE Sig -- | Hard sync with pulse waveform and randomized phase. rndPulseSync :: Sig -> Sig -> SE Sig -- | Hard sync with square waveform and randomized phase. rndSqrSync :: Sig -> Sig -> SE Sig -- | Hard sync with triangle waveform and randomized phase. rndTriSync :: Sig -> Sig -> SE Sig -- | Hard sync with band-limited table waveform waveform and randomized -- phase. rndBloscSync :: Tab -> Sig -> Sig -> SE Sig -- | Sawtooth oscillator with hard-sync. The freq argument is an -- absolute frequency of a slave oscillator. -- --
-- sawSyncAbs freq slaveCps masterCps --sawSyncAbs :: Sig -> Sig -> Sig -- | Integrated sawtooth oscillator with hard-sync. The freq -- argument is an absolute frequency of a slave oscillator. -- --
-- isawSyncAbs freq slaveCps masterCps --isawSyncAbs :: Sig -> Sig -> Sig -- | Pulse oscillator with hard-sync. The freq argument is an -- absolute frequency of a slave oscillator. -- --
-- pulseSyncAbs freq slaveCps masterCps --pulseSyncAbs :: Sig -> Sig -> Sig -- | Square oscillator with hard-sync. The freq argument is an -- absolute frequency of a slave oscillator. -- --
-- sqrSyncAbs freq slaveCps masterCps --sqrSyncAbs :: Sig -> Sig -> Sig -- | Triangle oscillator with hard-sync. The freq argument is an -- absolute frequency of a slave oscillator. -- --
-- triSyncAbs freq slaveCps masterCps --triSyncAbs :: Sig -> Sig -> Sig -- | Bandlimited table oscillator with hard-sync. The freq -- argument is an absolute frequency of a slave oscillator. -- --
-- bloscSyncAbs tab freq slaveCps masterCps --bloscSyncAbs :: Tab -> Sig -> Sig -> Sig -- | Sawtooth oscillator with hard-sync with phase. The freq -- argument is an absolute frequency of a slave oscillator. -- --
-- sawSyncAbs' phase freq slaveCps masterCps --sawSyncAbs' :: D -> Sig -> Sig -> Sig -- | Integrated sawtooth oscillator with hard-sync with phase. The -- freq argument is an absolute frequency of a slave oscillator. -- --
-- isawSyncAbs' phase freq slaveCps masterCps --isawSyncAbs' :: D -> Sig -> Sig -> Sig -- | Pulse oscillator with hard-sync with phase. The freq argument -- is an absolute frequency of a slave oscillator. -- --
-- pulseSyncAbs' phase freq slaveCps masterCps --pulseSyncAbs' :: D -> Sig -> Sig -> Sig -- | Square oscillator with hard-sync with phase. The freq -- argument is an absolute frequency of a slave oscillator. -- --
-- sqrSyncAbs' phase freq slaveCps masterCps --sqrSyncAbs' :: D -> Sig -> Sig -> Sig -- | Triangle oscillator with hard-sync with phase. The freq -- argument is an absolute frequency of a slave oscillator. -- --
-- triSyncAbs' phase freq slaveCps masterCps --triSyncAbs' :: D -> Sig -> Sig -> Sig -- | Bandlimited table oscillator with hard-sync with phase. The -- freq argument is an absolute frequency of a slave oscillator. -- --
-- bloscSyncAbs' phase tab freq slaveCps masterCps --bloscSyncAbs' :: Tab -> D -> Sig -> Sig -> Sig -- | Sawtooth oscillator with hard-sync. We can specify the smoothness -- type. The ratio argument is a ration between slave and master -- oscillators. -- --
-- sawSyncBy spec ratio cps --sawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Integrated sawtooth oscillator with hard-sync. We can specify the -- smoothness type. The first argument is a ration between slave and -- master oscillators. -- --
-- isawSyncB specy ratio cps --isawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Pulse oscillator with hard-sync. We can specify the smoothness type. -- The ratio argument is a ration between slave and master -- oscillators. -- --
-- pulseSyncBy spec ratio cps --pulseSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Square oscillator with hard-sync. We can specify the smoothness type. -- The ratio argument is a ration between slave and master -- oscillators. -- --
-- sawSyncBy spec ratio cps --sqrSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Triangle oscillator with hard-sync. We can specify the smoothness -- type. The ratio argument is a ration between slave and master -- oscillators. -- --
-- triSyncBy spec ratio cps --triSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Bandlimited table oscillator with hard-sync. We can specify the -- smoothness type. The ratio argument is a ration between slave -- and master oscillators. -- --
-- bloscSyncBy spec tab ratio cps --bloscSyncBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig -- | Sawtooth oscillator with hard-sync with phase. We can specify the -- smoothness type. The ratio argument is a ration between slave -- and master oscillators. -- --
-- sawSyncBy' spec phase ratio cps --sawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Integrated sawtooth oscillator with hard-sync with phase. We can -- specify the smoothness type. The ratio argument is a ration -- between slave and master oscillators. -- --
-- isawSyncBy' spec phase ratio cps --isawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Pulse oscillator with hard-sync with phase. We can specify the -- smoothness type. The ratio argument is a ration between slave -- and master oscillators. -- --
-- pulseSyncBy' spec phase ratio cps --pulseSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Square oscillator with hard-sync with phase. We can specify the -- smoothness type. The ratio argument is a ration between slave -- and master oscillators. -- --
-- sawSyncBy' spec phase ratio cps --sqrSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Triangle oscillator with hard-sync with phase. We can specify the -- smoothness type. The ratio argument is a ration between slave -- and master oscillators. -- --
-- triSyncBy' spec phase ratio cps --triSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Bandlimited table oscillator with hard-sync with phase. We can specify -- the smoothness type. The ratio argument is a ration between -- slave and master oscillators. -- --
-- bloscSyncBy' spec phase tab ratio cps --bloscSyncBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig -- | A hard sync for sawtooth with absolute slave frequency. -- --
-- sawSyncAbs syncType salveCps masterCps --sawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | A hard sync for integrated sawtooth: 4 * x * (1 - x) with absolute -- slave frequency. -- --
-- isawSyncAbs syncType salveCps masterCps --isawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | A hard sync for pulse wave with absolute slave frequency. -- --
-- pulseSyncAbs syncType salveCps masterCps --pulseSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | A hard sync for square wave with absolute slave frequency. -- --
-- sqrSyncAbs syncType salveCps masterCps --sqrSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | A hard sync for triangle wave with absolute slave frequency. -- --
-- triSyncAbs syncType salveCps masterCps --triSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | A hard sync for band-limited oscillator with user defined waveform -- (it's stored in the table) woth absolute frequency. -- --
-- bloscSyncAbs syncType ftable salveCps masterCps --bloscSyncAbsBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig -- | A sawtooth. sawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Integrated sawtooth: 4 * x * (1 - x). isawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | Pulse (not normalized). pulseSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | A square wave. sqrSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | A triangle wave. triSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig -- | A band-limited oscillator with user defined waveform (it's stored in -- the table). bloscSyncAbsBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited triangle wave. rawTriSync :: Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited square wave. rawSqrSync :: Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited sawtooth wave. rawSawSync :: Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited pulse-width wave. rawPwSync :: Double -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited triangle wave. rawTriSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited square wave. rawSqrSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited sawtooth wave. rawSawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited pulse-width wave. rawPwSyncBy :: Double -> SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited triangle wave. rawTriSyncAbs :: Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited square wave. rawSqrSyncAbs :: Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited sawtooth wave. rawSawSyncAbs :: Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited pulse-width wave. rawPwSyncAbs :: Double -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited triangle wave. rawTriSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited square wave. rawSqrSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited sawtooth wave. rawSawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig -- | Hard-sync with non-bandlimited pulse-width wave. rawPwSyncAbsBy :: Double -> SyncSmooth -> Sig -> Sig -> Sig -- | Soft sync with given waveform (with band-limited square wave for -- switch). The soft sync amount is controlled with ratio between master -- and slave frequencies. -- --
-- softSync slaveWave ratio masterWave --softSync :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with raw square wave for switch). It's -- faster than softSync The soft sync amount is controlled with -- ratio between master and slave frequencies. -- --
-- rawSoftSync slaveWave ratio masterWave --rawSoftSync :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with band-limited square wave for -- switch). The soft sync amount is controlled with ratio between master -- and slave frequencies. With first argument we can specify the -- smoothness algorithm. -- --
-- softSyncBy spec slaveWave ratio masterWave --softSyncBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with raw square wave for switch). It's -- faster than softSyncBy The soft sync amount is controlled with -- ratio between master and slave frequencies. With first argument we can -- specify the smoothness algorithm. -- --
-- rawSoftSyncBy spec slaveWave ratio masterWave --rawSoftSyncBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with band-limited square wave for -- switch). The soft sync amount is controlled with absolute frequency of -- the slave oscillator. -- --
-- softSyncAbs slaveWave ratio masterWave --softSyncAbs :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with raw square wave for switch). It's -- faster than softSyncAbs The soft sync amount is controlled with -- absolute frequency of the slave oscillator. -- --
-- rawSoftSyncAbs slaveWave ratio masterWave --rawSoftSyncAbs :: SigSpace a => (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with band-limited square wave for -- switch). The soft sync amount is controlled with absolute frequency of -- the slave oscillator. With first argument we can specify the -- smoothness algorithm. -- --
-- softSyncAbsBy spec slaveWave ratio masterWave --softSyncAbsBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a -- | Soft sync with given waveform (with raw square wave for switch). It's -- faster than softSyncAbsBy The soft sync amount is controlled -- with absolute frequency of the slave oscillator. With first argument -- we can specify the smoothness algorithm. -- --
-- rawSoftSyncBy spec slaveWave ratio masterWave --rawSoftSyncAbsBy :: SigSpace a => SyncSmooth -> (Sig -> a) -> Sig -> Sig -> a -- | Tools to build Fm synthesis graphs -- -- Example -- --
-- f a = fmOut1 $ do -- x1 <- fmOsc 1 -- x2 <- fmOsc 2 -- x1 `fmod` [(a, x2)] -- return x1 --module Csound.Air.Fm type Fm a = State St a data FmNode -- | Creates fm node with generic wave. -- --
-- fmOsc' wave modFreq --fmOsc' :: (Sig -> SE Sig) -> Sig -> Fm FmNode -- | Creates fm node with sine wave. -- --
-- fmOsc modFreq --fmOsc :: Sig -> Fm FmNode -- | Creates fm node with signal generator (it's independent from the main -- frequency). fmSig :: Sig -> Fm FmNode fmod :: FmNode -> [(Sig, FmNode)] -> Fm () -- | Renders Fm synth to function. fmOut :: Fm [(Sig, FmNode)] -> Sig -> SE [Sig] -- | Renders mono output. fmOut1 :: Fm FmNode -> Sig -> SE Sig -- | Renders stereo output. fmOut2 :: Fm (FmNode, FmNode) -> Sig -> SE Sig2 data FmSpec FmSpec :: [Sig -> SE Sig] -> [Sig] -> [Sig] -> [Sig] -> FmSpec [fmWave] :: FmSpec -> [Sig -> SE Sig] [fmCps] :: FmSpec -> [Sig] [fmInd] :: FmSpec -> [Sig] [fmOuts] :: FmSpec -> [Sig] data FmGraph FmGraph :: [(Int, [Int])] -> [Int] -> FmGraph [fmGraph] :: FmGraph -> [(Int, [Int])] [fmGraphOuts] :: FmGraph -> [Int] fmRun :: FmGraph -> FmSpec -> Sig -> SE Sig -- |
-- +--+ -- 6 | -- +--+ -- 5 -- | -- 2 4 -- | | -- 1 3 -- +---+ --dx_1 :: FmGraph -- |
-- 6 -- | -- 5 -- +--+ | -- 2 | 4 -- +--+ | -- 1 3 -- +-----+ --dx_2 :: FmGraph -- |
-- +--+ -- 3 6 | -- | +--+ -- 2 5 -- | | -- 1 4 -- +---+ --dx_3 :: FmGraph -- |
-- +--+ -- 3 6 | -- | | | -- 2 5 | -- | | | -- 1 4 | -- | +--+ -- +---+ --dx_4 :: FmGraph -- | Spectral functions module Csound.Air.Spec -- | Converts signal to spectrum. toSpec :: Sig -> Spec -- | Converts spectrum to signal. fromSpec :: Spec -> Sig -- | Applies a transformation to the spectrum of the signal. mapSpec :: (Spec -> Spec) -> Sig -> Sig -- | Scales all frequencies. Usefull for transposition. For example, we can -- transpose a signal by the given amount of semitones: -- --
-- scaleSpec (semitone 1) asig --scaleSpec :: Sig -> Sig -> Sig -- | Adds given amount of Hz to all frequencies. -- --
-- addSpec hz asig --addSpec :: Sig -> Sig -> Sig -- | Scales frequency in semitones. scalePitch :: Sig -> Sig -> Sig -- | Settings for cross filtering algorithm. -- -- They are the defaults for opvodes: pvsifd, tradsyn, -- trcross and partials. -- --
-- let f = hvs1 [[100, 0.1], [300, 0.1], [600, 0.5], [800, 0.9]] -- dac $ lift1 (\x -> fmap (\[cps, q] -> mlp cps q (saw 110)) $ f x) (uknob 0.5) ---- -- Notice the exact pattern match with the list in the argument of the -- lambda function: -- --
-- \[cps, q] -> mlp cps q (saw 110)) $ f x ---- -- It's determined by the length of the items in the input list. hvs1 :: HvsMatrix1 -> Sig -> SE [Sig] -- | Two dimensional Hyper vectorial synthesis. Now we provide a list of -- lists of vectors. The length of all vectors should be the same but -- there is no limit for the number! So that's how we can control a lot -- of parameters with pair of signals. The input 2D atrix is the grid of -- samples. It finds the closest four points in the grid and interpolates -- between them (it's a weighted sum). -- --
-- hvs2 matrix (x, y) ---- -- The usage is the same as in the case of hvs1. An example: -- --
-- g = hvs2 [[[100, 0.1, 0.3], [800, 0.1, 0.5], [1400, 0.1, 0.8]], -- [[100, 0.5, 0.3], [800, 0.5, 0.5], [1400, 0.5, 0.8]], -- [[100, 0.8, 0.3], [800, 0.8, 0.5], [1400, 0.8, 0.8]]] -- -- main = dac $ do -- (g1, kx) <- uknob 0.5 -- (g2, ky) <- uknob 0.5 -- [cfq, q, w] <- g (kx, ky) -- panel $ hor [g1, g2] -- at (mlp cfq q) $ fmap (cfd w (saw 110)) (white) --hvs2 :: HvsMatrix2 -> Sig2 -> SE [Sig] -- | The three dimensional hvs3 :: HvsMatrix3 -> Sig3 -> SE [Sig] -- | Allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled by -- externally-updated k-variables. -- -- hvs1 allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled -- by externally-updated k-variables. -- --
-- hvs1 kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab] ---- -- csound doc: http://www.csounds.com/manual/html/hvs1.html csdHvs1 :: Sig -> D -> D -> Tab -> Tab -> Tab -> SE () -- | Allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled by -- externally-updated k-variables. -- -- hvs2 allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled -- by externally-updated k-variables. -- --
-- hvs2 kx, ky, inumParms, inumPointsX, inumPointsY, iOutTab, iPositionsTab, iSnapTab [, iConfigTab] ---- -- csound doc: http://www.csounds.com/manual/html/hvs2.html csdHvs2 :: Sig -> Sig -> D -> D -> D -> Tab -> Tab -> Tab -> SE () -- | Allows three-dimensional Hyper Vectorial Synthesis (HVS) controlled by -- externally-updated k-variables. -- -- hvs3 allows three-dimensional Hyper Vectorial Synthesis (HVS) -- controlled by externally-updated k-variables. -- --
-- hvs3 kx, ky, kz, inumParms, inumPointsX, inumPointsY, inumPointsZ, iOutTab, iPositionsTab, iSnapTab [, iConfigTab] ---- -- csound doc: http://www.csounds.com/manual/html/hvs3.html csdHvs3 :: Sig -> Sig -> Sig -> D -> D -> D -> D -> Tab -> Tab -> Tab -> SE () -- | Effects module Csound.Air.Fx -- | Mono version of the cool reverberation opcode reverbsc. -- --
-- reverbsc1 asig feedbackLevel cutOffFreq --reverbsc1 :: Sig -> Feedback -> ToneSig -> Sig -- | Mono reverb (based on reverbsc) -- --
-- rever1 feedback asig --rever1 :: Feedback -> Sig -> (Sig, Sig) -- | Mono reverb (based on reverbsc) -- --
-- rever2 feedback (asigLeft, asigRight) --rever2 :: Feedback -> Sig2 -> Sig2 -- | Reverb with given time. reverTime :: DelayTime -> Sig -> Sig -- | Mono reverb for small room. smallRoom :: Sig -> (Sig, Sig) -- | Mono reverb for small hall. smallHall :: Sig -> (Sig, Sig) -- | Mono reverb for large hall. largeHall :: Sig -> (Sig, Sig) -- | The magic cave reverb (mono). magicCave :: Sig -> (Sig, Sig) -- | Stereo reverb for small room. smallRoom2 :: Sig2 -> Sig2 -- | Stereo reverb for small hall. smallHall2 :: Sig2 -> Sig2 -- | Stereo reverb for large hall. largeHall2 :: Sig2 -> Sig2 -- | The magic cave reverb (stereo). magicCave2 :: Sig2 -> Sig2 -- | An alias for -- --
-- let room dryWet asig = mixAt dryWet smallRoom2 asig --room :: MixAt Sig2 Sig2 a => Sig -> a -> AtOut Sig2 Sig2 a -- | An alias for -- --
-- let room dryWet asig = mixAt dryWet smallHall2 asig --chamber :: MixAt Sig2 Sig2 a => Sig -> a -> AtOut Sig2 Sig2 a -- | An alias for -- --
-- let room dryWet asig = mixAt dryWet largeHall2 asig --hall :: MixAt Sig2 Sig2 a => Sig -> a -> AtOut Sig2 Sig2 a -- | An alias for -- --
-- let room dryWet asig = mixAt dryWet magicCave2 asig --cave :: MixAt Sig2 Sig2 a => Sig -> a -> AtOut Sig2 Sig2 a -- | Fast zero delay convolution with impulse response that is contained in -- mono-audio file. -- --
-- monoIR irFile ain --monoIR :: FilePath -> Sig -> Sig -- | Fast zero delay convolution with impulse response that is contained in -- stereo-audio file. -- --
-- stereoIR irFile ain --stereoIR :: FilePath -> Sig2 -> Sig2 -- | If IR is encoded in a couple of mono files. stereoIR2 :: (FilePath, FilePath) -> Sig2 -> Sig2 -- | Precise mono IR with pconvolve (requires a lot of CPU). pmonoIR :: FilePath -> Sig -> Sig -- | Precise stereo IR with pconvolve (requires a lot of CPU). pstereoIR :: FilePath -> Sig2 -> Sig2 pstereoIR2 :: (FilePath, FilePath) -> Sig2 -> Sig2 -- | Fast zero delay convolution with impulse response that is contained in -- mono-audio file. We can specify aux parameters for convolution -- algorithm (see zconv'). -- --
-- monoIR' spec irFile ain --monoIR' :: ZConvSpec -> FilePath -> Sig -> Sig -- | Fast zero delay convolution with impulse response that is contained in -- stereo-audio file. We can specify aux parameters for convolution -- algorithm (see zconv'). -- --
-- stereoIR' spec irFile ain --stereoIR' :: ZConvSpec -> FilePath -> Sig2 -> Sig2 -- | If IR is encoded in a couple of mono files. stereoIR2' :: ZConvSpec -> (FilePath, FilePath) -> Sig2 -> Sig2 -- | Zero convolution specification data ZConvSpec ZConvSpec :: D -> D -> D -> ZConvSpec -- | first partition size in samples [zconvPartSize] :: ZConvSpec -> D -- | partition growth ratio [zconvRatio] :: ZConvSpec -> D -- | total number of partition sizes [zconvNp] :: ZConvSpec -> D -- | Zero delay convolution with default parameters. -- --
-- zconv tabIR ain = ... --zconv :: Tab -> Sig -> Sig -- | zero delay convolution. -- --
-- zconv' (ZConvSpec ipart irat inp) ifn ain ---- -- Original UDO code by Victor Lazzarini. -- -- /************************************************** asig ZConv -- ain,ipart,irat,inp,ifn ain - input signal ipart - first partition size -- in samples irat - partition growth ratio inp - total number of -- partition sizes ifn - function table number containing the IR -- **************************************************/ zconv' :: ZConvSpec -> Tab -> Sig -> Sig -- | The maximum delay time. type MaxDelayTime = D -- | The delaya time type DelayTime = Sig -- | Feedback for delay type Feedback = Sig -- | Dry/Wet mix value (ranges from 0 to 1). The 0 is all dry. The 1 is all -- wet. type Balance = Sig -- | The simplest delay with feedback. Arguments are: delay length and -- decay ratio. -- --
-- echo delayLength ratio --echo :: MaxDelayTime -> Feedback -> Sig -> Sig -- | Delay with feedback. -- --
-- fdelay maxDelayLength delayLength feedback balance --fvdelay :: MaxDelayTime -> DelayTime -> Feedback -> Sig -> Sig -- | Multitap delay. Arguments are: max delay length, list of pairs -- (delayLength, decayRatio), balance of mixed signal with -- processed signal. -- --
-- fdelay maxDelayLength delays balance asig --fvdelays :: MaxDelayTime -> [(DelayTime, Feedback)] -> Balance -> Sig -> SE Sig -- | Generic multitap delay. It's just like fvdelays but instead -- of constant feedbackLevel it expects a function for processing a -- delayed signal on the tap. -- --
-- fdelay maxDelayLength delays balance asig --funDelays :: MaxDelayTime -> [(DelayTime, Sig -> Sig)] -> Balance -> Sig -> SE Sig -- | Delay for functions that use some table (as a buffer). As granular -- synth or mincer. -- --
-- tabDelay fn maxDelayTime delayTime feedback balance asig --tabDelay :: (Tab -> Sig -> SE Sig) -> MaxDelayTime -> DelayTime -> Feedback -> Balance -> Sig -> SE Sig -- | Aux parameters for ping pong delay. They are maximum delay time, low -- pass filter center frequency and Pan width. The defaults are (5 -- sec, 3500, 0.3). data PingPongSpec PingPongSpec :: MaxDelayTime -> Sig -> Sig -> PingPongSpec [pingPongMaxTime] :: PingPongSpec -> MaxDelayTime [pingPongDamp] :: PingPongSpec -> Sig [pingPongWidth] :: PingPongSpec -> Sig -- | Ping-pong delay. -- --
-- pingPong delayTime feedback mixLevel --pingPong :: DelayTime -> Feedback -> Balance -> Sig2 -> Sig2 -- | Ping-pong delay with miscellaneous arguments. -- --
-- pingPong' spec delayTime feedback mixLevel --pingPong' :: PingPongSpec -> DelayTime -> Feedback -> Balance -> Sig2 -> Sig2 -- | Ping-pong delay defined in csound style. All arguments are present -- (nothing is hidden). -- --
-- csdPingPong maxTime delTime damp feedback width mixLevel (ainL, ainR) --csdPingPong :: MaxDelayTime -> DelayTime -> Sig -> Feedback -> Sig -> Balance -> Sig2 -> Sig2 type EchoGain = Sig type RandomSpreadSig = Sig -- | Function to read from tape. -- --
-- tapeRead aIn, kDelay, kRandomSpread ---- -- The function is used in the same manner as deltapi first init the -- delay buffer and the use tapeRead. -- -- aIn - input signal kDelay - delay time kRandomSpread - [0, Inf] - the -- random spread of reading from the tape the higher the worser the -- quality of the tape. opcode tapeRead, a, akk tapeRead :: Sig -> Sig -> Sig -> SE Sig -- | Function to write to tape -- --
-- tapeWrite aIn, aOut, kFbGain ---- -- It should be though of as delayw for magnetic tape. -- -- aIn - input signal aOut - output signal kFbGain - gain of feedback [0, -- 2] tapeWrite :: Sig -> Sig -> Sig -> SE () -- | Tape echo - simulates tape echo/delay -- --
-- tapeEcho size feedback echoGain tone randomSpread ain ---- --
-- distort distLevel asig --distortion :: Sig -> Sig -> Sig type DepthSig = Sig type RateSig = Sig type WidthSig = Sig type ToneSig = Sig -- | Chorus. -- --
-- chorus depth rate balance asig --chorus :: DepthSig -> RateSig -> Balance -> Sig -> SE Sig -- | Flanger. Lfo depth ranges in 0 to 1. -- -- flanger lfo feedback balance asig flange :: Lfo -> Feedback -> Balance -> Sig -> Sig -- | First order phaser. phase1 :: Sig -> Lfo -> Feedback -> Balance -> Sig -> Sig -- | Second order phaser. Sweeping gaps in the timbre are placed -- harmonicaly harmPhase :: Sig -> Lfo -> Sig -> Sig -> Feedback -> Balance -> Sig -> Sig -- | Second order phaser. Sweeping gaps in the timbre are placed by powers -- of the base frequency. powerPhase :: Sig -> Lfo -> Sig -> Sig -> Feedback -> Balance -> Sig -> Sig type DriveSig = Sig type SensitivitySig = Sig type BaseCps = Sig type Resonance = Sig type TimeSig = Sig type BitsReductionSig = Sig type FoldoverSig = Sig type TremWaveSig = Sig type RatioSig = Sig type FftSize = D -- | Distortion -- --
-- fxDistort level drive tone sigIn --fxDistort :: Feedback -> Sig -> ToneSig -> Sig -> Sig -- | Stereo chorus. -- --
-- stChorus2 mix rate depth width sigIn --stChorus2 :: Balance -> RateSig -> DepthSig -> WidthSig -> Sig2 -> Sig2 -- | Phaser -- -- An phase shifting effect that mimics the design of a so called 'stomp -- box' -- --
-- fxPhaser rate depth freq fback ain ---- -- Arguments: -- --
-- fxFlanger rate depth delayTime feedback ain = ---- -- Arguments -- --
-- analogDelay mix feedback time tone sigIn --analogDelay :: Balance -> Feedback -> DelayTime -> ToneSig -> Sig -> Sig -- | Simplified delay -- --
-- fxEcho maxDelayLength delTime feedback sigIn --fxEcho :: D -> Sig -> Sig -> Sig -> Sig -- | Filter effect (a pair of butterworth low and high pass filters). -- --
-- fxFilter lowPassfFreq highPassFreq gain --fxFilter :: Sig -> Sig -> Sig -> Sig -> Sig -- | Adds filtered white noize to the signal -- --
-- fxWhite lfoFreq depth sigIn --fxWhite :: Sig -> Sig -> Sig -> SE Sig -- | Adds filtered pink noize to the signal -- --
-- fxWhite lfoFreq depth sigIn --fxPink :: Sig -> Sig -> Sig -> SE Sig -- | Equalizer -- --
-- equalizer gainsAndFrequencies gain sigIn --equalizer :: [(Sig, Sig)] -> Sig -> Sig -> Sig -- | Equalizer with frequencies: 100, 400, 1600, 6400 eq4 :: [Sig] -> Sig -> Sig -> Sig -- | Equalizer with frequencies: 100, 200, 400, 800, 1600, 3200, 6400 eq7 :: [Sig] -> Sig -> Sig -> Sig -- | Gain -- --
-- fxGain gain sigIn --fxGain :: SigSpace a => Sig -> a -> a -- | Delay line with low-pass filter in the feedback chain. The filter adds -- natural decay to the echoes. -- --
-- fxAnalogDelay mixRatio delayTime feedback toneRatio ain ---- -- Note that the center frequency of the filter is measured in normalized -- units (form 0 to 1). fxAnalogDelay :: Balance -> DelayTime -> Feedback -> ToneSig -> Sig -> Sig -- | Distortion unit with low-pass filter. -- --
-- fxDistortion driveLevel toneRatio ain ---- -- Note that the center frequency of the filter is measured in normalized -- units (form 0 to 1). fxDistortion :: DriveSig -> ToneSig -> Sig -> Sig -- | Envelope follower. -- --
-- fxFollower sensitivity baseFrequencyRatio resonance ain ---- -- Arguments: -- --
-- fxReverse time ---- -- time -- the size of the chunck in seconds. fxReverse :: TimeSig -> Sig -> Sig -- | LoFi -- -- 'Low Fidelity' distorting effects of bit reduction and downsampling -- (foldover) -- --
-- fxLoFi bits fold ain = ... ---- -- Arguments -- --
-- fxChorus2 rate depth width (ainLeft, ainRight) ---- -- Arguments -- --
-- fxAutoPan wave rate depth ain ---- -- ; Arguments: -- --
-- fxTrem wave rate depth ain ---- -- ; Arguments: -- --
-- fxPitchShifter fftSize mixRatio transposeRatio feedback ain ---- -- Arguments -- --
-- fxCompress thresh (loknee, hiknee) ratio (att, rel) gain ain --fxCompress :: Sig -> (Sig, Sig) -> Sig -> (Sig, Sig) -> Sig -> Sig -> Sig -- | opcode audaciouseq, a, kkkkkkkkkka -- -- inputs: kgain1, kgain2, kgain3, kgain4, kgain5, kgain6, kgain7, -- kgain8, kgain9, kgain10 ain -- -- 10-band EQ Input: kgain1, kgain2, ... kgain10, asig Output: aout -- -- 10 kgain arguments maps to each band Bands are: 31.25, 52.6, 125, 500, -- 1000, 2000, 4000, 8000, 16000 audaciousEq :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Instrument plays an input signal in different modes. The segments of -- signal can be played back and forth. -- --
-- trackerSplice maxLength segLength mode ---- --
-- main = dac $ do -- let ev ch1 ch2 dt = fmap (\x -> (x, dt)) $ mconcat [ -- fmap (const 1.5) $ charOn ch1 -- , fmap (const 2.5) $ charOn ch2 -- , fmap (const 0) $ charOff ch1 <> charOff ch2] -- -- (k, dt) <- stepper (0, 0.1) $ ev 'q' 'w' 0.1 <> ev 'a' 's' 0.2 <> ev 'z' 'x' 0.4 -- mul 1.3 $ trackerSplice 0.8 dt (int' k) $ fst $ loopWav 1 "drumLoop.wav" --trackerSplice :: D -> Sig -> Sig -> Sig -> SE Sig -- | PitchShifterDelay -- -- A pitch shifter effect that employs delay lines -- --
-- pitchShifterDelay maxDelayTime delayTime (feedback1, feedback2) transposeRatio ain ---- -- Arguments -- --
-- oscil 0.5 440 sinWave `withInits` (0.5 :: D) --withInits :: (Tuple a, Tuple b) => a -> b -> a -- | A special case of withInits. Here all inits are numbers. withDs :: Tuple a => a -> [D] -> a -- | A special case of withInits. Here all inits are signals. withSigs :: Tuple a => a -> [Sig] -> a -- | A special case of withInits. Here all inits are arrays. withTabs :: Tuple a => a -> [Tab] -> a -- | Appends an init value which is a number. withD :: Tuple a => a -> D -> a -- | Appends an init value which is a signal. withSig :: Tuple a => a -> Sig -> a -- | Appends an init value which is a table. withTab :: Tuple a => a -> Tab -> a -- | 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. withSeed :: SE Sig -> D -> Sig 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 -- | Creates a constant boolean signal. boolSig :: BoolD -> BoolSig -- | Invokes the given procedure if the boolean signal is true. when1 :: BoolSig -> 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. whens :: [(BoolSig, SE ())] -> SE () -> SE () whenElse :: BoolSig -> SE () -> SE () -> SE () -- | Invokes the given procedure if the boolean signal is true. whenD1 :: BoolD -> 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. whenDs :: [(BoolD, SE ())] -> SE () -> SE () whileDo :: BoolSig -> SE () -> SE () untilDo :: BoolSig -> SE () -> SE () whileDoD :: BoolD -> SE () -> SE () untilDoD :: BoolD -> SE () -> SE () whenElseD :: BoolD -> SE () -> SE () -> SE () -- | Performs tree search f the first argument lies within the interval it -- performs the corresponding procedure. compareWhenD :: D -> [(D, SE ())] -> SE () equalsTo :: EqB a => a -> a -> BooleanOf a infix 4 `equalsTo` notEqualsTo :: EqB a => a -> a -> BooleanOf a infix 4 `notEqualsTo` lessThan :: OrdB a => a -> a -> BooleanOf a infix 4 `lessThan` greaterThan :: OrdB a => a -> a -> BooleanOf a infix 4 `greaterThan` lessThanEquals :: OrdB a => a -> a -> BooleanOf a infix 4 `lessThanEquals` greaterThanEquals :: OrdB a => a -> a -> BooleanOf a infix 4 `greaterThanEquals` 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) -- | A tuple of Csound values. class Tuple a tupleMethods :: Tuple a => TupleMethods a -- | Defines instance of type class Tuple for a new type in terms of -- an already defined one. makeTupleMethods :: Tuple a => (a -> b) -> (b -> a) -> TupleMethods b -- | Csound's empty tuple. data Unit -- | Constructs Csound's empty tuple. unit :: Unit -- | Gets an control/audio-rate value from the list by index. atTuple :: Tuple a => [a] -> Sig -> a -- | ifB for tuples of csound values. ifTuple :: Tuple a => BoolSig -> a -> a -> a -- | guardedB for tuples of csound values. guardedTuple :: Tuple b => [(BoolSig, b)] -> b -> b -- | caseB for tuples of csound values. caseTuple :: Tuple b => a -> [(a -> BoolSig, b)] -> b -> b class Tuple a => Arg a -- | Gets an init-rate value from the list by index. atArg :: (Tuple a, Arg a) => [a] -> D -> a -- | ifB for constants. ifArg :: (Arg a, Tuple a) => BoolD -> a -> a -> a -- | guardedB for constants. guardedArg :: (Tuple b, Arg b) => [(BoolD, b)] -> b -> b -- | caseB for constants. caseArg :: (Tuple b, Arg b) => a -> [(a -> BoolD, b)] -> b -> b -- | Input argument for monophonic synthesizer. It includes signals for -- amplitude, frequency (Cycles Per second), gate, trigger. The gate -- equals to 1 when any note is pressed or zero when nothing is pressed. -- The trigger equals to 1 at the moment when new note is pressed -- otherwise it's 0. data MonoArg MonoArg :: Sig -> Sig -> Sig -> Sig -> MonoArg [monoAmp] :: MonoArg -> Sig [monoCps] :: MonoArg -> Sig [monoGate] :: MonoArg -> Sig [monoTrig] :: MonoArg -> Sig -- | ADSR that's used in monophonic instruments. type MonoAdsr = Sig -> Sig -> Sig -> Sig -> Sig -- | Turns the function that expects ADSR-function and amplitude and -- frequency to the function on monophonic argument. adsrMonoSynt :: (MonoAdsr -> (Sig, Sig) -> a) -> MonoArg -> a monoAdsr :: MonoArg -> MonoAdsr -- | The tuples of signals. class (Tuple a, Num a, Fractional a, SigSpace a, BindSig a) => Sigs a -- | Arrays. The array data type is parametrized with type of the index and -- the type of the value. Note that the data tpyes for indices and values -- can be tuples. data Arr ix a -- | Creates an array that is local to the body of Csound instrument where -- it's defined. The array contains audio signals. -- --
-- newLocalArr sizes --newLocalArr :: (Tuple a, Tuple ix) => [D] -> SE (Arr ix a) -- | Creates a global array. The array contains audio signals. -- --
-- newGlobalArr sizes --newGlobalArr :: (Tuple a, Tuple ix) => [D] -> SE (Arr ix a) -- | Creates an array that is local to the body of Csound instrument where -- it's defined. The array contains control signals. -- --
-- newLocalCtrlArr sizes --newLocalCtrlArr :: (Tuple a, Tuple ix) => [D] -> SE (Arr ix a) -- | Creates a global array. The array contains control signals. -- --
-- newGlobalCtrlArr sizes --newGlobalCtrlArr :: (Tuple a, Tuple ix) => [D] -> SE (Arr ix a) -- | Writes data to the array. writeArr :: (Tuple ix, Tuple a) => Arr ix a -> ix -> a -> SE () -- | Reads data from the array. readArr :: (Tuple a, Tuple ix) => Arr ix a -> ix -> SE a -- | Updates the value of the array with pure function. modifyArr :: (Tuple a, Tuple ix) => Arr ix a -> ix -> (a -> a) -> SE () mixArr :: (Tuple ix, Tuple a, Num a) => Arr ix a -> ix -> a -> SE () -- | An array with single signal index. type Arr1 a = Arr Sig a -- | An array with single constant index. type DArr1 a = Arr D a -- | A matrix (2D array) with signal index. type Arr2 a = Arr (Sig, Sig) a -- | A matrix (2D array) with constant index. type DArr2 a = Arr (D, D) a -- | A 3D array with signal index. type Arr3 a = Arr (Sig, Sig, Sig) a -- | A 3D array with constant index. type DArr3 a = Arr (D, D, D) a -- | Function to help the type inference. arr1 :: SE (Arr Sig a) -> SE (Arr Sig a) -- | Function to help the type inference. darr1 :: SE (Arr D a) -> SE (Arr D a) -- | Function to help the type inference. arr2 :: SE (Arr (Sig, Sig) a) -> SE (Arr (Sig, Sig) a) -- | Function to help the type inference. darr2 :: SE (Arr (D, D) a) -> SE (Arr (D, D) a) -- | Function to help the type inference. arr3 :: SE (Arr (Sig, Sig, Sig) a) -> SE (Arr (Sig, Sig, Sig) a) -- | Function to help the type inference. darr3 :: SE (Arr (D, D, D) a) -> SE (Arr (D, D, D) a) -- | Traverses all elements of the array array and applies a procedure to -- each element. The procedure takes in a pair of index and the current -- value at the given index. foreachArr :: (Tuple ix, Tuple a) => Arr ix a -> ((ix, a) -> SE ()) -> SE () -- | Traverses all elements of the array at the **init rate** and applies a -- procedure to each element. The procedure takes in a pair of index and -- the current value at the given index. foreachArrD :: (Tuple ix, Tuple a) => Arr ix a -> ((ix, a) -> SE ()) -> SE () -- | Traverses all elements in the given row of 2D array at the signal rate -- and applies a procedure to all elements. forRowArr :: Tuple a => Sig -> Arr Sig2 a -> ((Sig, a) -> SE ()) -> SE () -- | Traverses all elements in the given column of 2D array at the signal -- rate and applies a procedure to all elements. forColumnArr :: Tuple a => Sig -> Arr Sig2 a -> ((Sig, a) -> SE ()) -> SE () -- | Traverses all elements in the given row of 2D array at the init rate -- and applies a procedure to all elements. forRowArrD :: Tuple a => D -> Arr D2 a -> ((D, a) -> SE ()) -> SE () -- | Traverses all elements in the given column of 2D array at the init -- rate and applies a procedure to all elements. forColumnArrD :: Tuple a => D -> Arr D2 a -> ((D, a) -> SE ()) -> SE () -- | Traverses an array and accumulates a value. We invoke the function -- with accumulator function, initial value and the array. foldArr :: (Tuple ix, Tuple a, Tuple b) => ((ix, a) -> b -> SE b) -> b -> Arr ix a -> SE b -- | Traverses a row in the array and accumulates a value. We invoke the -- function with accumulator function, initial value and the array with -- signal of the row number. -- --
-- foldRowArr accum initValue rowId array --foldRowArr :: (Tuple a, Tuple b) => ((Sig, a) -> b -> SE b) -> b -> Sig -> Arr Sig2 a -> SE b -- | Traverses a column in the array and accumulates a value. We invoke the -- function with accumulator function, initial value and the array with -- signal of the row number. -- --
-- foldColumnArr accum initValue columnId array --foldColumnArr :: (Tuple a, Tuple b) => ((Sig, a) -> b -> SE b) -> b -> Sig -> Arr Sig2 a -> SE b -- | Traverses a row at the **init rate** in the array and accumulates a -- value. We invoke the function with accumulator function, initial value -- and the array with signal of the row number. -- --
-- foldRowArr accum initValue rowId array --foldRowsArrD :: (Tuple a, Tuple b) => ((D, a) -> b -> SE b) -> b -> D -> Arr D2 a -> SE b -- | Traverses a column at the **init rate** in the array and accumulates a -- value. We invoke the function with accumulator function, initial value -- and the array with signal of the row number. -- --
-- foldColumnArr accum initValue columnId array --foldColumnsArrD :: (Tuple a, Tuple b) => ((D, a) -> b -> SE b) -> b -> D -> Arr D2 a -> SE b -- | Creates an array that is local to the body of Csound instrument where -- it's defined. The array contains audio signals. It fills the array -- from the list of values (the last argument). -- --
-- fillLocalArr sizes initValues = ... --fillLocalArr :: (Tuple a, Tuple ix) => [Int] -> [a] -> SE (Arr ix a) -- | Creates a global array. The array contains audio signals. It fills the -- array from the list of values (the last argument). -- --
-- fillGlobalArr sizes initValues = ... --fillGlobalArr :: (Tuple a, Tuple ix) => [Int] -> [a] -> SE (Arr ix a) -- | Creates an array that is local to the body of Csound instrument where -- it's defined. The array contains control signals. It fills the array -- from the list of values (the last argument). -- --
-- fillLocalCtrlArr sizes initValues = ... --fillLocalCtrlArr :: (Tuple a, Tuple ix) => [Int] -> [a] -> SE (Arr ix a) -- | Creates a global array. The array contains control signals. It fills -- the array from the list of values (the last argument). -- --
-- fillGlobalCtrlArr sizes initValues = ... --fillGlobalCtrlArr :: (Tuple a, Tuple ix) => [Int] -> [a] -> SE (Arr ix a) -- | Mapps all values in the array with the function. -- -- Csound docs: http://csound.github.io/docs/manual/maparray.html maparrayNew :: Arr a b -> Str -> SE (Arr a b) lenarray :: SigOrD c => Arr a b -> c -- | Copies table to array. copyf2array :: Arr Sig Sig -> Tab -> SE () -- | Copies array to table. copya2ftab :: Arr Sig Sig -> Tab -> SE () -- | Finds a minimum value of the array. minarray :: (Tuple b, Num b) => Arr a b -> SE b -- | Finds a maximum value of the array. maxarray :: (Tuple b, Num b) => Arr a b -> SE b -- | Summs all elements in the array. sumarray :: (Tuple b, Num b) => Arr a b -> SE b -- | Scales all elements in the array. scalearray :: (Tuple b, Num b) => Arr a b -> (b, b) -> SE () -- | Creates a copy of some part of the given array slicearrayNew :: Arr D a -> (D, D) -> SE (Arr D a) -- | Transforms the dta of the array and copies it to the second array. maparrayCopy :: Arr a b -> Str -> Arr a b -> SE () -- | Copies a part of array to another array. slicearrayCopy :: Arr D a -> (D, D) -> Arr D a -> SE () -- | Spectral array. type SpecArr = Arr Sig Sig -- | Complex-to-complex Fast Fourier Transform. -- -- csound docs: http://csound.github.io/docs/manual/fft.html fftNew :: SpecArr -> SE SpecArr -- | Complex-to-complex Inverse Fast Fourier Transform. -- -- csound docs: http://csound.github.io/docs/manual/fftinv.html fftinvNew :: SpecArr -> SE SpecArr -- | Fast Fourier Transform of a real-value array. -- -- csound docs: http://csound.github.io/docs/manual/rfft.html rfftNew :: SpecArr -> SE SpecArr -- | Complex-to-real Inverse Fast Fourier Transform. -- -- csound docs: http://csound.github.io/docs/manual/rifft.html rifftNew :: SpecArr -> SE SpecArr -- | Copies spectral data to k-rate arrays (or t-variables). Also known as -- pvs2array. -- -- csound docs: http://csound.github.io/docs/manual/pvs2tab.html pvs2tab :: SpecArr -> Spec -> SE Sig -- | Copies spectral data from k-rate arrays (or t-variables.). Also known -- as pvsfromarray. -- -- csound docs: http://csound.github.io/docs/manual/tab2pvs.html tab2pvs :: SpecArr -> SE Spec -- | Complex product of two arrays. -- --
-- kout[] cmplxprod kin1[], kin2[] ---- -- csound docs: http://csound.github.io/docs/manual/cmplxprod.html cmplxprodNew :: SpecArr -> SpecArr -> SE SpecArr -- | Rectangular to polar format conversion. -- --
-- kout[] rect2pol kin[] ---- -- csound docs: http://csound.github.io/docs/manual/rect2pol.html rect2polNew :: SpecArr -> SE SpecArr -- | Polar to rectangular format conversion. -- --
-- kout[] pol2rect kin[] ---- -- csound docs: http://csound.github.io/docs/manual/pol2rect.html pol2rectNew :: SpecArr -> SE SpecArr -- | Polar to rectangular format conversion. -- --
-- kout[] pol2rect kmags[], kphs[] ---- -- csound docs: http://csound.github.io/docs/manual/pol2rect.html pol2rect2New :: SpecArr -> SpecArr -> SE SpecArr -- | Applies a window to an array. -- --
-- kout[] window kin[][, koff, itype] ---- -- csound docs: http://csound.github.io/docs/manual/window.html windowArrayNew :: SpecArr -> SE SpecArr -- | Real to complex format conversion. -- --
-- kout[] r2c kin[] ---- -- csound docs: http://csound.github.io/docs/manual/r2c.html r2cNew :: SpecArr -> SE SpecArr -- | Complex to real format conversion. -- --
-- kout[] c2r kin[] ---- -- csound docs: http://csound.github.io/docs/manual/c2r.html c2rNew :: SpecArr -> SE SpecArr -- | Obtains the magnitudes of a complex-number array -- --
-- kout[] mags kin[] ---- -- csound docs: http://csound.github.io/docs/manual/mags.html magsArrayNew :: SpecArr -> SE SpecArr -- | Obtains the phases of a complex-number array -- -- kout[] phs kin[] -- --
-- csound docs: <http://csound.github.io/docs/manual/phs.html> --phsArrayNew :: SpecArr -> SE SpecArr -- | Complex-to-complex Fast Fourier Transform. -- -- csound docs: http://csound.github.io/docs/manual/fft.html fftCopy :: SpecArr -> SpecArr -> SE () -- | Complex-to-complex Inverse Fast Fourier Transform. -- -- csound docs: http://csound.github.io/docs/manual/fftinv.html fftinvCopy :: SpecArr -> SpecArr -> SE () -- | Fast Fourier Transform of a real-value array. -- -- csound docs: http://csound.github.io/docs/manual/rfft.html rfftCopy :: SpecArr -> SpecArr -> SE () -- | Complex-to-real Inverse Fast Fourier Transform. -- -- csound docs: http://csound.github.io/docs/manual/rifft.html rifftCopy :: SpecArr -> SpecArr -> SE () -- | Complex product of two arrays. -- --
-- kout[] cmplxprod kin1[], kin2[] ---- -- csound docs: http://csound.github.io/docs/manual/cmplxprod.html cmplxprodCopy :: SpecArr -> SpecArr -> SpecArr -> SE () -- | Rectangular to polar format conversion. -- --
-- kout[] rect2pol kin[] ---- -- csound docs: http://csound.github.io/docs/manual/rect2pol.html rect2polCopy :: SpecArr -> SpecArr -> SE () -- | Polar to rectangular format conversion. -- --
-- kout[] pol2rect kin[] ---- -- csound docs: http://csound.github.io/docs/manual/pol2rect.html pol2rectCopy :: SpecArr -> SpecArr -> SE () -- | Polar to rectangular format conversion. -- --
-- kout[] pol2rect kmags[], kphs[] ---- -- csound docs: http://csound.github.io/docs/manual/pol2rect.html pol2rect2Copy :: SpecArr -> SpecArr -> SpecArr -> SE () -- | Applies a window to an array. -- --
-- kout[] window kin[][, koff, itype] ---- -- csound docs: http://csound.github.io/docs/manual/window.html windowArrayCopy :: SpecArr -> SpecArr -> SE () -- | Real to complex format conversion. -- --
-- kout[] r2c kin[] ---- -- csound docs: http://csound.github.io/docs/manual/r2c.html r2cCopy :: SpecArr -> SpecArr -> SE () -- | Complex to real format conversion. -- --
-- kout[] c2r kin[] ---- -- csound docs: http://csound.github.io/docs/manual/c2r.html c2rCopy :: SpecArr -> SpecArr -> SE () -- | Obtains the magnitudes of a complex-number array -- --
-- kout[] mags kin[] ---- -- csound docs: http://csound.github.io/docs/manual/mags.html magsArrayCopy :: SpecArr -> SpecArr -> SE () -- | Obtains the phases of a complex-number array -- -- kout[] phs kin[] -- --
-- csound docs: <http://csound.github.io/docs/manual/phs.html> --phsArrayCopy :: SpecArr -> SpecArr -> SE () module Csound.Tuning -- | Data structure for musical temperament. The value can be created with -- constructors genTemp and genTempCent. It can be -- passed as an argument to the instrument (it can be a part of the -- note). newtype Temp Temp :: Tab -> Temp [unTemp] :: Temp -> Tab -- | Creates a temperament. Arguments are -- --
-- genTemp interval baseHz baseMidiPitch cents ---- -- For example: -- --
-- genTemp 2 261.63 60 [0, 100, 200 .. more cents .. , 1200] ---- -- Cent list should include the first note from the next octave(interval -- of temperament repetition). genTemp :: Double -> Double -> Double -> [Double] -> Temp -- | Creates a temperament. Arguments are -- --
-- genTempCent interval baseHz baseMidiPitch ratios ---- -- For example: -- --
-- genTempRatio 2 261.63 60 [1, .. more ratios .. , 2] ---- -- Cent list should include the first note from the next octave(interval -- of temperament repetition). genTempRatio :: Double -> Double -> Double -> [Double] -> Temp -- | Temperament with base note at note C (261.63 Hz) and an octave as -- interval (2). The argument is the list of cents. tempC :: [Double] -> Temp -- | Temperament with base note at note C (261.63 Hz) and an octave as -- interval (2). The argument is the list of ratios. tempRatioC :: [Double] -> Temp -- | Temperament with 9th note tuned to 440 Hz (Concert A). The argument is -- the list of cents. stdTemp :: [Double] -> Temp -- | Temperament with 9th note tuned to 440 Hz (Concert A). The argument is -- the list of ratios. stdTempRatio :: [Double] -> Temp -- | Baroque Temperament with 9th note tuned to 415 Hz (Concert A). The -- argument is the list of cents. barTemp :: [Double] -> Temp -- | Baroque Temperament with 9th note tuned to 415 Hz (Concert A). The -- argument is the list of ratios. barTempRatio :: [Double] -> Temp -- | Temperament with 9th note tuned to 440 Hz (Concert A). The argument is -- the list of cents. concertA :: Double -> [Double] -> Temp -- | Temperament with 9th note tuned to 440 Hz (Concert A). The argument is -- the list of ratios. ratioConcertA :: Double -> [Double] -> Temp -- | Equal temperament equal1 :: Temp -- | Just intonation just1 :: Temp -- | Meantone temperament meantone :: Temp -- | Pythagorean tuning pythagor :: Temp -- | Werckmeister III temperament. Probably it was temperament of the Bach -- musical era. werckmeister :: Temp -- | Tomas Young temperament young1 :: Temp -- | Tomas Young temperament 1 (aligned with ET by C and A) young2 :: Temp -- | Tomas Young temperament 2 (aligned with ET by C and A) young3 :: Temp equalCents1 :: [Double] justCents1 :: [Double] meantoneCents :: [Double] pythagorCents :: [Double] werckmeisterCents :: [Double] youngCents1 :: [Double] youngCents2 :: [Double] youngCents3 :: [Double] -- | List of temperaments (or more precisely f-table of temperaments). It -- can be passed as an argument to the instrument (it can be a part of -- the note). newtype TempList TempList :: TabList -> TempList [unTempList] :: TempList -> TabList -- | Creates a list of temperaments. tempList :: [Temp] -> TempList -- | Selects one of the temperaments by index. fromTempList :: TempList -> Sig -> Temp -- | Selects one of the temperaments by index. Works at the time of -- instrument initialization (remains constant). fromTempListD :: TempList -> D -> Temp -- | Converts cents to ratios. cent2ratio :: Floating a => a -> a -- | Converts ratios to cents. ratio2cent :: Floating a => a -> a instance Csound.Typed.Types.Tuple.Tuple Csound.Tuning.TempList instance Csound.Typed.Types.Tuple.Arg Csound.Tuning.TempList instance Data.Default.Class.Default Csound.Tuning.Temp instance Csound.Typed.Types.Tuple.Tuple Csound.Tuning.Temp instance Csound.Typed.Types.Tuple.Arg Csound.Tuning.Temp module Csound.Control.Evt -- | A stream of events. We can convert a stream of events to the procedure -- with the function runEvt. It waits for events and invokes the -- given procedure when the event happens. data Evt a Evt :: (Bam a -> SE ()) -> Evt a [runEvt] :: Evt a -> Bam a -> SE () -- | A procedure. Something that takes a value and suddenly bams with it. type Bam a = a -> SE () type Tick = Evt Unit -- | Converts booleans to events. boolToEvt :: BoolSig -> Evt Unit -- | Converts an event stream to boolean signal. It's True when something -- happens and False otherwise. evtToBool :: Evt a -> BoolSig -- | Creates a trigger signal out of event stream. It equals to 1 when -- something happens and 0 otherwise. evtToTrig :: Evt a -> Sig -- | Triggers an event when signal equals to 1. sigToEvt :: Sig -> Evt Unit -- | Converts event stream to signal. The first argument is initial value. -- It holds the value while nothing happens. If the event happens it -- overwrites the current value of the output signal. evtToSig :: D -> Evt D -> Sig -- | Converts events to signals. stepper :: Tuple a => a -> Evt a -> SE a -- | Filters events with predicate. filterE :: (a -> BoolD) -> Evt a -> Evt a -- | Filters events with effectful predicate. filterSE :: (a -> SE BoolD) -> Evt a -> Evt a -- | Accumulator for events with side effects. accumSE :: Tuple s => s -> (a -> s -> SE (b, s)) -> Evt a -> Evt b -- | Accumulator for events. accumE :: Tuple s => s -> (a -> s -> (b, s)) -> Evt a -> Evt b -- | Accumulator with filtering. It can skip the events from the event -- stream. If the third element of the triple equals to 1 then we should -- include the event in the resulting stream. If the element equals to 0 -- we skip the event. filterAccumE :: Tuple s => s -> (a -> s -> (BoolD, b, s)) -> Evt a -> Evt b -- | Accumulator for events with side effects and filtering. Event triggers -- only if the first element in the tripplet is true. filterAccumSE :: Tuple s => s -> (a -> s -> SE (BoolD, b, s)) -> Evt a -> Evt b -- | A snapshot of the signal. It converts a type of the signal to the type -- of the value in the given moment. Instances: -- --
-- type instance Snap D = D -- type instance Snap Str = Str -- type instance Snap Tab = Tab -- -- type instance Snap Sig = D -- -- type instance Snap (a, b) = (Snap a, Snap b) -- type instance Snap (a, b, c) = (Snap a, Snap b, Snap c) -- type instance Snap (a, b, c, d) = (Snap a, Snap b, Snap c, Snap d) -- type instance Snap (a, b, c, d, e) = (Snap a, Snap b, Snap c, Snap d, Snap e) -- type instance Snap (a, b, c, d, e, f) = (Snap a, Snap b, Snap c, Snap d, Snap e, Snap f) --type family Snap a -- | Get values of some signal at the given events. snapshot :: (Tuple a, Tuple (Snap a)) => (Snap a -> b -> c) -> a -> Evt b -> Evt c readSnap :: (Tuple (Snap a), Tuple a) => a -> Snap a -- | Constructs an event stream that contains values from the given signal. -- Events happens only when the signal changes. snaps :: Sig -> Evt D -- | Constructs an event stream that contains pairs from the given pair of -- signals. Events happens when any signal changes. snaps2 :: Sig2 -> Evt (D, D) -- | Executes actions synchronized with global tempo (in Hz). -- --
-- runEvtSync tempoCps evt proc --sync :: (Default a, Tuple a) => Sig -> Evt a -> Evt a -- | the sync function but time is measured in beats per minute. syncBpm :: (Default a, Tuple a) => Sig -> Evt a -> Evt a -- | Creates a stream of events that happen with the given frequency. metro :: Sig -> Evt Unit -- | Creates a stream of ticks that happen around the given frequency with -- given deviation. -- --
-- gaussTrig freq deviation --gaussTrig :: Sig -> Sig -> Tick -- | Creates a stream of random events. The argument is a number of events -- per second. -- --
-- dust eventsPerSecond --dust :: Sig -> Tick -- | Csound's original metro function. metroSig :: Sig -> Sig -- | Creates a signal that contains a random ones that happen with given -- frequency. dustSig :: Sig -> SE Sig -- | Creates a signal that contains a random ones or negative ones that -- happen with given frequency. dustSig2 :: Sig -> SE Sig -- | Fires a single event in the given time ahead. impulseE :: D -> Evt Unit -- | Behaves like changed, but returns an event stream. changedE :: [Sig] -> Evt Unit -- | Behaves like trigger, but returns an event stream. triggerE :: Sig -> Sig -> Sig -> Evt Unit -- | Fires a single event right now. -- --
-- loadbang = pulseE 0 --loadbang :: Evt Unit -- | Fires a single true value in the given time ahead. impulse :: D -> Sig -- | Behaves like metro, but returns an event stream. -- | Deprecated: Use metro instead metroE :: Sig -> Evt Unit -- | Constant event stream. It produces the same value (the first argument) -- all the time. devt :: D -> Evt a -> Evt D -- | Makes an event stream from list of events. eventList :: [(Sig, Sig, a)] -> Evt (Sco a) -- | Constructs an event stream that contains an infinite repetition values -- from the given list. When an event happens this function takes the -- next value from the list, if there is no values left it starts from -- the beggining of the list. cycleE :: (Tuple a, Arg a) => [a] -> Evt b -> Evt a -- | When something happens on the given event stream resulting event -- stream contains an application of some unary function to the given -- initial value. So the event stream contains the values: -- --
-- [s0, f s0, f (f s0), f (f (f s0)), ...] --iterateE :: Tuple a => a -> (a -> a) -> Evt b -> Evt a -- | Substitutes all values in the input stream with the given constant -- value. repeatE :: Tuple a => a -> Evt b -> Evt a -- | Accumulates a values from the given event stream with binary function. -- It's a variant of the fold for event streams. -- --
-- appendE z f evt ---- -- When value a happens with evt, the resulting event -- stream contains a value (z f a) and in the next time -- z equals to this value. appendE :: Tuple a => a -> (a -> a -> a) -> Evt a -> Evt a -- | A special variant of the function appendE for the monoids. -- Initial value is mempty and binary function is mappend -- which belong to the instance of the class Monoid. mappendE :: (Monoid a, Tuple a) => Evt a -> Evt a -- | Splits event stream on two streams with predicate. partitionE :: (a -> BoolD) -> Evt a -> (Evt a, Evt a) -- | Takes the ns events from the event stream and ignores the rest of the -- stream. takeE :: Int -> Evt a -> Evt a -- | Drops the ns events from the event stream and leaves the rest of the -- stream. dropE :: Int -> Evt a -> Evt a -- | Takes events while the predicate is true. takeWhileE :: (a -> BoolD) -> Evt a -> Evt a -- | Drops events while the predicate is true. dropWhileE :: (a -> BoolD) -> Evt a -> Evt a -- | Splits a toggle event stream on on-events and off-events. splitToggle :: Evt D -> (Evt D, Evt D) -- | Converts clicks to alternating 0 and 1 (toggle event stream) toTog :: Tick -> Evt D -- | Converts clicks to alternating 1 and 0 (toggle event stream with first -- value set to 1) toTog1 :: Tick -> Evt D -- | Represents a values with frequency of occurence. type Rnds a = [(Sig, a)] -- | Constructs an event stream that contains values from the given list -- which are taken in the random order. oneOf :: (Tuple a, Arg a) => [a] -> Evt b -> Evt a -- | Constructs an event stream that contains values from the given list -- which are taken in the random order. In the list we specify not only -- values but the frequencies of occurrence. Sum of the frequencies -- should be equal to one. freqOf :: (Tuple a, Arg a) => Rnds a -> Evt b -> Evt a -- | This function combines the functions accumE and freqOf. -- We transform the values of the event stream with stateful function -- that produce not just values but the list of values with frequencies -- of occurrence. We apply this function to the current state and the -- value and then at random pick one of the values. freqAccum :: (Arg b, Arg s) => s -> (a -> s -> Rnds (b, s)) -> Evt a -> Evt b -- | An event stream of the random values in the interval (0, 1). randDs :: Evt b -> Evt D -- | An event stram of lists of random values in the interval (0, -- 1). The first argument is the length of the each list. randList :: Int -> Evt b -> Evt [D] -- | An event stream of the integers taken from the given diapason. randInts :: (D, D) -> Evt b -> Evt D -- | Skips elements at random. -- --
-- randSkip prob ---- -- where prob is probability of includinng the element in the -- output stream. randSkip :: Sig -> Evt a -> Evt a -- | Skips elements at random. -- --
-- randSkip probFun ---- -- It behaves just like randSkip, but probability depends on the -- value. randSkipBy :: (a -> Sig) -> Evt a -> Evt a -- |
-- range (xMin, xMax) === cycleE [xMin .. pred xMax] --range :: (D, D) -> Evt b -> Evt D -- | Turns an event of indices to the event of the values from the list. A -- value is taken with index. listAt :: (Tuple a, Arg a) => [a] -> Evt D -> Evt a -- | Specialization of the function masked. -- --
-- every n [a, b, c, ..] evt ---- -- constructs a mask that skips first n elements and then -- produces an event and skips next (a - 1) events, then produces an -- event and skips next (b - 1) events and so on. It's useful for -- construction of the percussive beats. For example -- --
-- every 0 [2] (metroE 2) ---- -- triggers an event on the odd beats. With this function we can create a -- complex patterns of cyclic events. every :: (Tuple a, Arg a) => Int -> [Int] -> Evt a -> Evt a -- | Filters events with the mask. A mask is a list of ones and zeroes. -- n'th element from the given list should be included in the resulting -- stream if the n'th element from the list equals to one or skipped if -- the element equals to zero. masked :: (Tuple a, Arg a) => [D] -> Evt a -> Evt a -- | We can convert notes to sound signals with instruments. An instrument -- is a function: -- --
-- (Arg a, Sigs b) => a -> SE b ---- -- It takes a tuple of primitive Csound values (number, string or array) -- and converts it to the tuple of signals and it makes some side effects -- along the way so the output is wrapped in the SE-monad. -- -- There are only three ways of making a sound with an instrument: -- --
-- (Arg a) => a -> SE () ---- -- To invoke the procedures there are functions with trailing underscore. -- For example we have the function trig to convert event stream -- to sound: -- --
-- trig :: (Arg a, Sigs b) => (a -> SE b) -> Evts (D, D, a) -> b ---- -- and we have a trig with underscore to convert the event -- stream to the sequence of the procedure invkations: -- --
-- trig_ :: (Arg a) => (a -> SE ()) -> Evts (D, D, a) -> SE () ---- -- To invoke instruments from another instrumetnts we use artificial -- closures made with functions with trailing xxxBy. For example: -- --
-- trigBy :: (Arg a, Arg c, Sigs b) => (a -> SE b) -> (c -> Evts (D, D, a)) -> (c -> b) ---- -- Notice that the event stream depends on the argument of the type c. -- Here goes all the parameters that we want to pass from the outer -- instrument. Unfortunately we can not just create the closure, because -- our values are not the real values. It's a text of the programm (a -- tiny snippet of it) to be executed. For a time being I don't know how -- to make it better. So we need to pass the values explicitly. -- -- For example, if we want to make an arpeggiator: -- --
-- pureTone :: D -> SE Sig -- pureTone cps = return $ mul env $ osc $ sig cps -- where env = linseg [0, 0.01, 1, 0.25, 0] -- -- majArpeggio :: D -> SE Sig -- majArpeggio = return . schedBy pureTone evts -- where evts cps = withDur 0.5 $ fmap (* cps) $ cycleE [1, 5/3, 3/2, 2] $ metroE 5 -- -- main = dac $ mul 0.5 $ midi $ onMsg majArpeggio ---- -- We should use schedBy to pass the frequency as a parameter to -- the event stream. module Csound.Control.Instr type Sco a = Track Sig a -- | Special type that represents a scores of sound signals. If an -- instrument is triggered with the scores the result is wrapped in the -- value of this type. data Mix a -- | Plays a bunch of notes with the given instrument. -- --
-- res = sco instrument scores --sco :: (Arg a, Sigs b) => (a -> SE b) -> Sco a -> Sco (Mix b) -- | Renders a scores to the sound signals. we can use it inside the other -- instruments. mix :: Sigs a => Sco (Mix a) -> a -- | Applies an effect to the sound. Effect is applied to the sound on the -- give track. -- --
-- res = eff effect sco ---- --
-- res = monoSco instrument scores --monoSco :: Sigs a => (MonoArg -> SE a) -> Sco (D, D) -> Sco (Mix a) -- | Mixes the scores and plays them in the loop. mixLoop :: Sigs a => Sco (Mix a) -> a -- | Invokes a procedure for the given bunch of events. sco_ :: Arg a => (a -> SE ()) -> Sco a -> Sco (Mix Unit) -- | Converts a bunch of procedures scheduled with scores to a single -- procedure. mix_ :: Sco (Mix Unit) -> SE () -- | Mixes the procedures and plays them in the loop. mixLoop_ :: Sco (Mix Unit) -> SE () -- | Imitates a closure for a bunch of notes to be played within another -- instrument. mixBy :: (Arg a, Sigs b) => (a -> Sco (Mix b)) -> a -> b infiniteDur :: Num a => a -- | General mapping. Maps not only values but events. mapEvents :: Num t => (Event t a -> Event t b) -> Track t a -> Track t b -- | temp constructs just an event. Value of type a lasts for one -- time unit and starts at zero. temp :: Num t => a -> Track t a -- | Constant time events. Value a starts at some time and lasts -- for some time. data Event t a Event :: t -> t -> a -> Event t a [eventStart] :: Event t a -> t [eventDur] :: Event t a -> t [eventContent] :: Event t a -> a dur :: Duration a => a -> DurOf a -- | Delays the sound source by the given duration factor. str :: Stretch a => DurOf a -> a -> a sched :: (Arg a, Sigs b) => (a -> SE b) -> Evt (Sco a) -> b retrig :: (Arg a, Sigs b) => (a -> SE b) -> Evt a -> b -- | An instrument is triggered with event stream and delay time is set to -- zero (event fires immediately) and duration is set to inifinite time. -- The note is held while the instrument is producing something. If the -- instrument is silent for some seconds (specified in the first -- argument) then it's turned off. schedHarp :: (Arg a, Sigs b) => D -> (a -> SE b) -> Evt [a] -> b -- | Invokes an instrument with first event stream and holds the note until -- the second event stream is active. schedUntil :: (Arg a, Sigs b) => (a -> SE b) -> Evt a -> Evt c -> b -- | Invokes an instrument with toggle event stream (1 stands for on and 0 -- stands for off). schedToggle :: Sigs b => SE b -> Evt D -> b -- | Triggers a procedure on the event stream. sched_ :: Arg a => (a -> SE ()) -> Evt (Sco a) -> SE () -- | Invokes an instrument with first event stream and holds the note until -- the second event stream is active. schedUntil_ :: Arg a => (a -> SE ()) -> Evt a -> Evt c -> SE () -- | A closure to trigger an instrument inside the body of another -- instrument. schedBy :: (Arg a, Sigs b, Arg c) => (a -> SE b) -> (c -> Evt (Sco a)) -> c -> b -- | A closure to trigger an instrument inside the body of another -- instrument. schedHarpBy :: (Arg a, Sigs b, Arg c) => D -> (a -> SE b) -> (c -> Evt [a]) -> c -> b -- | Sets the same duration for all events. It's useful with the functions -- sched, schedBy, sched_. withDur :: Sig -> Evt a -> Evt (Sco a) -- | Turns monoSched :: Evt (Sco (D, D)) -> SE MonoArg -- | Creates an instrument that can be triggered by name with Csound API. -- The arguments are determined from the structure of the input for the -- instrument. If we have a tuple of arguments: (D, D, Tab) The -- would be rendered to instrument arguments that strts from p4. -- p1 is the name of teh instrument, p2 is the start -- time of the note, p3 is the duration of the note. Then -- p4 and p5 are going to be doubles and p6 is -- an integer that denotes a functional table. trigByName :: (Arg a, Sigs b) => String -> (a -> SE b) -> SE b -- | Creates an instrument that can be triggered by name with Csound API. -- The arguments are determined from the structure of the input for the -- instrument. -- -- With Csound API we can send messages -- --
-- i "name" time duration arg1 arg2 arg3 --trigByName_ :: Arg a => String -> (a -> SE ()) -> SE () -- | Creates an instrument that can be triggered by name with Csound API. -- -- It's intended to be used like a midi instrument. It simulates a -- simplified midi protocol. We can trigger notes: -- --
-- i "givenName" delay duration 1 pitchKey volumeKey auxParams -- note on -- i "givenName" delay duration 0 pitchKey volumeKey auxParams -- note off ---- -- The arguments are -- --
-- trigByNameMidi name instrument ---- -- The instrument takes a triplet of (pitchKey, volumeKey, -- auxilliaryTuple). The order does matter. Please don't pass the -- volumeKey as the first argument. The instrument expects the -- pitch key to be a first argument. trigByNameMidi :: (Arg a, Sigs b) => String -> ((D, D, a) -> SE b) -> SE b -- | It behaves just like the function trigByNameMidi. Only it -- doesn't produce an audio signal. It performs some procedure on note on -- and stops doing the precedure on note off. trigByNameMidi_ :: Arg a => String -> ((D, D, a) -> SE ()) -> SE () -- | Turns off named instruments. -- --
-- turnoffNamedInstr name kmode krelease ---- -- name of the instrument (should be defined with trigByName or -- smth like that). -- -- kmode -- sum of the following values: -- -- 0, 1, or 2: turn off all instances (0), oldest only (1), or newest -- only (2) -- -- 4: only turn off notes with exactly matching (fractional) instrument -- number, rather than ignoring fractional part -- -- 8: only turn off notes with indefinite duration (p3 < 0 or MIDI) -- -- krelease -- if non-zero, the turned off instances are allowed to -- release, otherwise are deactivated immediately (possibly resulting in -- clicks) turnoffByName :: String -> Sig -> Sig -> SE () -- | Executes some procedure for the whole lifespan of the program, alwaysOn :: SE () -> SE () -- | Transforms an instrument from always on to conditional one. The -- routput instrument plays only when condition is true otherwise it -- produces silence. playWhen :: forall a b. Sigs a => BoolSig -> (b -> SE a) -> b -> SE a class Sigs (SigOuts a) => Outs a where { type family SigOuts a :: *; } toOuts :: Outs a => a -> SE (SigOuts a) onArg :: Outs b => (a -> b) -> a -> SE (SigOuts b) -- | Constructs a drum-like instrument. Drum like instrument has a single -- argument that signifies an amplitude. class AmpInstr a where { type family AmpInstrOut a :: *; } onAmp :: AmpInstr a => a -> D -> SE (AmpInstrOut a) -- | Constructs a simple instrument that takes in a tuple of two arguments. -- They are amplitude and the frequency (in Hz or cycles per second). class CpsInstr a where { type family CpsInstrOut a :: *; } onCps :: CpsInstr a => a -> (D, D) -> SE (CpsInstrOut a) -- | Instrument reference. we can invoke or stop the instrument by the -- identifier. data InstrRef a -- | Creates a new instrument and generates a unique identifier. newInstr :: Arg a => (a -> SE ()) -> SE (InstrRef a) -- | Schedules an event for the instrument. -- --
-- scheduleEvent instrRef delay duration args ---- -- The arguments for time values are set in seconds. scheduleEvent :: Arg a => InstrRef a -> D -> D -> a -> SE () -- | Turns off the note played on the given instrument. Use fractional -- instrument reference to turn off specific instance. -- --
-- turnoff2 instrRef mode releaseTime ---- -- The mode is sum of the following values: -- --
-- monoMsg channel portamentoTime releaseTime --monoMsg :: MidiChn -> D -> D -> SE (Sig, Sig) -- | Produces midi amplitude and frequency as a signal and holds the last -- value till the next one is present. It can be used in mono-synths. -- Arguments are portamento time and release time. A portamento time is -- time it takes for transition from one note to another. -- --
-- holdMsg portamentoTime --holdMsg :: MidiChn -> D -> SE (Sig, Sig) -- | Creates a named instrument that can be triggered with Csound API. This -- way we can create a csd file that can be used inside another -- program/language. -- -- It simulates the input for monophonic midi-like instrument. Notes are -- encoded with messages: -- --
-- i "givenName" 1 pitchKey volumeKey -- note on -- i "givenName" 0 pitchKey volumeKey -- note off ---- -- The output is a pair of signals (midiVolume, midiPitch). trigNamedMono :: String -> SE MonoArg -- | Produces an argument for monophonic midi-synth. The signal fades out -- when nothing is pressed. It can be used in mono-synths. -- --
-- genMonoMsg channel --genMonoMsg :: MidiChn -> SE MonoArg smoothMonoArg :: D -> MonoArg -> MonoArg genFilteredMonoMsg :: MidiChn -> (D -> BoolD) -> SE MonoArg -- | Just like mono genMonoMsg but also we can alter the -- temperament. The temperament spec goes first. -- --
-- genMonoMsgTemp temperament channel --genFilteredMonoMsgTemp :: Temp -> MidiChn -> (D -> BoolD) -> SE MonoArg -- | Produces midi amplitude and frequency as a signal. The signal fades -- out when nothing is pressed. It can be used in mono-synths. Arguments -- are custom temperament, midi channel, portamento time and release -- time. A portamento time is time it takes for transition from one note -- to another. -- --
-- monoMsgTemp temperament channel portamentoTime releaseTime --monoMsgTemp :: Temp -> MidiChn -> D -> D -> SE (Sig, Sig) -- | Produces midi amplitude and frequency as a signal and holds the last -- value till the next one is present. It can be used in mono-synths. -- Arguments are portamento time and release time. A portamento time is -- time it takes for transition from one note to another. -- --
-- holdMsg portamentoTime --holdMsgTemp :: Temp -> MidiChn -> D -> SE (Sig, Sig) -- | Just like mono genMonoMsg but also we can alter the -- temperament. The temperament spec goes first. -- --
-- genMonoMsgTemp temperament channel --genMonoMsgTemp :: Temp -> MidiChn -> SE MonoArg -- | Listens to midi on event on the given key as event stream. The event -- stream carries the level of volume (ranges from 0 to 1). midiKeyOn :: MidiChn -> D -> SE (Evt D) -- | Listens to midi on event off the given key as event stream. midiKeyOff :: MidiChn -> D -> SE Tick -- | Get the note number of the current MIDI event, expressed in -- cycles-per-second. -- --
-- icps cpsmidi ---- -- csound doc: http://csound.com/docs/manual/cpsmidi.html cpsmidi :: Msg -> D -- | Get the velocity of the current MIDI event. -- --
-- iamp ampmidi iscal [, ifn] ---- -- csound doc: http://csound.com/docs/manual/ampmidi.html ampmidi :: Msg -> D -> D -- | Initialization of the midi control-messages. initc7 :: D -> D -> D -> SE () -- | Allows a floating-point 7-bit MIDI signal scaled with a minimum and a -- maximum range. -- --
-- idest ctrl7 ichan, ictlno, imin, imax [, ifn] -- kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn] -- adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff] ---- -- csound doc: http://csound.com/docs/manual/ctrl7.html ctrl7 :: D -> D -> D -> D -> Sig -- | Initializes midi control and get the value in the specified range. midiCtrl7 :: D -> D -> D -> D -> D -> SE Sig -- | Initializes midi control and get the value in the range (-1) to 1. midiCtrl :: D -> D -> D -> SE Sig -- | Unipolar midiCtrl. Initializes midi control and get the value in the -- range 0 to 1. umidiCtrl :: D -> D -> D -> SE Sig -- | Converts midi velocity number to amplitude. The first argument is -- dynamic range in decibels. -- --
-- ampmidinn (volMinDb, volMaxDb) volumeKey = amplitude --ampmidinn :: (D, D) -> D -> D -- | Midi message convertion with custom temperament. ampCps' :: Temp -> Msg -> (D, D) -- | Midi message convertion to Hz with custom temperament. cpsmidi' :: Temp -> Msg -> D -- | Midi pitch key convertion to Hz with custom temperament. It works on -- constants. cpsmidi'D :: Temp -> D -> D -- | Midi pitch key convertion to Hz with custom temperament. It works on -- signals. cpsmidi'Sig :: Temp -> Sig -> Sig -- | Invokes ooverloaded instruments with midi. Example: -- --
-- dac $ tryMidi (mul (fades 0.01 0.1) . tri) --tryMidi :: (MidiInstr a, Sigs (MidiInstrOut a)) => a -> SE (MidiInstrOut a) -- | Invokes ooverloaded instruments with midi and custom temperament. -- Example: -- --
-- dac $ tryMidi' youngTemp2 (mul (fades 0.01 0.1) . tri) --tryMidi' :: (MidiInstrTemp a, Sigs (MidiInstrOut a)) => Temp -> a -> SE (MidiInstrOut a) -- | Converts a value to the midi-instrument. It's used with the functions -- midi, midin. class MidiInstr a where { type family MidiInstrOut a :: *; } onMsg :: MidiInstr a => a -> Msg -> SE (MidiInstrOut a) -- | Converts a value to the midi-instrument with custom temperament. It's -- used with the functions midi, midin. class MidiInstr a => MidiInstrTemp a onMsg' :: MidiInstrTemp a => Temp -> a -> Msg -> SE (MidiInstrOut a) namedAmpCpsSig :: String -> SE (Sig, Sig, Sig) instance GHC.Classes.Eq Csound.Control.Midi.MidiChn instance GHC.Show.Show Csound.Control.Midi.MidiChn -- | Sound fonts. Playing Sf2 samples. -- -- There are three groups of functions. Functions that are defined for -- midi messages, midi notes (it's a pair of integers from 0-127) and the -- frequencies (in Hz). Each group contains four functions. They are -- destinguished by suffixes. The function with no suffix play a sf2 file -- with linear interpolation and take stereo output. The function with -- suffix 3 read samples with cubic interpolation. The functions -- with suffix m produce mono outputs. The loopers play samples -- in loops. module Csound.Control.Sf -- | The sf2 sound font preset. It is defined with file name, bank and -- program integers. data Sf Sf :: String -> Int -> Int -> Sf -- | Creates a midi instrument from sf2 sound font. Midi listens on all -- channels. It's useful to quickly test a sound font. The second -- argument is a sustain in seconds. How long it takes for the sound to -- decay. sf2 :: Sf -> D -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font. Midi listens on all -- channels. It's useful to quickly test a sound font. The second -- argument is a sustain in seconds. How long it takes for the sound to -- decay. sfTemp :: Temp -> Sf -> D -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with linear -- interpolation. sfMsg :: Sf -> D -> Msg -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with cubic -- interpolation. sfMsg3 :: Sf -> D -> Msg -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with linear -- interpolation. Produces mono output. sfMsgm :: Sf -> D -> Msg -> SE Sig -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with cubic -- interpolation. Produces mono output. sfMsg3m :: Sf -> D -> Msg -> SE Sig -- | Midi looper of the sf2 samples. The first arguments are: start, end, -- crossfade of the loop. sfMsgLooper :: Sig -> Sig -> Sig -> Sf -> D -> Msg -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with linear -- interpolation. sfMsgTemp :: Temp -> Sf -> D -> Msg -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with cubic -- interpolation. sfMsgTemp3 :: Temp -> Sf -> D -> Msg -> SE (Sig, Sig) -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with linear -- interpolation. Produces mono output. sfMsgTempm :: Temp -> Sf -> D -> Msg -> SE Sig -- | Creates a midi instrument from sf2 sound font file. The second -- argument is sustain in seconds. Reads samples with cubic -- interpolation. Produces mono output. sfMsgTemp3m :: Temp -> Sf -> D -> Msg -> SE Sig -- | Midi looper of the sf2 samples. The first arguments are: start, end, -- crossfade of the loop. sfMsgLooperTemp :: Sig -> Sig -> Sig -> Temp -> Sf -> D -> Msg -> SE (Sig, Sig) -- | Reads sf2 samples at given midi velocity and key (both are from 0 to -- 127). The second argument is sustain. Interpolation is linear. sfKey :: Sf -> D -> D -> D -> (Sig, Sig) -- | Reads sf2 samples at given midi velocity and key (both are from 0 to -- 127). The second argument is sustain. Interpolation is cubic. sfKey3 :: Sf -> D -> D -> D -> (Sig, Sig) -- | Reads sf2 samples at given midi velocity and key (both are from 0 to -- 127). The second argument is sustain. Interpolation is linear. The -- output is mono. sfKeym :: Sf -> D -> D -> D -> Sig -- | Reads sf2 samples at given midi velocity and key (both are from 0 to -- 127). The second argument is sustain. Interpolation is cubic. The -- output is mono. sfKey3m :: Sf -> D -> D -> D -> Sig -- | Looper of the sf2 samples. The first arguments are: start, end, -- crossfade of the loop. sfKeyLooper :: Sig -> Sig -> Sig -> Sf -> D -> D -> D -> (Sig, Sig) -- | Reads sf2 samples with amplitude in (0, 1) and frequency in Hz. The -- interpolation is linear. sfCps :: Sf -> D -> D -> D -> (Sig, Sig) -- | Reads sf2 samples with amplitude in (0, 1) and frequency in Hz. The -- interpolation is cubic. sfCps3 :: Sf -> D -> D -> D -> (Sig, Sig) -- | Reads sf2 samples with amplitude in (0, 1) and frequency in Hz. The -- interpolation is linear. The output is mono. sfCpsm :: Sf -> D -> D -> D -> Sig -- | Reads sf2 samples with amplitude in (0, 1) and frequency in Hz. The -- interpolation is cubic. The output is mono. sfCps3m :: Sf -> D -> D -> D -> Sig -- | Looper of the sf2 samples. The first arguments are: start, end, -- crossfade of the loop. sfCpsLooper :: Sig -> Sig -> Sig -> Sf -> D -> D -> D -> (Sig, Sig) -- | Primitive GUI elements. -- -- There is a convention that constructors take only parameters that -- specify the logic of the widget. The view is set for GUI-elements with -- other functions. module Csound.Control.Gui.Widget -- | The diapason of the continuous value. data ValDiap ValDiap :: Double -> Double -> ValDiap [valDiapMin] :: ValDiap -> Double [valDiapMax] :: ValDiap -> Double type ValStep = Double data ValScaleType Linear :: ValScaleType Exponential :: ValScaleType -- | A value span is a diapason of the value and a type of the scale (can -- be linear or exponential). data ValSpan ValSpan :: ValDiap -> ValScaleType -> ValSpan [valSpanDiap] :: ValSpan -> ValDiap [valSpanScale] :: ValSpan -> ValScaleType -- | Makes a linear ValSpan with specified boundaries. -- --
-- linSpan minVal maxVal --linSpan :: Double -> Double -> ValSpan -- | Makes an exponential ValSpan with specified boundaries. -- --
-- expSpan minVal maxVal --expSpan :: Double -> Double -> ValSpan -- | Unit span. A special case: -- --
-- uspan = linSpan 0 1 --uspan :: ValSpan -- | Bipolar unit span. A special case: -- --
-- uspan = linSpan (-1) 1 --bspan :: ValSpan -- | An exponential unit span. A special case: -- --
-- uspan = expSpan 0 1 --uspanExp :: ValSpan -- | Allows the user to increase/decrease a value with mouse clicks on a -- corresponding arrow button. Output is an event stream that contains -- values when counter changes. -- --
-- count diapason fineValStep maybeCoarseValStep initValue ---- -- doc: http://www.csounds.com/manual/html/FLcount.html count :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source (Evt D) -- | A variance on the function count, but it produces a signal of -- piecewise constant function. countSig :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source Sig -- | It is a squared area that allows the user to modify two output values -- at the same time. It acts like a joystick. -- --
-- joy valueSpanX valueSpanY (initX, initY) ---- -- doc: http://www.csounds.com/manual/html/FLjoy.html joy :: ValSpan -> ValSpan -> (Double, Double) -> Source (Sig, Sig) -- | A FLTK widget opcode that creates a knob. -- --
-- knob valueSpan initValue ---- -- doc: http://www.csounds.com/manual/html/FLknob.html knob :: String -> ValSpan -> Double -> Source Sig data KnobType ThreeD :: Maybe Int -> KnobType Pie :: KnobType Clock :: KnobType Flat :: KnobType setKnobType :: KnobType -> Gui -> Gui -- | FLroller is a sort of knob, but put transversally. -- --
-- roller valueSpan step initVal ---- -- doc: http://www.csounds.com/manual/html/FLroller.html roller :: String -> ValSpan -> ValStep -> Double -> Source Sig -- | FLslider puts a slider into the corresponding container. -- --
-- slider valueSpan initVal ---- -- doc: http://www.csounds.com/manual/html/FLslider.html slider :: String -> ValSpan -> Double -> Source Sig -- | Constructs a list of linear unit sliders (ranges in [0, 1]). It takes -- a list of init values. sliderBank :: String -> [Double] -> Source [Sig] data SliderType Fill :: SliderType Engraved :: SliderType Nice :: SliderType setSliderType :: SliderType -> Gui -> Gui -- | numeric (originally FLtext in the Csound) allows the user to modify a -- parameter value by directly typing it into a text field. -- --
-- numeric diapason step initValue ---- -- doc: http://www.csounds.com/manual/html/FLtext.html numeric :: String -> ValDiap -> ValStep -> Double -> Source Sig data TextType NormalText :: TextType NoDrag :: TextType NoEdit :: TextType setTextType :: TextType -> Gui -> Gui -- | A FLTK widget that displays text inside of a box. If the text is -- longer than 255 characters the text is split on several parts (Csound -- limitations). -- --
-- box text ---- -- doc: http://www.csounds.com/manual/html/FLbox.html box :: String -> Display -- | The type of the box. Some values are not implemented on the Csound -- level. data BoxType FlatBox :: BoxType UpBox :: BoxType DownBox :: BoxType ThinUpBox :: BoxType ThinDownBox :: BoxType EngravedBox :: BoxType EmbossedBox :: BoxType BorderBox :: BoxType ShadowBox :: BoxType Roundedbox :: BoxType RoundedShadowBox :: BoxType RoundedFlatBox :: BoxType RoundedUpBox :: BoxType RoundedDownBox :: BoxType DiamondUpBox :: BoxType DiamondDownBox :: BoxType OvalBox :: BoxType OvalShadowBox :: BoxType OvalFlatBox :: BoxType setBoxType :: BoxType -> Gui -> Gui -- | A FLTK widget opcode that creates a button. -- --
-- button text ---- -- doc: http://www.csounds.com/manual/html/FLbutton.html button :: String -> Source (Evt Unit) -- | The type of the button. It affects toggle buttons and button banks. -- -- In Csound buttons and toggle buttons are constructed with the same -- function (but with different button types). But in this library they -- are contructed by different functions (button and -- toggle). Normal button is a plain old button, but other -- values specify toggle buttons. So this property doesn't affect the -- buttons (since they could be only normal buttons). data ButtonType NormalButton :: ButtonType LightButton :: ButtonType CheckButton :: ButtonType RoundButton :: ButtonType setButtonType :: ButtonType -> Gui -> Gui -- | A FLTK widget opcode that creates a toggle button. -- --
-- button text ---- -- doc: http://www.csounds.com/manual/html/FLbutton.html toggle :: String -> Bool -> Source (Evt D) -- | A FLTK widget opcode that creates a bank of buttons. Result is (x, y) -- coordinate of the triggered button. -- --
-- butBank xNumOfButtons yNumOfButtons ---- -- doc: http://www.csounds.com/manual/html/FLbutBank.html butBank :: String -> Int -> Int -> (Int, Int) -> Source (Evt (D, D)) -- | A variance on the function toggle, but it produces a signal of -- piecewise constant function. toggleSig :: String -> Bool -> Source Sig -- | A variance on the function butBank, but it produces a signal of -- piecewise constant function. Result is (x, y) coordinate of the -- triggered button. butBankSig :: String -> Int -> Int -> (Int, Int) -> Source (Sig, Sig) -- | A FLTK widget opcode that creates a bank of buttons. -- --
-- butBank xNumOfButtons yNumOfButtons ---- -- doc: http://www.csounds.com/manual/html/FLbutBank.html butBank1 :: String -> Int -> Int -> (Int, Int) -> Source (Evt D) butBankSig1 :: String -> Int -> Int -> (Int, Int) -> Source Sig -- | A radio button. It takes a list of values with labels. radioButton :: Arg a => String -> [(String, a)] -> Int -> Source (Evt a) -- | A matrix of values. matrixButton :: Arg a => String -> Int -> Int -> [a] -> (Int, Int) -> Source (Evt a) -- | Radio button that returns functions. Useful for picking a waveform or -- type of filter. funnyRadio :: Tuple b => String -> [(String, a -> b)] -> Int -> Source (a -> b) -- | Matrix of functional values. funnyMatrix :: Tuple b => String -> Int -> Int -> [a -> b] -> (Int, Int) -> Source (a -> b) -- | FLtext that is sink shows current the value of a valuator in a text -- field. setNumeric :: String -> ValDiap -> ValStep -> Double -> Sink Sig -- | A slider that serves as indicator. It consumes values instead of -- producing. -- --
-- meter valueSpan initValue --meter :: String -> ValSpan -> Double -> Sink Sig setKnob :: String -> ValSpan -> Double -> SinkSource Sig setSlider :: String -> ValSpan -> Double -> SinkSource Sig setToggle :: String -> Bool -> SinkSource (Evt D) setToggleSig :: String -> Bool -> SinkSource Sig -- | Appends a title to a group of widgets. setTitle :: String -> Gui -> SE Gui -- | Keyboard events. data KeyEvt Press :: Key -> KeyEvt Release :: Key -> KeyEvt -- | Keys. data Key CharKey :: Char -> Key F1 :: Key F2 :: Key F3 :: Key F4 :: Key F5 :: Key F6 :: Key F7 :: Key F8 :: Key F9 :: Key F10 :: Key F11 :: Key F12 :: Key Scroll :: Key CapsLook :: Key LeftShift :: Key RightShift :: Key LeftCtrl :: Key RightCtrl :: Key Enter :: Key LeftAlt :: Key RightAlt :: Key LeftWinKey :: Key RightWinKey :: Key Backspace :: Key ArrowUp :: Key ArrowLeft :: Key ArrowRight :: Key ArrowDown :: Key Insert :: Key Home :: Key PgUp :: Key Delete :: Key End :: Key PgDown :: Key NumLock :: Key NumDiv :: Key NumMul :: Key NumSub :: Key NumHome :: Key NumArrowUp :: Key NumPgUp :: Key NumArrowLeft :: Key NumSpace :: Key NumArrowRight :: Key NumEnd :: Key NumArrowDown :: Key NumPgDown :: Key NumIns :: Key NumDel :: Key NumEnter :: Key NumPlus :: Key Num7 :: Key Num8 :: Key Num9 :: Key Num4 :: Key Num5 :: Key Num6 :: Key Num1 :: Key Num2 :: Key Num3 :: Key Num0 :: Key NumDot :: Key -- | The stream of keyboard press/release events. keyIn :: KeyEvt -> Evt Unit -- | Shortcut for press CharKey events. charOn :: Char -> Evt Unit -- | Shortcut for release CharKey events. charOff :: Char -> Evt Unit -- | Creates an event in the output stream when one of the chars is -- pressed. strOn :: String -> Tick -- | Creates an event in the output stream when one of the chars is -- depressed. strOff :: String -> Tick -- | Unipolar linear knob. The value belongs to the interval [0, 1]. The -- argument is for initial value. uknob :: Double -> Source Sig -- | Exponential knob (usefull for exploring frequencies or decibels). -- --
-- xknob (min, max) initVal ---- -- The value belongs to the interval [min, max]. The last argument is for -- initial value. xknob :: Range Double -> Double -> Source Sig -- | Unipolar linear slider. The value belongs to the interval [0, 1]. The -- argument is for initial value. uslider :: Double -> Source Sig -- | Exponential slider (usefull for exploring frequencies or decibels). -- --
-- xknob (min, max) initVal ---- -- The value belongs to the interval [min, max]. The last argument is for -- initial value. xslider :: Range Double -> Double -> Source Sig -- | Unit linear joystick. ujoy :: (Double, Double) -> Source (Sig, Sig) -- | Horizontal radio group. hradio :: [String] -> Int -> Source (Evt D) -- | Vertical radio group. vradio :: [String] -> Int -> Source (Evt D) -- | Horizontal radio group. hradioSig :: [String] -> Int -> Source Sig -- | Vertical radio group. vradioSig :: [String] -> Int -> Source Sig -- | The sample and hold widget. You can pick a value from the list of -- doubles. The original value is a head of the list (the first element). -- The visual grouping is horizontal (notice the prefix h). It's -- common to use it with function selector. hnumbers :: [Double] -> Source Sig -- | The sample and hold widget. You can pick a value from the list of -- doubles. The original value is a head of the list (the first element). -- The visual grouping is vertical (notice the prefix v). It's -- common to use it with function selector. vnumbers :: [Double] -> Source Sig -- | Pair of minimum and maximum values. type Range a = (a, a) -- | Creates a knob that outputs only integers in the given range. It -- produces an event stream of integer values. It can be used with list -- access functions listAt, atTuple, atArg. -- --
-- rangeKnob needInit (min, max) initVal ---- -- The first argument is a boolean. If it's true than the initial value -- is put in the output stream. If its False the initial value is -- skipped. rangeKnob :: Bool -> Range Int -> Int -> Source (Evt D) -- | Creates a slider that outputs only integers in the given range. It -- produces an event stream of integer values. It can be used with list -- access functions listAt, atTuple, atArg. -- --
-- rangeSlider needInit (min, max) initVal ---- -- The first argument is a boolean. If it's true than the initial value -- is put in the output stream. If its False the initial value is -- skipped. rangeSlider :: Bool -> Range Int -> Int -> Source (Evt D) -- | Creates a knob that outputs only integers in the given range. It -- produces a signal of integer values. -- --
-- rangeKnobSig (min, max) initVal --rangeKnobSig :: Range Int -> Int -> Source Sig -- | Creates a slider that outputs only integers in the given range. It -- produces a signal of integer values. -- --
-- rangeSliderSig (min, max) initVal --rangeSliderSig :: Range Int -> Int -> Source Sig -- | 2d range range slider. Outputs a pair of event streams. Each stream -- contains changes in the given direction (Ox or Oy). -- --
-- rangeJoy needsInit rangeX rangeY (initX, initY) ---- -- The first argument is a boolean. If it's true than the initial value -- is put in the output stream. If its False the initial value is -- skipped. rangeJoy :: Bool -> Range Int -> Range Int -> (Int, Int) -> Source (Evt D, Evt D) -- | 2d range range slider. It produces a single event stream. The event -- fires when any signal changes. -- --
-- rangeJoy2 needsInit rangeX rangeY (initX, initY) ---- -- The first argument is a boolean. If it's true than the initial value -- is put in the output stream. If its False the initial value is -- skipped. rangeJoy2 :: Bool -> Range Int -> Range Int -> (Int, Int) -> Source (Evt (D, D)) -- | 2d range range slider. It produces the pair of integer signals rangeJoySig :: Range Int -> Range Int -> (Int, Int) -> Source (Sig, Sig) -- | The matrix of unipolar knobs. -- --
-- knobPad columnNum rowNum names initVals ---- -- It takes in the dimensions of matrix, the names (we can leave it empty -- if names are not important) and list of init values. It returns a -- function that takes in indices and produces the signal in the -- corresponding cell. knobPad :: Int -> Int -> [String] -> [Double] -> Source (Int -> Int -> Sig) -- | The matrix of toggle buttons. -- --
-- togglePad columnNum rowNum names initVals ---- -- It takes in the dimensions of matrix, the names (we can leave it empty -- if names are not important) and list of init values (on/off booleans). -- It returns a function that takes in indices and produces the event -- stream in the corresponding cell. togglePad :: Int -> Int -> [String] -> [Bool] -> Source (Int -> Int -> Evt D) -- | The matrix of buttons. -- --
-- buttonPad columnNum rowNum names ---- -- It takes in the dimensions of matrix, the names (we can leave it empty -- if names are not important). It returns a function that takes in -- indices and produces the event stream in the corresponding cell. buttonPad :: Int -> Int -> [String] -> Source (Int -> Int -> Evt Unit) -- | A generic constructor for matrixes of sound source widgets. It takes -- the constructor of the widget, a default initial value, the dimensions -- of the matrix, the list of names and the list of initial values. It -- produces the function that maps indices to corresponding values. genPad :: (String -> a -> Source b) -> a -> Int -> Int -> [String] -> [a] -> Source (Int -> Int -> b) -- | It's like simple button, but it can be controlled with -- external control. The first argument is for external control. button' :: Tick -> String -> Source Tick -- | It's like simple toggle, but it can be controlled with -- external control. The first argument is for external control. toggle' :: Evt D -> String -> Bool -> Source (Evt D) toggleSig' :: Sig -> String -> Bool -> Source Sig -- | It's like simple knob, but it can be controlled with external -- control. The first argument is for external control. knob' :: Sig -> String -> ValSpan -> Double -> Source Sig -- | It's like simple slider, but it can be controlled with -- external control. The first argument is for external control. slider' :: Sig -> String -> ValSpan -> Double -> Source Sig -- | It's like simple uknob, but it can be controlled with -- external control. The first argument is for external control. uknob' :: Sig -> Double -> Source Sig -- | It's like simple uslider, but it can be controlled with -- external control. The first argument is for external control. uslider' :: Sig -> Double -> Source Sig -- | It's like simple hradio, but it can be controlled with -- external control. The first argument is for external control. hradio' :: Evt D -> [String] -> Int -> Source (Evt D) -- | It's like simple vradio, but it can be controlled with -- external control. The first argument is for external control. vradio' :: Evt D -> [String] -> Int -> Source (Evt D) -- | It's like simple hradioSig, but it can be controlled with -- external control. The first argument is for external control. hradioSig' :: Sig -> [String] -> Int -> Source Sig -- | It's like simple vradioSig, but it can be controlled with -- external control. The first argument is for external control. vradioSig' :: Sig -> [String] -> Int -> Source Sig -- | GUI (Graphical User Interface) elements are handy to change the -- parameters of the sound in real time. It includes sliders, knobs, -- rollers, buttons and other widgets. -- -- A GUI element consists of two parts. They are view (how it looks) and -- logic (what's going on with it). For example a slider can be -- horizontal or vertical or green or yellow or small or big. It's the -- view of the slider. And a slider can produce a continuous signal -- within the given interval. It's a logic of the slider. -- -- Let's talk about the view. The view is divided on two parts: -- --
-- resizeSource (0.75, 0.5) uiSource --resizeSource :: (Double, Double) -> Source a -> Source a -- | Renders the GUI elements on the window. Rectangle is calculated -- automatically (window doesn't listens for keyboard events). panel :: Gui -> SE () -- | Creates a window with the given name, size and content -- --
-- win name (width, height) gui --win :: String -> (Int, Int) -> Gui -> SE () -- | Renders a list of panels. panels :: [Gui] -> SE () -- | Renders the GUI elements on the window. We can specify the window -- title and rectangle of the window. panelBy :: String -> Maybe Rect -> Gui -> SE () -- | Renders the GUI elements on the window. Rectangle is calculated -- automatically (window listens for keyboard events). keyPanel :: Gui -> SE () keyWin :: String -> (Int, Int) -> Gui -> SE () -- | Renders a list of panels. Panels are sensitive to keyboard events. keyPanels :: [Gui] -> SE () -- | Renders the GUI elements on the window. We can specify the window -- title and rectangle of the window. Panesls are sensitive to keyboard -- events. keyPanelBy :: String -> Maybe Rect -> Gui -> SE () setOrient :: Orient -> Gui -> Gui setEmphasis :: Emphasis -> Gui -> Gui setFontType :: FontType -> Gui -> Gui setFontSize :: Int -> Gui -> Gui setTextColor :: Color -> Gui -> Gui setColors :: Color -> Color -> Gui -> Gui setColor2 :: Color -> Gui -> Gui setColor1 :: Color -> Gui -> Gui setMaterial :: Material -> Gui -> Gui setLabel :: String -> Gui -> Gui setBorder :: BorderType -> Gui -> Gui -- | Sets the properties for a GUI element on all levels. forceProps :: [Prop] -> Gui -> Gui -- | The Csound colours. type Color = Colour Double -- | The orientation of the widget (slider, roller). This property is never -- needs to be set in practice. If this property is not set then default -- orientation is calculated from the bounding box of the widget. If the -- width is greater than the height then we need to use a horizontal -- widget otherwise it should be a vertical one. data Orient Hor :: Orient Ver :: Orient data FontType Helvetica :: FontType Courier :: FontType Times :: FontType Symbol :: FontType Screen :: FontType Dingbats :: FontType data Emphasis NoEmphasis :: Emphasis Italic :: Emphasis Bold :: Emphasis BoldItalic :: Emphasis -- | The type of the material of the element. It affects sliders and -- buttons. data Material NoPlastic :: Material Plastic :: Material data BorderType NoBorder :: BorderType DownBoxBorder :: BorderType UpBoxBorder :: BorderType EngravedBorder :: BorderType EmbossedBorder :: BorderType BlackLine :: BorderType ThinDown :: BorderType ThinUp :: BorderType -- | Properties of the widgets. data Prop SetLabel :: String -> Prop SetMaterial :: Material -> Prop SetBoxType :: BoxType -> Prop SetColor1 :: Color -> Prop SetColor2 :: Color -> Prop SetTextColor :: Color -> Prop SetFontSize :: Int -> Prop SetFontType :: FontType -> Prop SetEmphasis :: Emphasis -> Prop SetSliderType :: SliderType -> Prop SetTextType :: TextType -> Prop SetButtonType :: ButtonType -> Prop SetOrient :: Orient -> Prop SetKnobType :: KnobType -> Prop SetLabelType :: LabelType -> Prop -- | A rectangle. data Rect Rect :: Int -> Int -> Int -> Int -> Rect [px] :: Rect -> Int [py] :: Rect -> Int [width] :: Rect -> Int [height] :: Rect -> Int -- | Groups a list of Source-widgets. The visuals are horizontally aligned. hlifts :: ([a] -> b) -> [Source a] -> Source b -- | Groups a list of Source-widgets. The visuals are vertically aligned. vlifts :: ([a] -> b) -> [Source a] -> Source b -- | Groups a list of Source-widgets. The visuals are put on the grid. The -- first argument is numer of elements i each row. gridLifts :: Int -> ([a] -> b) -> [Source a] -> Source b -- | The shortcut for mapSource. lift1 :: (a -> b) -> Source a -> Source b -- | Combines two sound sources. Visuals are aligned horizontally and the -- sound sources a grouped with the given function. hlift2 :: (a -> b -> c) -> Source a -> Source b -> Source c -- | Combines two sound sources. Visuals are aligned vertically and the -- sound sources a grouped with the given function. vlift2 :: (a -> b -> c) -> Source a -> Source b -> Source c -- | The same as hlift2 but for three sound sources. hlift3 :: (a -> b -> c -> d) -> Source a -> Source b -> Source c -> Source d -- | The same as vlift2 but for three sound sources. vlift3 :: (a -> b -> c -> d) -> Source a -> Source b -> Source c -> Source d -- | The same as hlift2 but for four sound sources. hlift4 :: (a -> b -> c -> d -> e) -> Source a -> Source b -> Source c -> Source d -> Source e -- | The same as vlift2 but for four sound sources. vlift4 :: (a -> b -> c -> d -> e) -> Source a -> Source b -> Source c -> Source d -> Source e -- | The same as hlift2 but for five sound sources. hlift5 :: (a1 -> a2 -> a3 -> a4 -> a5 -> b) -> Source a1 -> Source a2 -> Source a3 -> Source a4 -> Source a5 -> Source b -- | The same as vlift2 but for five sound sources. vlift5 :: (a1 -> a2 -> a3 -> a4 -> a5 -> b) -> Source a1 -> Source a2 -> Source a3 -> Source a4 -> Source a5 -> Source b -- | Groups a list of Source-widgets. The visuals are horizontally aligned. -- It uses the list of proportions. hlifts' :: [Double] -> ([a] -> b) -> [Source a] -> Source b -- | Groups a list of Source-widgets. The visuals are vertically aligned. -- It uses the list of proportions. vlifts' :: [Double] -> ([a] -> b) -> [Source a] -> Source b -- | It's just like the hlift2 but two more parameters change -- visual scaling of the widgets. hlift2' :: Double -> Double -> (a -> b -> c) -> Source a -> Source b -> Source c -- | It's just like the vlift2 but two more parameters change -- visual scaling of the widgets. vlift2' :: Double -> Double -> (a -> b -> c) -> Source a -> Source b -> Source c -- | The same as hlift2' but for three sound sources. hlift3' :: Double -> Double -> Double -> (a -> b -> c -> d) -> Source a -> Source b -> Source c -> Source d -- | The same as vlift2' but for three sound sources. vlift3' :: Double -> Double -> Double -> (a -> b -> c -> d) -> Source a -> Source b -> Source c -> Source d -- | The same as hlift2' but for four sound sources. hlift4' :: Double -> Double -> Double -> Double -> (a -> b -> c -> d -> e) -> Source a -> Source b -> Source c -> Source d -> Source e -- | The same as vlift2' but for four sound sources. vlift4' :: Double -> Double -> Double -> Double -> (a -> b -> c -> d -> e) -> Source a -> Source b -> Source c -> Source d -> Source e -- | The same as hlift2' but for five sound sources. hlift5' :: Double -> Double -> Double -> Double -> Double -> (a1 -> a2 -> a3 -> a4 -> a5 -> b) -> Source a1 -> Source a2 -> Source a3 -> Source a4 -> Source a5 -> Source b -- | The same as vlift2' but for five sound sources. vlift5' :: Double -> Double -> Double -> Double -> Double -> (a1 -> a2 -> a3 -> a4 -> a5 -> b) -> Source a1 -> Source a2 -> Source a3 -> Source a4 -> Source a5 -> Source b -- | Monadic bind with horizontal concatenation of visuals. hbind :: Source a -> (a -> Source b) -> Source b -- | Monadic bind with vertical concatenation of visuals. vbind :: Source a -> (a -> Source b) -> Source b -- | Monadic apply with horizontal concatenation of visuals. happly :: (a -> Source b) -> Source a -> Source b -- | Monadic apply with vertical concatenation of visuals. vapply :: (a -> Source b) -> Source a -> Source b -- | Creates a list of sources with mapping a function and stacks them -- horizontally. hmapM :: (a -> Source b) -> [a] -> Source [b] -- | Creates a list of sources with mapping a function and stacks them -- vertically. vmapM :: (a -> Source b) -> [a] -> Source [b] -- | Monadic bind with horizontal concatenation of visuals. It expects -- scaling factors for visuals as first two arguments. hbind' :: Double -> Double -> Source a -> (a -> Source b) -> Source b -- | Monadic bind with vertical concatenation of visuals. It expects -- scaling factors for visuals as first two arguments. vbind' :: Double -> Double -> Source a -> (a -> Source b) -> Source b -- | Monadic apply with horizontal concatenation of visuals. It expects -- scaling factors for visuals as first two arguments. happly' :: Double -> Double -> (a -> Source b) -> Source a -> Source b -- | Monadic apply with vertical concatenation of visuals. It expects -- scaling factors for visuals as first two arguments. vapply' :: Double -> Double -> (a -> Source b) -> Source a -> Source b -- | It's like hmapM but we can supply the list of relative sizes. hmapM' :: [Double] -> (a -> Source b) -> [a] -> Source [b] -- | It's like hvapM but we can supply the list of relative sizes. vmapM' :: [Double] -> (a -> Source b) -> [a] -> Source [b] -- | Creates a list of sources with mapping a function and puts them on the -- grid. The first argument is the number of items in the row. gridMapM :: Int -> (a -> Source b) -> [a] -> Source [b] instance Csound.Typed.Types.SigSpace.SigSpace a => Csound.Typed.Types.SigSpace.SigSpace (Csound.Typed.Gui.Widget.Source a) instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) a => Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Gui.Widget.Source a) instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 Csound.Typed.Types.Prim.Sig2 a => Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Gui.Widget.Source a) instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) a => Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Gui.Widget.Source a) -- | Rendering of Csound files and playing the music in real time. -- -- How are we going to get the sound out of Haskell code? Instruments are -- ready and we have written all the scores for them. Now, it's time to -- use the rendering functions. We can render haskell expressions to -- Csound code. A rendering function takes a value that represents a -- sound (it's a tuple of signals) and produces a string with Csound -- code. It can take a value that represents the flags for the csound -- compiler and global settings (Options). Then we can save this -- string to file and convert it to sound with csound compiler -- --
-- csound -o music.wav music.csd ---- -- Or we can play it in real time with -odac flag. It sends the sound -- directly to soundcard. It's usefull when we are using midi or tweek -- the parameters in real time with sliders or knobs. -- --
-- csound -odac music.csd ---- -- The main function of this module is renderCsdBy. Other function -- are nothing but wrappers that produce the Csound code and make -- something useful with it (saving to file, playing with specific player -- or in real time). module Csound.IO class RenderCsd a renderCsdBy :: RenderCsd a => Options -> a -> IO String csdArity :: RenderCsd a => a -> CsdArity data CsdArity CsdArity :: Int -> Int -> CsdArity [csdArity'inputs] :: CsdArity -> Int [csdArity'outputs] :: CsdArity -> Int -- | Renders Csound file. renderCsd :: RenderCsd a => a -> IO String -- | Render Csound file and save it to the give file. writeCsd :: RenderCsd a => String -> a -> IO () -- | Render Csound file with options and save it to the give file. writeCsdBy :: RenderCsd a => Options -> String -> a -> IO () -- | Render Csound file and save result sound to the wav-file. writeSnd :: RenderCsd a => String -> a -> IO () -- | Render Csound file with options and save result sound to the wav-file. writeSndBy :: RenderCsd a => Options -> String -> a -> IO () -- | Renders Csound file, saves it to the given file, renders with csound -- command and plays it with the given program. -- --
-- playCsd program file csd ---- -- Produces files file.csd (with renderCsd) and -- file.wav (with csound) and then invokes: -- --
-- program "file.wav" --playCsd :: RenderCsd a => (String -> IO ()) -> String -> a -> IO () -- | Works just like playCsd but you can supply csound options. playCsdBy :: RenderCsd a => Options -> (String -> IO ()) -> String -> a -> IO () -- | Renders to tmp.csd and tmp.wav and plays with mplayer. mplayer :: RenderCsd a => a -> IO () -- | Renders to tmp.csd and tmp.wav and plays with mplayer. mplayerBy :: RenderCsd a => Options -> a -> IO () -- | Renders to tmp.csd and tmp.wav and plays with totem player. totem :: RenderCsd a => a -> IO () -- | Renders to tmp.csd and tmp.wav and plays with totem player. totemBy :: RenderCsd a => Options -> a -> IO () -- | Renders csound code to file tmp.csd with flags set to -- -odac, -iadc and -Ma (sound output goes to -- soundcard in real time). dac :: RenderCsd a => a -> IO () -- | dac with options. dacBy :: RenderCsd a => Options -> a -> IO () -- | Output to dac with virtual midi keyboard. vdac :: RenderCsd a => a -> IO () -- | Output to dac with virtual midi keyboard with specified options. vdacBy :: RenderCsd a => Options -> a -> IO () -- | Renders to file tmp.csd and invokes the csound on it. csd :: RenderCsd a => a -> IO () -- | Renders to file tmp.csd and invokes the csound on it. csdBy :: RenderCsd a => Options -> a -> IO () -- | Saves the user options in the current directory. -- -- If it's saved in the User's home directory it becomes global options. saveUserOptions :: Options -> IO () -- | Runs the csound files with cabbage engine. It invokes the Cabbage -- command line utility and setts all default cabbage flags. runCabbage :: RenderCsd a => a -> IO () -- | Runs the csound files with cabbage engine with user defined options. -- It invokes the Cabbage command line utility and setts all default -- cabbage flags. runCabbageBy :: RenderCsd a => Options -> a -> IO () -- | Alias to process inputs of single input audio-card. onCard1 :: (Sig -> a) -> Sig -> a -- | Alias to process inputs of stereo input audio-card. onCard2 :: (Sig2 -> a) -> Sig2 -> a -- | Alias to process inputs of audio-card with 4 inputs. onCard4 :: (Sig4 -> a) -> Sig4 -> a -- | Alias to process inputs of audio-card with 6 inputs. onCard6 :: (Sig6 -> a) -> Sig6 -> a -- | Alias to process inputs of audio-card with 8 inputs. onCard8 :: (Sig8 -> a) -> Sig8 -> a readMacrosString :: String -> String -> Str readMacrosDouble :: String -> Double -> D readMacrosInt :: String -> Int -> D instance GHC.Classes.Eq Csound.IO.CsdArity instance GHC.Show.Show Csound.IO.CsdArity instance Csound.IO.RenderCsd (Csound.Typed.GlobalState.SE.SE ()) instance Csound.Typed.Types.Tuple.Sigs a => Csound.IO.RenderCsd a instance Csound.Typed.Types.Tuple.Sigs a => Csound.IO.RenderCsd (Csound.Typed.GlobalState.SE.SE a) instance Csound.Typed.Types.Tuple.Sigs a => Csound.IO.RenderCsd (Csound.Typed.Gui.Widget.Source a) instance Csound.Typed.Types.Tuple.Sigs a => Csound.IO.RenderCsd (Csound.Typed.Gui.Widget.Source (Csound.Typed.GlobalState.SE.SE a)) instance (Csound.Typed.Types.Tuple.Sigs a, Csound.Typed.Types.Tuple.Sigs b) => Csound.IO.RenderCsd (a -> b) instance (Csound.Typed.Types.Tuple.Sigs a, Csound.Typed.Types.Tuple.Sigs b) => Csound.IO.RenderCsd (a -> Csound.Typed.GlobalState.SE.SE b) instance (Csound.Typed.Types.Tuple.Sigs a, Csound.Typed.Types.Tuple.Sigs b) => Csound.IO.RenderCsd (a -> Csound.Typed.Gui.Widget.Source b) instance (Csound.Typed.Types.Tuple.Sigs a, Csound.Typed.Types.Tuple.Sigs b) => Csound.IO.RenderCsd (a -> Csound.Typed.Gui.Widget.Source (Csound.Typed.GlobalState.SE.SE b)) instance Csound.Typed.Types.Tuple.Sigs a => Csound.IO.RenderCsd (a -> Csound.Typed.Gui.Widget.Source (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2)) instance Csound.IO.RenderCsd (Csound.Typed.Gui.Widget.Source ()) instance Csound.IO.RenderCsd (Csound.Typed.Gui.Widget.Source (Csound.Typed.GlobalState.SE.SE ())) -- | The module contains the modules that are responsible for converting -- events to signals module Csound.Control -- | Sound file playback module Csound.Air.Wav -- | Reads stereo signal from the sound-file (wav or mp3 or aiff). readSnd :: String -> (Sig, Sig) -- | Reads stereo signal from the sound-file (wav or mp3 or aiff) and loops -- it with the file length. loopSnd :: String -> (Sig, Sig) -- | Reads stereo signal from the sound-file (wav or mp3 or aiff) and loops -- it with the given period (in seconds). loopSndBy :: Sig -> String -> (Sig, Sig) -- | Reads the wav file with the given speed (if speed is 1 it's a norma -- playback). We can use negative speed to read file in reverse. readWav :: Sig -> String -> (Sig, Sig) -- | Reads th wav file and loops over it. loopWav :: Sig -> String -> (Sig, Sig) -- | Reads a segment from wav file. readSegWav :: D -> D -> Sig -> String -> (Sig, Sig) -- | Reads th wav file and loops over it. Scales the tempo with first -- argument. tempoLoopWav :: Sig -> String -> (Sig, Sig) -- | Reads the wav file with the given speed (if speed is 1 it's a norma -- playback). We can use negative speed to read file in reverse. Scales -- the tempo with first argument. tempoReadWav :: Sig -> String -> (Sig, Sig) -- | The mono variant of the function readSnd. readSnd1 :: String -> Sig -- | The mono variant of the function loopSnd. loopSnd1 :: String -> Sig -- | The mono variant of the function loopSndBy. loopSndBy1 :: Sig -> String -> Sig -- | The mono variant of the function readWav. readWav1 :: Sig -> String -> Sig -- | The mono variant of the function loopWav. loopWav1 :: Sig -> String -> Sig -- | Reads a segment from wav file. readSegWav1 :: D -> D -> Sig -> String -> Sig -- | Reads th mono wav file and loops over it. Scales the tempo with first -- argument. tempoLoopWav1 :: Sig -> String -> Sig -- | Reads the mono wav file with the given speed (if speed is 1 it's a -- norma playback). We can use negative speed to read file in reverse. -- Scales the tempo with first argument. tempoReadWav1 :: Sig -> String -> Sig data LoopMode Once :: LoopMode Loop :: LoopMode Bounce :: LoopMode -- | Loads the sample in the table. The sample should be short. The size of -- the table is limited. It's up to 3 minutes for 44100 sample rate (sr), -- 2.9 minutes for 48000 sr, 1.4 minutes for 96000 sr. ramSnd :: LoopMode -> Sig -> String -> Sig2 -- | Loads the sample in the table. The sample should be short. The size of -- the table is limited. It's up to 6 minutes for 44100 sample rate (sr), -- 5.9 minutes for 48000 sr, 2.8 minutes for 96000 sr. ramSnd1 :: LoopMode -> Sig -> String -> Sig -- | Mincer. We can playback a table and scale by tempo and pitch. -- --
-- mincer fidelity table pointer pitch ---- -- fidelity is the parameter that specifies the size of the window (for -- FFT transform). The size equals to formula (fidelity + 11) ^ 2. If you -- don't know what to choose choose 0 for pitched sounds and -2 for -- drums. The table contains the sample to playback. The pointer loops -- over the table. The pitch specifies a scaling factor for pitch. So we -- can raise tone an octave up by setting the pitch to 2. ramTab :: Fidelity -> Tab -> Sig -> Sig -> Sig -- | Phase-locked vocoder processing. -- -- mincer implements phase-locked vocoder processing using function -- tables containing sampled-sound sources, with GEN01, and mincer will -- accept deferred allocation tables. -- --
-- asig mincer atimpt, kamp, kpitch, ktab, klock[,ifftsize,idecim] -- ---- -- csound doc: http://csound.com/docs/manual/mincer.html mincer :: Sig -> Sig -> Sig -> Tab -> Sig -> Sig -- | Phase-locked vocoder processing with onset detection/processing, -- 'tempo-scaling'. -- -- temposcal implements phase-locked vocoder processing using function -- tables containing sampled-sound sources, with GEN01, and temposcal -- will accept deferred allocation tables. -- --
-- asig temposcal ktimescal, kamp, kpitch, ktab, klock [,ifftsize, idecim, ithresh] -- ---- -- csound doc: http://csound.com/docs/manual/temposcal.html temposcal :: Sig -> Sig -> Sig -> Tab -> Sig -> Sig -- | Looping phasor. It creates a looping pointer to the file. It's used in -- the function ram. -- -- Ther arguments are: file name, start and end of the looping segment -- (in seconds), and the playback speed. data Phsr Phsr :: String -> Sig -> Sig -> Sig -> Phsr [phsrFile] :: Phsr -> String [phsrStart] :: Phsr -> Sig [phsrEnd] :: Phsr -> Sig [phsrSpeed] :: Phsr -> Sig -- | Creates a pointer signal for reading audio from the table in loops. -- --
-- lphase length start end speed ---- -- Arguments are: -- --
-- ram fidelity phasor pitch ---- -- fidelity corresponds to the size of the FFT-window. The function -- performs the FFT transform and it has to know the size. It's not the -- value for the size it's an integer value that proportional to the -- size. The higher the value the higher the size the lower the value the -- lower the size. The default value is 0. Zero is best for most of the -- cases. For drums we can lower it to (-2). -- -- The phasor is a quadruple of values -- --
-- (Phsr fileName startTime endTime playbackSpeed) ---- -- we can read the file from startTime to endTime (in seconds) and we can -- set the speed for playback. If speed is negative file is played in -- reverse. The playback is looped. So to scale the tempo or play in -- reverse we can change the playbackSpeed. -- -- The last argument is pitch factor. We can rise by octave with factor -- 2. It's good place to use the function semitone. It produces factors -- for a number in semitones. -- -- Note that all parameters (except window size) are signals. It makes -- this function very flexible. We can change the speed of playback and -- start and end of the reading segment as we wish. -- --
-- ram 0 (Phsr "file.wav" 0 1 1.2) 1 ---- -- PS: here is the formula for window size: 2 ** (fidelity + 11) ram :: Fidelity -> Phsr -> Sig -> Sig2 ram1 :: Fidelity -> Phsr -> Sig -> Sig -- | Fidelity corresponds to the size of the FFT-window that is used by -- functions of RAM-family. The function performs the FFT transform and -- it has to know the size. It's not the value for the size it's an -- integer value that proportional to the size. The higher the value the -- higher the size the lower the value the lower the size. The default -- value is 0. Zero is best for most of the cases. For drums we can lower -- it to (-2). -- -- PS: here is the formula for window size: 2 ** (fidelity + 11). So the -- fidelity is actually the degree for power of two. The FFT-algorithm -- requires the window size to be a power of two. -- -- The lower fidelity is the less power is consumed by the function. type Fidelity = D -- | Scaling factor for tempo. The 1 is inherent tempo. type TempoSig = Sig -- | Scaling factor for pitch. The 1 is inherent pitch. type PitchSig = Sig -- | Reads file once and scales it by tempo and pitch. readRam :: Fidelity -> TempoSig -> PitchSig -> String -> Sig2 -- | Loop over file and scales it by tempo and pitch (it's based on mincer -- opcode). loopRam :: Fidelity -> TempoSig -> PitchSig -> String -> Sig2 -- | Reads a segment from file once and scales it by tempo and pitch. -- Segment is defined in seconds. readSeg :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig2 -- | Loops over a segment of file and scales it by tempo and pitch. Segment -- is defined in seconds. loopSeg :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig2 -- | Reads a relative segment from file once and scales it by tempo and -- pitch. Segment is defined in seconds. The end ponits for the segment -- are relative to the total length of the file. readRel :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig2 -- | Loops over a relative segment of file and scales it by tempo and -- pitch. Segment is defined in seconds. The end ponits for the segment -- are relative to the total length of the file. loopRel :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig2 -- | The mono version of readRam. readRam1 :: Fidelity -> TempoSig -> PitchSig -> String -> Sig -- | The mono version of loopRam. loopRam1 :: Fidelity -> TempoSig -> PitchSig -> String -> Sig -- | The mono version of readSeg. readSeg1 :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig -- | The mono version of loopSeg. loopSeg1 :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig -- | The mono version of readRel. readRel1 :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig -- | The mono version of loopRel. loopRel1 :: Fidelity -> (Sig, Sig) -> TempoSig -> PitchSig -> String -> Sig -- | ScaleWav function with fidelity set for drum-loops. scaleDrum :: TempoSig -> PitchSig -> String -> Sig2 -- | ScaleWav function with fidelity set for hormonical-loops. scaleHarm :: TempoSig -> PitchSig -> String -> Sig2 -- | ScaleWav1 function with fidelity set for drum-loops. scaleDrum1 :: TempoSig -> PitchSig -> String -> Sig -- | ScaleWav1 function with fidelity set for hormonical-loops. scaleHarm1 :: TempoSig -> PitchSig -> String -> Sig -- | Scaling mono audio files (accepts both midi and wav). It's based on -- temposcal Csound opcode. scaleWav1 :: Fidelity -> TempoSig -> PitchSig -> String -> Sig -- | Scaling stereo audio files (accepts both midi and wav). It's based on -- temposcal Csound opcode. scaleWav :: Fidelity -> TempoSig -> PitchSig -> String -> Sig2 -- | The sample format. data SampleFormat -- | 32-bit floating point samples without header NoHeaderFloat32 :: SampleFormat -- | 16-bit integers without header NoHeaderInt16 :: SampleFormat -- | 16-bit integers with a header. The header type depends on the render -- (-o) format HeaderInt16 :: SampleFormat -- | u-law samples with a header UlawSamples :: SampleFormat -- | 16-bit integers with a header Int16 :: SampleFormat -- | 32-bit integers with a header Int32 :: SampleFormat -- | 32-bit floats with a header Float32 :: SampleFormat -- | 8-bit unsigned integers with a header Uint8 :: SampleFormat -- | 24-bit integers with a header Int24 :: SampleFormat -- | 64-bit floats with a header Float64 :: SampleFormat -- | Writes a sound signal to the file with the given format. It supports -- only four formats: Wav, Aiff, Raw and Ircam. writeSigs :: FormatType -> SampleFormat -> String -> [Sig] -> SE () -- | Writes wav files. writeWav :: String -> (Sig, Sig) -> SE () -- | Writes aiff files. writeAiff :: String -> (Sig, Sig) -> SE () -- | Writes mono signals to wav files. writeWav1 :: String -> Sig -> SE () -- | Writes mono signals to aiff files. writeAiff1 :: String -> Sig -> SE () -- | Dumps signals to file and sends the audio through. Useful to monitor -- the signals. dumpWav :: String -> (Sig, Sig) -> SE (Sig, Sig) -- | Dumps mono signal to file and sends the audio through. Useful to -- monitor the signals. dumpWav1 :: String -> Sig -> SE Sig -- | Length in seconds of the sound file. lengthSnd :: String -> D -- | Produces repeating segments with the given time in seconds. segments :: Sig -> Evt (Sco Unit) -- | Takes only given amount (in seconds) from the signal (the rest is -- silence). takeSnd :: Sigs a => Sig -> a -> a -- | Delays signals by the given amount (in seconds). delaySnd :: Sigs a => Sig -> a -> a -- | Plays the first signal for some time (in seconds) and then switches to -- the next one. -- --
-- afterSnd dur sig1 sig2 --afterSnd :: (Num b, Sigs b) => Sig -> b -> b -> b -- | Creates a sequence of signals. Each segment lasts for fixed amount of -- time given in the first argument. lineSnd :: (Num a, Sigs a) => Sig -> [a] -> a -- | Creates a sequence of signals and loops over the sequence. Each -- segment lasts for fixed amount of time given in the first argument. loopLineSnd :: (Num a, Sigs a) => Sig -> [a] -> a -- | Delays a signal by the first argument and takes only second argument -- amount of signal (everything is measured in seconds). segmentSnd :: Sigs a => Sig -> Sig -> a -> a -- | Repeats the signal with the given period. repeatSnd :: Sigs a => Sig -> a -> a -- | Converts stereosignal to mono with function mean. toMono :: (Sig, Sig) -> Sig instance GHC.Enum.Enum Csound.Air.Wav.LoopMode instance GHC.Classes.Eq Csound.Air.Wav.LoopMode instance GHC.Show.Show Csound.Air.Wav.LoopMode instance GHC.Enum.Enum Csound.Air.Wav.SampleFormat instance GHC.Classes.Ord Csound.Air.Wav.SampleFormat instance GHC.Classes.Eq Csound.Air.Wav.SampleFormat module Csound.Air.Seg -- | A segment of the signal. The signal segment is a limited span of -- signal in time. The time can be measured in seconds or in events! The -- time span which is measured in events is the first occurence of the -- event in the event stream. -- -- There are handy functions for scheduling the signal segments. we can -- delay the segment or loop over it or limit it with tme interval or -- play a sequence of segments. The main feature of the segments is the -- ability to schedule the signals with event streams (like button clicks -- or midi-events). data Seg a -- | Converts signals to segments. The segment is not limited in length. toSeg :: a -> Seg a -- | Converts segments to signals. runSeg :: Sigs a => Seg a -> a -- | Limits the length of the segment with constant length in seconds. constLim :: Sig -> Seg a -> Seg a -- | Delays a segment by a given time interval in seconds. constDel :: Num a => Sig -> Seg a -> Seg a -- | A pause. Plays nothing for the given time interval in seconds. constRest :: Num a => Sig -> Seg a -- | Limits a signal with an event stream and retriggers it after stop. limSnd :: Sigs a => Tick -> a -> a instance GHC.Base.Functor Csound.Air.Seg.Seg instance Csound.Typed.Types.SigSpace.SigSpace a => Csound.Typed.Types.SigSpace.SigSpace (Csound.Air.Seg.Seg a) instance Csound.Typed.Types.Tuple.Sigs a => Temporal.Class.Melody (Csound.Air.Seg.Seg a) instance Csound.Typed.Types.Tuple.Sigs a => Temporal.Class.Harmony (Csound.Air.Seg.Seg a) instance Csound.Typed.Types.Tuple.Sigs a => Temporal.Class.Compose (Csound.Air.Seg.Seg a) instance Csound.Typed.Types.Tuple.Sigs a => Temporal.Class.Delay (Csound.Air.Seg.Seg a) instance Csound.Typed.Types.Tuple.Sigs a => Temporal.Class.Loop (Csound.Air.Seg.Seg a) instance (Csound.Typed.Types.Tuple.Sigs a, GHC.Num.Num a) => Temporal.Class.Rest (Csound.Air.Seg.Seg a) instance Csound.Typed.Types.Tuple.Sigs a => Temporal.Class.Limit (Csound.Air.Seg.Seg a) module Csound.Air.Sampler -- | Triggers the signal with the first stream and turns it off with the -- second stream. evtTrig :: Sigs a => Maybe a -> Tick -> Tick -> a -> a -- | Consider note limiting? or performance degrades every note is held to -- infinity and it continues to produce zeroes. No it's not every -- sequence note triggers it but it's best to limit them anyway evtTap :: Sigs a => Sig -> Tick -> a -> a -- | Plays a list signals. It triggers the signal with event stream and -- silences all the rest in the list so that only one signal is playing. -- We can create simple costum monosynthes with this function. The last -- event stream stops all signals. evtGroup :: Sigs a => Maybe a -> [(Tick, a)] -> Tick -> a -- | Triggers one signal after another with an event stream. evtCycle :: Sigs a => Maybe a -> Tick -> Tick -> [a] -> a syncEvtTrig :: Sigs a => Sig -> Maybe a -> Tick -> Tick -> a -> a syncEvtTap :: Sigs a => Sig -> Sig -> Tick -> a -> a syncEvtGroup :: Sigs a => Sig -> Maybe a -> [(Tick, a)] -> Tick -> a -- | Triggers one signal after another with an event stream. syncEvtCycle :: Sigs a => Sig -> Maybe a -> Tick -> Tick -> [a] -> a -- | Triggers a signal when one of the chars from the first string is -- pressed. Stops signal from playing when one of the chars from the -- second string is pressed. charTrig :: Sigs a => Maybe a -> String -> String -> a -> a charTap :: Sigs a => Sig -> String -> a -> a -- | Plays a signal while a key is pressed. charPush :: Sigs a => Maybe a -> Char -> a -> a -- | Toggles the signal when key is pressed. charToggle :: Sigs a => Maybe a -> Char -> a -> a -- | Plays a list of signals when corresponding key is pressed. Turns off -- all other signals in the group. The last string is for stopping the -- group from playing. charGroup :: Sigs a => Maybe a -> [(Char, a)] -> String -> a -- | Plays signals one after another when key is pressed. Stops the group -- from playing when the char from the last argument is pressed. charCycle :: Sigs a => Maybe a -> Char -> String -> [a] -> a -- | Triggers a signal when one of the chars from the first string is -- pressed. Stops signal from playing when one of the chars from the -- second string is pressed. Synchronizes the signal with bpm (first -- argument). syncCharTrig :: Sigs a => Sig -> Maybe a -> String -> String -> a -> a syncCharTap :: Sigs a => Sig -> Sig -> String -> a -> a -- | Plays a signal while a key is pressed. Synchronized by BPM (first -- argument). syncCharPush :: Sigs a => Sig -> Maybe a -> Char -> a -> a -- | Toggles the signal when key is pressed. Synchronizes by BPM (first -- argument). syncCharToggle :: Sigs a => Sig -> Maybe a -> Char -> a -> a -- | Plays a list of signals when corresponding key is pressed. Turns off -- all other signals in the group. The last string is for stopping the -- group from playing. Events are syncronized by BPM (first argument). syncCharGroup :: Sigs a => Sig -> Maybe a -> [(Char, a)] -> String -> a -- | Plays signals one after another when key is pressed. Stops the group -- from playing when the char from the last argument is pressed. Events -- are syncronised with BPM (first argument). syncCharCycle :: Sigs a => Sig -> Maybe a -> Char -> String -> [a] -> a syncEvtToggle :: Sigs a => Sig -> Maybe a -> Tick -> a -> a -- | Plays a signal when the key is pressed. Retriggers the signal when the -- key is pressed again. The key is an integer midi code. The C1 is 60 -- and the A1 is 69. midiTrig :: (SigSpace a, Sigs a) => MidiChn -> Int -> a -> SE a -- | Plays a signal when the key is pressed. Retriggers the signal when the -- key is pressed again. Turns off the signal after specified duration (n -- seconds). The key is an integer midi code. The C1 is 60 and the A1 is -- 69. midiTap :: (SigSpace a, Sigs a) => MidiChn -> Sig -> Int -> a -> SE a -- | Plyas a signal while the key is pressed. The key is an integer midi -- code. The C1 is 60 and the A1 is 69. midiPush :: (SigSpace a, Sigs a) => MidiChn -> Int -> a -> SE a -- | Plays and stops a signal in the toggle mode. The key is an integer -- midi code. The C1 is 60 and the A1 is 69. midiToggle :: (SigSpace a, Sigs a) => MidiChn -> Int -> a -> SE a -- | Plays a set of signals on the list of keys. When certain key is -- pressed the corresponding signal starts to play and all the rest are -- stopped. -- --
-- headPan (azimuth, elevation) asig ---- -- azimuth and elevation are measured in ratios (0, 1), headPan :: (Sig, Sig) -> Sig -> Sig2 -- | HeadPan with optional arguments. headPan' :: HeadPanSpec -> (Sig, Sig) -> Sig -> Sig2 -- | Static head response based spacialization. It works when you listen in -- headphones. It works only with sample rate of 44100, 48000 or 96000. -- It's more efficient than headPan. -- --
-- staticHeadPan (azimuth, elevation) asig ---- -- azimuth and elevation are measured in ratios (0, 1), staticHeadPan :: (D, D) -> Sig -> Sig2 -- | The same as headPan but for stereo signals. headPan2 :: (Sig, Sig) -> Sig2 -> Sig2 -- | The same as headPan' but for stereo signals. headPan2' :: HeadPanSpec -> (Sig, Sig) -> Sig2 -> Sig2 -- | The same as staticHeadPan but for stereo signals. staticHeadPan2 :: (D, D) -> Sig2 -> Sig2 -- | Net of sounds evenly distributed oround the head. First argument is a -- pair of numbers (column, rows) in the matrix. The second argument is a -- matrix written in a single list. The rows are for elevation and the -- columns are for azimuth. -- -- A ghci session example: -- --
-- let f t x = mul 0.4 $ sched (\_ -> return $ fades 0.07 0.1 * tri x) $ withDur 0.2 $ metro t -- dac $ headPanNet (3, 2) [f 1 220, f 0.75 330, f 0.5 440, f 0.2 660, delaySnd 0.75 $ f 2 (220 * 5/4),delaySnd 0.4 $ f 1 (220 * 9/8)] --headPanNet :: (Int, Int) -> [Sig] -> Sig2 -- | The same as headPanNet but for stereo signals. headPanNet2 :: (Int, Int) -> [Sig2] -> Sig2 -- | The Csound contains a set of functions for granular synthesis. -- Unfortunately they are very hard to use due to large number of -- arguments. This module attempts to set most of the arguments with -- sensible defaults. So that a novice could start to use it. The -- defaults are implemented with the help of the class Default. -- It's a standard way to implement defaults in the Haskell. The class -- Defaults defines a single constnat called def. With -- def we can get the default value for the given type. -- -- Several csound opcodes are reimplemented so that first argument -- contains secondary parameters. The type for parameters always has the -- instance for the class Default. The original csound opcodes -- are defined in the end of the module with prefix csd. -- -- Also many granular synth opcodes expect the sound file as input. There -- are predefined versions of the opcodes that take in the file names -- instead of tables with sampled sound. They have suffix Snd -- for stereo and Snd1 for mono files. -- -- For example, that's how we can use the granule opcode: -- --
-- dac $ granuleSnd1 spec [1, 2, 3] grainSize "fox.wav" ---- -- No need to set all 22 parameters. Look at the official tutorial (on -- github) for more examples. -- -- The five functions are reimplemented in this way: sndwarp, -- syncgrain, partikkel, granule, -- fof2. -- -- The most often used arguments are: -- --
-- grainy1 speed grainrate grainsize kfreqFactor file ---- --
-- grainy1 speed grainrate grainsize kfreqFactor file ---- --
-- ptrGrainy grainrate grainsize kfreqFactor tab apnter ---- --
-- ptrGrainy grainrate grainsize kfreqFactor tab apnter ---- --
-- ptrGrainy grainrate grainsize kfreqFactor tab apnter ---- --
-- sndwarp spec resample speed ftab ---- --
-- sndwarp spec resample ftab ptr ---- --
-- syncgrain spec graidDuration timeScale PitchSig ftab ---- --
-- granule spec chord grainSize ftab ---- --
-- partikkel spec grainrate grainsize kpitch ifiltabs apnters ---- --
-- grainRate = 25 -- grainSize = 2.5 --fofDelay :: MaxDelayTime -> DelayTime -> Feedback -> Balance -> Fof2Spec -> GrainRate -> GrainSize -> Sig -> SE Sig -- | Granular effect for grainy. grainyFx :: GrainRate -> GrainSize -> PitchSig -> Sig -> SE Sig -- | Granular effect for rndGrainy. rndGrainyFx :: RndGrainySpec -> GrainRate -> GrainSize -> PitchSig -> Sig -> SE Sig -- | Granular effect for sndwarp. sndwarpFx :: SndwarpSpec -> PitchSig -> Sig -> SE Sig -- | Granular effect for syncgrain. syncgrainFx :: SyncgrainSpec -> GrainSize -> TempoSig -> PitchSig -> Sig -> SE Sig -- | Granular effect for rndSyncgrain. rndSyncgrainFx :: RndSyncgrainSpec -> SyncgrainSpec -> GrainSize -> TempoSig -> PitchSig -> Sig -> SE Sig -- | Granular effect for partikkel. partikkelFx :: PartikkelSpec -> GrainRate -> GrainSize -> PitchSig -> Sig -> SE Sig -- | Granular effect for fof2. fofFx :: Fof2Spec -> GrainRate -> GrainSize -> Sig -> SE Sig -- | Reads a mono sound sample from a table and applies time-stretching -- and/or pitch modification. -- -- sndwarp reads sound samples from a table and applies time-stretching -- and/or pitch modification. Time and frequency modification are -- independent from one another. For example, a sound can be stretched in -- time while raising the pitch! -- --
-- ares [, ac] sndwarp xamp, xtimewarp, xresample, ifn1, ibeg, iwsize, \ -- irandw, ioverlap, ifn2, itimemode ---- -- csound doc: http://www.csounds.com/manual/html/sndwarp.html csdSndwarp :: Sig -> Sig -> Sig -> Tab -> D -> D -> D -> D -> Tab -> D -> Sig -- | Reads a stereo sound sample from a table and applies time-stretching -- and/or pitch modification. -- -- sndwarpst reads stereo sound samples from a table and applies -- time-stretching and/or pitch modification. Time and frequency -- modification are independent from one another. For example, a sound -- can be stretched in time while raising the pitch! -- --
-- ar1, ar2 [,ac1] [, ac2] sndwarpst xamp, xtimewarp, xresample, ifn1, \ -- ibeg, iwsize, irandw, ioverlap, ifn2, itimemode ---- -- csound doc: http://www.csounds.com/manual/html/sndwarpst.html csdSndwarpst :: Sig -> Sig -> Sig -> Tab -> D -> D -> D -> D -> Tab -> D -> Sig2 -- | Synchronous granular synthesis. -- -- syncgrain implements synchronous granular synthesis. The source sound -- for the grains is obtained by reading a function table containing the -- samples of the source waveform. For sampled-sound sources, GEN01 is -- used. syncgrain will accept deferred allocation tables. -- --
-- asig syncgrain kamp, kfreq, kpitch, kgrsize, kprate, ifun1, \ -- ifun2, iolaps ---- -- csound doc: http://www.csounds.com/manual/html/syncgrain.html csdSyncgrain :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> D -> Sig -- | A more complex granular synthesis texture generator. -- -- The granule unit generator is more complex than grain, but does add -- new possibilities. -- --
-- ares granule xamp, ivoice, iratio, imode, ithd, ifn, ipshift, igskip, \ -- igskip_os, ilength, kgap, igap_os, kgsize, igsize_os, iatt, idec \ -- [, iseed] [, ipitch1] [, ipitch2] [, ipitch3] [, ipitch4] [, ifnenv] ---- -- csound doc: http://www.csounds.com/manual/html/granule.html csdGranule :: Sig -> D -> D -> D -> D -> Tab -> D -> D -> D -> D -> Sig -> D -> Sig -> D -> D -> D -> Sig -- | Granular synthesizer with "per grain" control over many of its -- parameters. Has a sync input to sychronize its internal grain -- scheduler clock to an external clock source. -- -- partikkel was conceived after reading Curtis Roads' book -- Microsound, and the goal was to create an opcode that was -- capable of all time-domain varieties of granular synthesis described -- in this book. The idea being that most of the techniques only differ -- in parameter values, and by having a single opcode that can do all -- varieties of granular synthesis makes it possible to interpolate -- between techniques. Granular synthesis is sometimes dubbed particle -- synthesis, and it was thought apt to name the opcode partikkel to -- distinguish it from other granular opcodes. -- --
-- a1 [, a2, a3, a4, a5, a6, a7, a8] partikkel agrainfreq, \ -- kdistribution, idisttab, async, kenv2amt, ienv2tab, ienv_attack, \ -- ienv_decay, ksustain_amount, ka_d_ratio, kduration, kamp, igainmasks, \ -- kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, \ -- ifmamptab, kfmenv, icosine, ktraincps, knumpartials, kchroma, \ -- ichannelmasks, krandommask, kwaveform1, kwaveform2, kwaveform3, \ -- kwaveform4, iwaveamptab, asamplepos1, asamplepos2, asamplepos3, \ -- asamplepos4, kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains \ -- [, iopcode_id] ---- -- csound doc: http://www.csounds.com/manual/html/partikkel.html csdPartikkel :: Tuple a => Sig -> Sig -> Tab -> Sig -> Sig -> Tab -> Tab -> Tab -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -> Sig -> Tab -> Tab -> Sig -> Tab -> Tab -> Tab -> Sig -> Sig -> Sig -> Tab -> Sig -> Tab -> Tab -> Tab -> Tab -> Tab -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> a instance Data.Default.Class.Default Csound.Air.Granular.Fof2Spec instance Data.Default.Class.Default Csound.Air.Granular.SndwarpSpec instance Data.Default.Class.Default Csound.Air.Granular.RndSyncgrainSpec instance Data.Default.Class.Default Csound.Air.Granular.SyncgrainSpec instance Data.Default.Class.Default Csound.Air.Granular.GranuleSpec instance Data.Default.Class.Default Csound.Air.Granular.GranuleMode instance Data.Default.Class.Default Csound.Air.Granular.RndGrainySpec instance Data.Default.Class.Default Csound.Air.Granular.PartikkelSpec -- | Wonderful echoes from morpheus. Granular synthesis for morphing -- between waveforms. It's a simplification of partikkel opcode for the -- case of morphing. module Csound.Air.Granular.Morpheus type WaveAmp = Sig type WaveKey = Sig type MorphWave = (Tab, WaveAmp, WaveKey, Pointer) -- | Specification of morphing synth. It has the default instance and the -- values in its records has default instances too data MorphSpec MorphSpec :: GrainDensity -> GrainEnv -> MorphSpec [morphGrainDensity] :: MorphSpec -> GrainDensity [morphGrainEnv] :: MorphSpec -> GrainEnv -- | Density of the grain stream. -- --
-- morpheus spec waves frequencyScale ---- --
-- morpheusOsc spec (baseFrequency, table) cps ---- -- baseFrequency is the frequency of the sample contained in the -- table. With oscillator we can read the table on different frequencies. morpheusOsc :: MorphSpec -> (D, Tab) -> Sig -> SE Sig2 -- | Morpheus oscillator. We control the four tables with pair of control -- signals (see the function pairToSquare). -- --
-- morpheusOsc2 spec baseFrequency waves (x, y) cps = ... --morpheusOsc2 :: MorphSpec -> D -> [(Sig, Tab)] -> (Sig, Sig) -> Sig -> SE Sig2 instance Data.Default.Class.Default Csound.Air.Granular.Morpheus.MorphSpec instance Data.Default.Class.Default Csound.Air.Granular.Morpheus.GrainEnv instance Data.Default.Class.Default Csound.Air.Granular.Morpheus.GrainDensity -- | Envelopes module Csound.Air.Envelope -- | Linear adsr envelope generator with release -- --
-- leg attack decay sustain release --leg :: D -> D -> D -> D -> Sig -- | Exponential adsr envelope generator with release -- --
-- xeg attack decay sustain release --xeg :: D -> D -> D -> D -> Sig -- | Gated, Re-triggerable ADSR modeled after the Doepfer A-140 opcode -- adsr140, a, aakkkk -- -- inputs: agate, aretrig, kattack, kdecay, ksustain, krelease adsr140 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Triggers the table based envelope when the trigger signal equals to 1 -- and plays for dur seconds: -- --
-- trigTab table dur trigger --trigTab :: Tab -> Sig -> Sig -> Sig -- | Triggers the table based envelope when the something happens on the -- event stream and plays for dur seconds: -- --
-- trigTabEvt table dur trigger --trigTabEvt :: Tab -> Sig -> Evt a -> Sig -- | Makes time intervals relative to the note's duration. So that: -- --
-- onIdur [a, t1, b, t2, c] ---- -- becomes: -- --
-- [a, t1 * idur, b, t2 * idur, c] --onIdur :: [D] -> [D] -- | The opcode linseg with time intervals relative to the total -- duration of the note. lindur :: [D] -> Sig -- | The opcode expseg with time intervals relative to the total -- duration of the note. expdur :: [D] -> Sig -- | The opcode linen with time intervals relative to the total -- duration of the note. Total time is set to the value of idur. -- --
-- linendur asig rise decay --linendur :: Sig -> D -> D -> Sig -- | Makes time intervals relative to the note's duration. So that: -- --
-- onDur dt [a, t1, b, t2, c] ---- -- becomes: -- --
-- [a, t1 * dt, b, t2 * dt, c] --onDur :: D -> [D] -> [D] -- | The opcode linseg with time intervals relative to the total -- duration of the note given by the user. lindurBy :: D -> [D] -> Sig -- | The opcode expseg with time intervals relative to the total -- duration of the note given by the user. expdurBy :: D -> [D] -> Sig -- | The opcode linen with time intervals relative to the total -- duration of the note. Total time is set to the value of the first -- argument. -- --
-- linendurBy dt asig rise decay --linendurBy :: D -> Sig -> D -> D -> Sig -- | Fades in with the given attack time. fadeIn :: D -> Sig -- | Fades out with the given attack time. fadeOut :: D -> Sig -- | A combination of fade in and fade out. -- --
-- fades attackDuration decayDuration --fades :: D -> D -> Sig -- | Fades in by exponent with the given attack time. expFadeIn :: D -> Sig -- | Fades out by exponent with the given attack time. expFadeOut :: D -> Sig -- | A combination of exponential fade in and fade out. -- --
-- expFades attackDuration decayDuration --expFades :: D -> D -> Sig -- | Slope envelope. It stays at zero for a given time then it raises to 1 -- for thre given time. The function is usefull to delay the LFO. -- --
-- slope zeroTime rizeTime --slope :: D -> D -> Sig -- | Exponential slope (See the function slope). expSlope :: D -> D -> Sig -- | A function transformer (decorator). We can transform an envelope -- producer so that all values are sumed with some random value. The -- amplitude of the random value is given with the first argument. -- -- It can transform linseg, expseg, sequence producers and simplified -- sequence producers. -- -- An example: -- --
-- dac $ mul (humanVal 0.1 sqrSeq [1, 0.5, 0.2, 0.1] 1) $ white ---- -- As you can see it transforms the whole function. So we don't need for -- extra parenthesis. class HumanizeValue a where { type family HumanizeValueOut a :: *; } humanVal :: HumanizeValue a => Sig -> a -> HumanizeValueOut a -- | A function transformer (decorator). We can transform an envelope -- producer so that all durations are sumed with some random value. The -- amplitude of the random value is given with the first argument. -- -- It can transform linseg, expseg, sequence producers and simplified -- sequence producers. -- -- An example: -- --
-- dac $ mul (humanTime 0.1 sqrSeq [1, 0.5, 0.2, 0.1] 1) $ white ---- -- As you can see it transforms the whole function. So we don't need for -- extra parenthesis. class HumanizeTime a where { type family HumanizeTimeOut a :: *; } humanTime :: HumanizeTime a => Sig -> a -> HumanizeTimeOut a -- | A function transformer (decorator). We can transform an envelope -- producer so that all values and durations are sumed with some random -- value. The amplitude of the random value is given with the first two -- arguments. -- -- It can transform linseg, expseg, sequence producers and simplified -- sequence producers. -- -- An example: -- --
-- dac $ mul (humanValTime 0.1 0.1 sqrSeq [1, 0.5, 0.2, 0.1] 1) $ white ---- -- As you can see it transforms the whole function. So we don't need for -- extra parenthesis. class HumanizeValueTime a where { type family HumanizeValueTimeOut a :: *; } humanValTime :: HumanizeValueTime a => Sig -> Sig -> a -> HumanizeValueTimeOut a -- | Alias for humanVal. hval :: HumanizeValue a => Sig -> a -> HumanizeValueOut a -- | Alias for humanTime. htime :: HumanizeTime a => Sig -> a -> HumanizeTimeOut a -- | Alias for humanValTime. hvalTime :: HumanizeValueTime a => Sig -> Sig -> a -> HumanizeValueTimeOut a -- | Looping sample and hold envelope. The first argument is the list of -- pairs: -- --
-- [a, durA, b, durB, c, durc, ...] ---- -- It's a list of values and durations. The durations are relative to the -- period of repetition. The period is specified with the second -- argument. The second argument is the frequency of repetition measured -- in Hz. -- --
-- lpshold valDurs frequency --lpshold :: [Sig] -> Sig -> Sig -- | Looping linear segments envelope. The first argument is the list of -- pairs: -- --
-- [a, durA, b, durB, c, durc, ...] ---- -- It's a list of values and durations. The durations are relative to the -- period of repetition. The period is specified with the second -- argument. The second argument is the frequency of repetition measured -- in Hz. -- --
-- loopseg valDurs frequency --loopseg :: [Sig] -> Sig -> Sig -- | Looping exponential segments envelope. The first argument is the list -- of pairs: -- --
-- [a, durA, b, durB, c, durc, ...] ---- -- It's a list of values and durations. The durations are relative to the -- period of repetition. The period is specified with the second -- argument. The second argument is the frequency of repetition measured -- in Hz. -- --
-- loopxseg valDurs frequency --loopxseg :: [Sig] -> Sig -> Sig -- | It's like lpshold but we can specify the phase of repetition (phase -- belongs to [0, 1]). lpsholdBy :: D -> [Sig] -> Sig -> Sig -- | It's like loopseg but we can specify the phase of repetition (phase -- belongs to [0, 1]). loopsegBy :: D -> [Sig] -> Sig -> Sig -- | It's like loopxseg but we can specify the phase of repetition (phase -- belongs to [0, 1]). loopxsegBy :: D -> [Sig] -> Sig -> Sig -- | The looping sequence of constant segments. -- --
-- linSeg [a, durA, b, durB, c, durC, ...] [scale1, scale2, scale3] cps ---- -- The first argument is the list that specifies the shape of the looping -- wave. It's the alternating values and durations of transition from one -- value to another. The durations are relative to the period. So that -- lists -- --
-- [0, 0.5, 1, 0.5, 0] and [0, 50, 1, 50, 0] ---- -- produce the same results. The second list is the list of scales for -- subsequent periods. Every value in the period is scaled with values -- from the second list. The last argument is the rate of repetition -- (Hz). holdSeq :: [Sig] -> [Sig] -> Sig -> Sig -- | The looping sequence of linear segments. -- --
-- linSeg [a, durA, b, durB, c, durC, ...] [scale1, scale2, scale3] cps ---- -- The first argument is the list that specifies the shape of the looping -- wave. It's the alternating values and durations of transition from one -- value to another. The durations are relative to the period. So that -- lists -- --
-- [0, 0.5, 1, 0.5, 0] and [0, 50, 1, 50, 0] ---- -- produce the same results. The second list is the list of scales for -- subsequent periods. Every value in the period is scaled with values -- from the second list. The last argument is the rate of repetition -- (Hz). linSeq :: [Sig] -> [Sig] -> Sig -> Sig -- | The looping sequence of exponential segments. -- --
-- expSeg [a, durA, b, durB, c, durC, ...] [scale1, scale2, scale3] cps ---- -- The first argument is the list that specifies the shape of the looping -- wave. It's the alternating values and durations of transition from one -- value to another. The durations are relative to the period. So that -- lists -- --
-- [0, 0.5, 1, 0.5, 0] and [0, 50, 1, 50, 0] ---- -- produce the same results. The second list is the list of scales for -- subsequent periods. Every value in the period is scaled with values -- from the second list. The last argument is the rate of repetition -- (Hz). expSeq :: [Sig] -> [Sig] -> Sig -> Sig -- | It's just like linseg but it loops over the envelope. linloop :: [Sig] -> Sig -- | It's just like expseg but it loops over the envelope. exploop :: [Sig] -> Sig -- | Sample and hold cyclic signal. It takes the list of -- --
-- [a, dta, b, dtb, c, dtc, ...] ---- -- the a, b, c, ... are values of the constant segments -- -- the dta, dtb, dtc, are durations in seconds of constant segments. -- -- The period of the repetition equals to the sum of all durations. sah :: [Sig] -> Sig stepSeq :: [Sig] -> Sig -> Sig -- | Sample and hold sequence. It outputs the looping sequence of constan -- elements. constSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar triangle. triSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar square. sqrSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar sawtooth. sawSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar inveted sawtooth. isawSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar exponential sawtooth. xsawSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar inverted exponential sawtooth. ixsawSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar inveted square. isqrSeq :: [Sig] -> Sig -> Sig -- | Step sequencer with unipolar exponential triangle. xtriSeq :: [Sig] -> Sig -> Sig -- | A sequence of unipolar waves with pulse width moulation (see upw). The -- first argument is a duty cycle in range 0 to 1. pwSeq :: Sig -> [Sig] -> Sig -> Sig -- | A sequence of unipolar inverted waves with pulse width moulation (see -- upw). The first argument is a duty cycle in range 0 to 1. ipwSeq :: Sig -> [Sig] -> Sig -> Sig -- | A sequence of unipolar triangle waves with ramp factor (see uramp). -- The first argument is a ramp factor cycle in range 0 to 1. rampSeq :: Sig -> [Sig] -> Sig -> Sig -- | A sequence of unipolar inverted triangle waves with ramp factor (see -- uramp). The first argument is a ramp factor cycle in range 0 to 1. irampSeq :: Sig -> [Sig] -> Sig -> Sig -- | A sequence of unipolar exponential triangle waves with ramp factor -- (see uramp). The first argument is a ramp factor cycle in range 0 to -- 1. xrampSeq :: Sig -> [Sig] -> Sig -> Sig -- | A sequence of unipolar inverted exponential triangle waves with ramp -- factor (see uramp). The first argument is a ramp factor cycle in range -- 0 to 1. ixrampSeq :: Sig -> [Sig] -> Sig -> Sig -- | The looping ADSR envelope. -- --
-- xadsrSeq attack decay sustain release weights frequency ---- -- The sum of attack, decay, sustain and release time durations should be -- equal to one. adsrSeq :: Sig -> Sig -> Sig -> Sig -> [Sig] -> Sig -> Sig -- | The looping exponential ADSR envelope. there is a fifth segment at the -- end of the envelope during which the envelope equals to zero. -- --
-- xadsrSeq attack decay sustain release weights frequency ---- -- The sum of attack, decay, sustain and release time durations should be -- equal to one. xadsrSeq :: Sig -> Sig -> Sig -> Sig -> [Sig] -> Sig -> Sig -- | The looping ADSR envelope with the rest at the end. -- --
-- adsrSeq attack decay sustain release rest weights frequency ---- -- The sum of attack, decay, sustain, release and rest time durations -- should be equal to one. adsrSeq_ :: Sig -> Sig -> Sig -> Sig -> Sig -> [Sig] -> Sig -> Sig -- | The looping exponential ADSR envelope. there is a fifth segment at the -- end of the envelope during which the envelope equals to zero. -- --
-- xadsrSeq_ attack decay sustain release rest weights frequency ---- -- The sum of attack, decay, sustain, release and rest time durations -- should be equal to one. xadsrSeq_ :: Sig -> Sig -> Sig -> Sig -> Sig -> [Sig] -> Sig -> Sig -- | The seq is a type for step sequencers. The step sequencer is a -- monophonic control signal. Most often step sequencer is a looping -- segment of some values. It's used to create bas lines or conrtrol the -- frequency of the filter in dub or trance music. There are simple -- functions for creation of step sequencers defined in the module -- Csound.Air.Envelope. -- -- Basically the step sequence is a list of pairs: -- --
-- [(valA, durA), (valB, durB), (valC, durC)] ---- -- each pair defines a segment of height valN that lasts for durN. The -- sequence is repeated with the given frequency. Each segment has -- certain shape. It can be a constant or line segment or fragment of -- square wave or fragment of an adsr envelope. There are many predefined -- functions. -- -- With Seq we can construct control signals in very flexible way. We can -- use the score composition functions for creation of sequences. We can -- use mel for sequencing of individual steps, we can use -- str for stretching the sequence in time domain, we can delay -- with del. -- -- Here is an example: -- --
-- dac $ tri $ seqConst [str 0.25 $ mel [440, 220, 330, 220], 110] 1 ---- -- We can see how the function str was used to make a certain -- segment faster. There are numerical instaces for Seq. Bt it defines -- only functions fronInteger and fromRational. data Seq -- | Creates a toSeq :: Sig -> Seq -- | Squashes a sequence to a single beat. onBeat :: Seq -> Seq -- | Squashes a sequence to a single beat and then stretches to the given -- value. onBeats :: Sig -> Seq -> Seq -- | A sequence of constant segments. seqConst :: [Seq] -> Sig -> Sig -- | A linear sequence. seqLin :: [Seq] -> Sig -> Sig -- | An exponential sequence. seqExp :: [Seq] -> Sig -> Sig -- | The sequence of pulse width waves. The first argument is a duty cycle -- (ranges from 0 to 1). seqPw :: Sig -> [Seq] -> Sig -> Sig -- | The sequence of inversed pulse width waves. iseqPw :: Sig -> [Seq] -> Sig -> Sig -- | The sequence of square waves. seqSqr :: [Seq] -> Sig -> Sig -- | The sequence of inversed square waves. iseqSqr :: [Seq] -> Sig -> Sig -- | The sequence of sawtooth waves. seqSaw :: [Seq] -> Sig -> Sig -- | The sequence of inversed sawtooth waves. iseqSaw :: [Seq] -> Sig -> Sig -- | The sequence of exponential sawtooth waves. xseqSaw :: [Seq] -> Sig -> Sig -- | The sequence of inversed exponential sawtooth waves. ixseqSaw :: [Seq] -> Sig -> Sig -- | The sequence of ramp functions. The first argument is a duty cycle. seqRamp :: Sig -> [Seq] -> Sig -> Sig -- | The sequence of inversed ramp functions. The first argument is a duty -- cycle. iseqRamp :: Sig -> [Seq] -> Sig -> Sig -- | The sequence of triangular waves. seqTri :: [Seq] -> Sig -> Sig -- | The sequence of ramped triangular waves. seqTriRamp :: Sig -> [Seq] -> Sig -> Sig -- | The sequence of ADSR-envelopes. -- --
-- seqAdsr att dec sus rel ---- -- It has to be: -- --
-- att + dec + sus_time + rel == 1 --seqAdsr :: Sig -> Sig -> Sig -> Sig -> [Seq] -> Sig -> Sig -- | The sequence of exponential ADSR-envelopes. xseqAdsr :: Sig -> Sig -> Sig -> Sig -> [Seq] -> Sig -> Sig -- | The sequence of ADSR-envelopes with rest at the end. -- --
-- seqAdsr att dec sus rel rest ---- -- It has to be: -- --
-- att + dec + sus_time + rel + rest == 1 --seqAdsr_ :: Sig -> Sig -> Sig -> Sig -> Sig -> [Seq] -> Sig -> Sig -- | The sequence of exponential ADSR-envelopes with rest at the end. xseqAdsr_ :: Sig -> Sig -> Sig -> Sig -> Sig -> [Seq] -> Sig -> Sig -- | Function for creation of accented beats. The steady beat pattern of -- accents is repeated. The first argument describes the list of -- integers. Each integer is a main beat and the length of the beat. We -- can create a typical latino beat: -- --
-- dac $ mul (seqSaw [seqPat [3, 3, 2]] 1) white --seqPat :: [Int] -> Seq -- | It's like seqPat but inplace of rests it fills the gaps with -- segments ascending in value. -- --
-- dac $ mul (seqSaw [seqAsc [3, 3, 2]] 1) white --seqAsc :: [Int] -> Seq -- | It's like seqPat but inplace of rests it fills the gaps with -- segments descending in value. -- --
-- dac $ mul (seqSaw [seqDesc [3, 3, 2]] 1) white --seqDesc :: [Int] -> Seq -- | It's like seqPat but inplace of rests it fills the gaps with -- 0.5s. -- --
-- dac $ mul (seqSaw [seqHalf [3, 3, 2]] 1) white --seqHalf :: [Int] -> Seq instance Csound.Air.Envelope.HumanizeValueTime ([Csound.Air.Envelope.Seq] -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeValueTime ([Csound.Typed.Types.Prim.D] -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeValueTime ([Csound.Typed.Types.Prim.D] -> Csound.Typed.Types.Prim.D -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeTime ([Csound.Air.Envelope.Seq] -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeTime ([Csound.Typed.Types.Prim.D] -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeTime ([Csound.Typed.Types.Prim.D] -> Csound.Typed.Types.Prim.D -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeValue ([Csound.Air.Envelope.Seq] -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeValue ([Csound.Typed.Types.Prim.Sig] -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeValue ([Csound.Typed.Types.Prim.D] -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.Envelope.HumanizeValue ([Csound.Typed.Types.Prim.D] -> Csound.Typed.Types.Prim.D -> Csound.Typed.Types.Prim.Sig) instance Temporal.Class.Duration Csound.Air.Envelope.Seq instance Temporal.Class.Rest Csound.Air.Envelope.Seq instance Temporal.Class.Delay Csound.Air.Envelope.Seq instance Temporal.Class.Melody Csound.Air.Envelope.Seq instance Temporal.Class.Stretch Csound.Air.Envelope.Seq instance GHC.Num.Num Csound.Air.Envelope.Seq instance GHC.Real.Fractional Csound.Air.Envelope.Seq -- | Argument modifiers. Functions to transform arguments of the function -- with flexibility. module Csound.Air.ModArg class ModArg1 a b where { type family ModArgOut1 a b :: *; } modArg1 :: ModArg1 a b => Sig -> a -> b -> ModArgOut1 a b class ModArg2 a b where { type family ModArgOut2 a b :: *; } modArg2 :: ModArg2 a b => Sig -> a -> b -> ModArgOut2 a b class ModArg3 a b where { type family ModArgOut3 a b :: *; } modArg3 :: ModArg3 a b => Sig -> a -> b -> ModArgOut3 a b class ModArg4 a b where { type family ModArgOut4 a b :: *; } modArg4 :: ModArg4 a b => Sig -> a -> b -> ModArgOut4 a b delModArg1 :: (SigSpace a, ModArg1 a b) => D -> D -> Sig -> a -> b -> ModArgOut1 a b delModArg2 :: (SigSpace a, ModArg2 a b) => D -> D -> Sig -> a -> b -> ModArgOut2 a b delModArg3 :: (SigSpace a, ModArg3 a b) => D -> D -> Sig -> a -> b -> ModArgOut3 a b delModArg4 :: (SigSpace a, ModArg4 a b) => D -> D -> Sig -> a -> b -> ModArgOut4 a b oscArg1 :: ModArg1 Sig b => Sig -> Sig -> b -> ModArgOut1 Sig b oscArg2 :: ModArg2 Sig b => Sig -> Sig -> b -> ModArgOut2 Sig b oscArg3 :: ModArg3 Sig b => Sig -> Sig -> b -> ModArgOut3 Sig b oscArg4 :: ModArg4 Sig b => Sig -> Sig -> b -> ModArgOut4 Sig b triArg1 :: ModArg1 Sig b => Sig -> Sig -> b -> ModArgOut1 Sig b triArg2 :: ModArg2 Sig b => Sig -> Sig -> b -> ModArgOut2 Sig b triArg3 :: ModArg3 Sig b => Sig -> Sig -> b -> ModArgOut3 Sig b triArg4 :: ModArg4 Sig b => Sig -> Sig -> b -> ModArgOut4 Sig b sqrArg1 :: ModArg1 Sig b => Sig -> Sig -> b -> ModArgOut1 Sig b sqrArg2 :: ModArg2 Sig b => Sig -> Sig -> b -> ModArgOut2 Sig b sqrArg3 :: ModArg3 Sig b => Sig -> Sig -> b -> ModArgOut3 Sig b sqrArg4 :: ModArg4 Sig b => Sig -> Sig -> b -> ModArgOut4 Sig b sawArg1 :: ModArg1 Sig b => Sig -> Sig -> b -> ModArgOut1 Sig b sawArg2 :: ModArg2 Sig b => Sig -> Sig -> b -> ModArgOut2 Sig b sawArg3 :: ModArg3 Sig b => Sig -> Sig -> b -> ModArgOut3 Sig b sawArg4 :: ModArg4 Sig b => Sig -> Sig -> b -> ModArgOut4 Sig b rndOscArg1 :: ModArg1 (SE Sig) b => Sig -> Sig -> b -> ModArgOut1 (SE Sig) b rndOscArg2 :: ModArg2 (SE Sig) b => Sig -> Sig -> b -> ModArgOut2 (SE Sig) b rndOscArg3 :: ModArg3 (SE Sig) b => Sig -> Sig -> b -> ModArgOut3 (SE Sig) b rndOscArg4 :: ModArg4 (SE Sig) b => Sig -> Sig -> b -> ModArgOut4 (SE Sig) b rndTriArg1 :: ModArg1 (SE Sig) b => Sig -> Sig -> b -> ModArgOut1 (SE Sig) b rndTriArg2 :: ModArg2 (SE Sig) b => Sig -> Sig -> b -> ModArgOut2 (SE Sig) b rndTriArg3 :: ModArg3 (SE Sig) b => Sig -> Sig -> b -> ModArgOut3 (SE Sig) b rndTriArg4 :: ModArg4 (SE Sig) b => Sig -> Sig -> b -> ModArgOut4 (SE Sig) b rndSqrArg1 :: ModArg1 (SE Sig) b => Sig -> Sig -> b -> ModArgOut1 (SE Sig) b rndSqrArg2 :: ModArg2 (SE Sig) b => Sig -> Sig -> b -> ModArgOut2 (SE Sig) b rndSqrArg3 :: ModArg3 (SE Sig) b => Sig -> Sig -> b -> ModArgOut3 (SE Sig) b rndSqrArg4 :: ModArg4 (SE Sig) b => Sig -> Sig -> b -> ModArgOut4 (SE Sig) b rndSawArg1 :: ModArg1 (SE Sig) b => Sig -> Sig -> b -> ModArgOut1 (SE Sig) b rndSawArg2 :: ModArg2 (SE Sig) b => Sig -> Sig -> b -> ModArgOut2 (SE Sig) b rndSawArg3 :: ModArg3 (SE Sig) b => Sig -> Sig -> b -> ModArgOut3 (SE Sig) b rndSawArg4 :: ModArg4 (SE Sig) b => Sig -> Sig -> b -> ModArgOut4 (SE Sig) b delOscArg1 :: ModArg1 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut1 Sig b delOscArg2 :: ModArg2 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut2 Sig b delOscArg3 :: ModArg3 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut3 Sig b delOscArg4 :: ModArg4 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut4 Sig b delTriArg1 :: ModArg1 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut1 Sig b delTriArg2 :: ModArg2 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut2 Sig b delTriArg3 :: ModArg3 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut3 Sig b delTriArg4 :: ModArg4 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut4 Sig b delSqrArg1 :: ModArg1 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut1 Sig b delSqrArg2 :: ModArg2 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut2 Sig b delSqrArg3 :: ModArg3 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut3 Sig b delSqrArg4 :: ModArg4 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut4 Sig b delSawArg1 :: ModArg1 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut1 Sig b delSawArg2 :: ModArg2 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut2 Sig b delSawArg3 :: ModArg3 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut3 Sig b delSawArg4 :: ModArg4 Sig b => D -> D -> Sig -> Sig -> b -> ModArgOut4 Sig b delRndOscArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b delRndOscArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b delRndOscArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b delRndOscArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b delRndTriArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b delRndTriArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b delRndTriArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b delRndTriArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b delRndSqrArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b delRndSqrArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b delRndSqrArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b delRndSqrArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b delRndSawArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b delRndSawArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b delRndSawArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b delRndSawArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b noiseArg1 :: ModArg1 (SE Sig) b => Sig -> b -> ModArgOut1 (SE Sig) b noiseArg2 :: ModArg2 (SE Sig) b => Sig -> b -> ModArgOut2 (SE Sig) b noiseArg3 :: ModArg3 (SE Sig) b => Sig -> b -> ModArgOut3 (SE Sig) b noiseArg4 :: ModArg4 (SE Sig) b => Sig -> b -> ModArgOut4 (SE Sig) b pinkArg1 :: ModArg1 (SE Sig) b => Sig -> b -> ModArgOut1 (SE Sig) b pinkArg2 :: ModArg2 (SE Sig) b => Sig -> b -> ModArgOut2 (SE Sig) b pinkArg3 :: ModArg3 (SE Sig) b => Sig -> b -> ModArgOut3 (SE Sig) b pinkArg4 :: ModArg4 (SE Sig) b => Sig -> b -> ModArgOut4 (SE Sig) b jitArg1 :: ModArg1 (SE Sig) b => Sig -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b jitArg2 :: ModArg2 (SE Sig) b => Sig -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b jitArg3 :: ModArg3 (SE Sig) b => Sig -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b jitArg4 :: ModArg4 (SE Sig) b => Sig -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b gaussArg1 :: ModArg1 (SE Sig) b => Sig -> b -> ModArgOut1 (SE Sig) b gaussArg2 :: ModArg2 (SE Sig) b => Sig -> b -> ModArgOut2 (SE Sig) b gaussArg3 :: ModArg3 (SE Sig) b => Sig -> b -> ModArgOut3 (SE Sig) b gaussArg4 :: ModArg4 (SE Sig) b => Sig -> b -> ModArgOut4 (SE Sig) b gaussiArg1 :: ModArg1 (SE Sig) b => Sig -> Sig -> b -> ModArgOut1 (SE Sig) b gaussiArg2 :: ModArg2 (SE Sig) b => Sig -> Sig -> b -> ModArgOut2 (SE Sig) b gaussiArg3 :: ModArg3 (SE Sig) b => Sig -> Sig -> b -> ModArgOut3 (SE Sig) b gaussiArg4 :: ModArg4 (SE Sig) b => Sig -> Sig -> b -> ModArgOut4 (SE Sig) b delNoiseArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut1 (SE Sig) b delNoiseArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut2 (SE Sig) b delNoiseArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut3 (SE Sig) b delNoiseArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut4 (SE Sig) b delPinkArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut1 (SE Sig) b delPinkArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut2 (SE Sig) b delPinkArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut3 (SE Sig) b delPinkArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut4 (SE Sig) b delJitArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b delJitArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b delJitArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b delJitArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b delGaussArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut1 (SE Sig) b delGaussArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut2 (SE Sig) b delGaussArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut3 (SE Sig) b delGaussArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> b -> ModArgOut4 (SE Sig) b delGaussiArg1 :: ModArg1 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut1 (SE Sig) b delGaussiArg2 :: ModArg2 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut2 (SE Sig) b delGaussiArg3 :: ModArg3 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut3 (SE Sig) b delGaussiArg4 :: ModArg4 (SE Sig) b => D -> D -> Sig -> Sig -> b -> ModArgOut4 (SE Sig) b adsrArg1 :: ModArg1 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut1 Sig b adsrArg2 :: ModArg2 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut2 Sig b adsrArg3 :: ModArg3 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut3 Sig b adsrArg4 :: ModArg4 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut4 Sig b xadsrArg1 :: ModArg1 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut1 Sig b xadsrArg2 :: ModArg2 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut2 Sig b xadsrArg3 :: ModArg3 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut3 Sig b xadsrArg4 :: ModArg4 Sig b => Sig -> D -> D -> D -> D -> b -> ModArgOut4 Sig b delAdsrArg1 :: ModArg1 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut1 Sig b delAdsrArg2 :: ModArg2 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut2 Sig b delAdsrArg3 :: ModArg3 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut3 Sig b delAdsrArg4 :: ModArg4 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut4 Sig b delXadsrArg1 :: ModArg1 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut1 Sig b delXadsrArg2 :: ModArg2 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut2 Sig b delXadsrArg3 :: ModArg3 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut3 Sig b delXadsrArg4 :: ModArg4 Sig b => D -> Sig -> D -> D -> D -> D -> b -> ModArgOut4 Sig b instance Csound.Air.ModArg.ModArg4 Csound.Typed.Types.Prim.Sig (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg4 Csound.Typed.Types.Prim.Sig (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg4 Csound.Typed.Types.Prim.Sig (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg4 Csound.Typed.Types.Prim.Sig (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg4 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg4 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg4 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg4 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> c -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 Csound.Typed.Types.Prim.Sig (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg3 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> b -> Csound.Typed.Types.Prim.Sig -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 Csound.Typed.Types.Prim.Sig (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (a -> Csound.Typed.Types.Prim.Sig -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 Csound.Typed.Types.Prim.Sig (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) instance Csound.Air.ModArg.ModArg1 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Types.Prim.Sig -> a -> b -> c -> Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) -- | Patches. module Csound.Air.Patch -- | A simple csound note (good for playing with midi-keyboard). It's a -- pair of amplitude (0 to 1) and freuqncy (Hz). type CsdNote a = (a, a) -- | An instrument transforms a note to a signal. type Instr a b = CsdNote a -> SE b -- | Data type for monophonic instruments. type MonoInstr a = MonoArg -> SE a -- | An effect processes the input signal. type Fx a = a -> SE a -- | Mono effect. type Fx1 = Fx Sig -- | Stereo effect. type Fx2 = Fx Sig2 -- | Fx specification. It;s a pair of dryWet ratio and a transformation -- function. data FxSpec a FxSpec :: DryWetRatio -> Fx a -> FxSpec a [fxMix] :: FxSpec a -> DryWetRatio [fxFun] :: FxSpec a -> Fx a type DryWetRatio = Sig -- | Mono-output patch. type Patch1 = Patch Sig -- | Stereo-output patch. type Patch2 = Patch Sig2 -- | The patch can be: -- --
-- fxSpec dryWetRatio fxFun --fxSpec :: Sig -> Fx a -> GenFxSpec a -- | Constructor for polyphonic synthesizer with flexible choice of the -- low-pass filter. If we use the filter from the first argument user -- lately can change it to some another filter. It defaults to mlp. polySyntFilter :: (ResonFilter -> Instr D a) -> Patch a -- | Constructor for monophonic synthesizer with flexible filter choice. monoSyntFilter :: (ResonFilter -> MonoInstr a) -> Patch a -- | Constructor for FX-specification with flexible filter choice. -- --
-- fxSpec dryWetRatio fxFun --fxSpecFilter :: Sig -> (ResonFilter -> Fx a) -> GenFxSpec a mapPatchInstr :: (Instr D a -> Instr D a) -> Patch a -> Patch a mapMonoPolyInstr :: (MonoInstr a -> MonoInstr a) -> (Instr D a -> Instr D a) -> Patch a -> Patch a -- | Transpose the patch by a given ratio. We can use the functions -- semitone, cent to calculate the ratio. transPatch :: D -> Patch a -> Patch a -- | Removes all effects from the patch. dryPatch :: Patch a -> Patch a -- | Renders the effect chain to a single function. getPatchFx :: (SigSpace a, Sigs a) => Maybe SyntSkin -> [GenFxSpec a] -> Fx a -- | Sets the dryWet ratio of the effects wwithin the patch. setFxMix :: Sig -> Patch a -> Patch a -- | Sets the dryWet ratios for the chain of the effects wwithin the patch. setFxMixes :: [Sig] -> Patch a -> Patch a -- | Sets the midi channel for all instruments in the patch. setMidiChn :: MidiChn -> Patch a -> Patch a -- | Plays a patch with midi. atMidi :: (SigSpace a, Sigs a) => Patch a -> SE a -- | Plays a patch with event stream. atSched :: (SigSpace a, Sigs a) => Patch a -> Evt (Sco (CsdNote D)) -> SE a -- | Plays a patch with event stream with stop-note event stream. atSchedUntil :: (SigSpace a, Sigs a) => Patch a -> Evt (CsdNote D) -> Evt b -> SE a -- | Plays notes indefinetely (it's more useful for monophonic -- synthesizers). atSchedHarp :: (SigSpace a, Sigs a) => Patch a -> Evt (CsdNote D) -> SE a -- | Plays a patch with scores. atSco :: forall a. (SigSpace a, Sigs a) => Patch a -> Sco (CsdNote D) -> Sco (Mix a) -- | Plays a patch with a single infinite note. atNote :: (SigSpace a, Sigs a) => Patch a -> CsdNote D -> SE a -- | Adds an effect to the patch's instrument. addInstrFx :: Fx a -> Patch a -> Patch a -- | Appends an effect before patch's effect. addPreFx :: DryWetRatio -> Fx a -> Patch a -> Patch a -- | Appends an effect after patch's effect. addPostFx :: DryWetRatio -> Fx a -> Patch a -> Patch a -- | Make an effect out of a pure function. fxSig :: SigSpace a => (Sig -> Sig) -> GenFxSpec a -- | Make an effect out of a pure function and specify dry/wet ratio. fxSigMix :: SigSpace a => Sig -> (Sig -> Sig) -> GenFxSpec a -- | Make an effect out of a stereo pure function. fxSig2 :: (Sig2 -> Sig2) -> GenFxSpec Sig2 -- | Make an effect out of a stereo pure function and specify dry/wet -- ratio. fxSigMix2 :: Sig -> (Sig2 -> Sig2) -> GenFxSpec Sig2 -- | Adds post fx with pure signal function. mapFx :: SigSpace a => (Sig -> Sig) -> Patch a -> Patch a -- | Adds post fx with pure signal function and specifies dry/wet ratio. mapFx' :: SigSpace a => Sig -> (Sig -> Sig) -> Patch a -> Patch a -- | Adds post fx with effectful signal function. bindFx :: BindSig a => (Sig -> SE Sig) -> Patch a -> Patch a -- | Adds post fx with effectful signal function and specifies dry/wet -- ratio. bindFx' :: BindSig a => Sig -> (Sig -> SE Sig) -> Patch a -> Patch a -- | Adds pre fx with pure signal function. mapPreFx :: SigSpace a => (Sig -> Sig) -> Patch a -> Patch a -- | Adds pre fx with pure signal function and specifies dry/wet ratio. mapPreFx' :: SigSpace a => Sig -> (Sig -> Sig) -> Patch a -> Patch a -- | Adds pre fx with effectful signal function. bindPreFx :: BindSig a => (Sig -> SE Sig) -> Patch a -> Patch a -- | Adds pre fx with effectful signal function and specifies dry/wet -- ratio. bindPreFx' :: BindSig a => Sig -> (Sig -> SE Sig) -> Patch a -> Patch a -- | Harmnoic series of patches. harmonPatch :: (SigSpace b, Sigs b) => [Sig] -> [D] -> Patch b -> Patch b -- | Adds an octave below note for a given patch to make the sound deeper. deepPad :: (SigSpace b, Sigs b) => Patch b -> Patch b -- | Plays a patch when the condition signal is satisfied. Can be useful -- for switches. patchWhen :: Sigs a => BoolSig -> Patch a -> Patch a -- | Mix two patches together. mixInstr :: (SigSpace b, Num b) => Sig -> Patch b -> Patch b -> Patch 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 -- | Sound font patch. sfPatch :: Sf -> Patch2 -- | Sound font patch with a bit of reverb. sfPatchHall :: Sf -> Patch2 -- | Transform the spec for monophonic patch. onMonoSyntSpec :: (MonoSyntSpec -> MonoSyntSpec) -> Patch a -> Patch a -- | Sets the slide time for pitch and amplitude of monophomic -- synthesizers. setMonoSlide :: D -> Patch a -> Patch a -- | Sets the monophonic to sharp transition and quick release. setMonoSharp :: Patch a -> Patch a -- | 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 --patchByNameMidi :: (SigSpace a, Sigs a) => String -> Patch a -> SE a -- | Plays a patch with midi with given temperament (see -- Csound.Tuning). atMidiTemp :: (SigSpace a, Sigs a) => Temp -> Patch a -> SE a -- | 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. patchByNameMidiTemp :: (SigSpace a, Sigs a) => Temp -> String -> Patch a -> SE a instance Csound.IO.RenderCsd Csound.Air.Patch.Patch1 instance Csound.IO.RenderCsd Csound.Air.Patch.Patch2 instance Csound.Typed.Types.SigSpace.SigSpace a => Csound.Typed.Types.SigSpace.SigSpace (Csound.Air.Patch.Patch a) instance Data.Default.Class.Default Csound.Air.Patch.PolySyntSpec instance Data.Default.Class.Default Csound.Air.Patch.MonoSyntSpec -- | Patterns module Csound.Air.Misc -- | Mean value. mean :: Fractional a => [a] -> a -- | Adds vibrato to the sound unit. Sound units is a function that takes -- in a frequency. vibrate :: Sig -> Sig -> (Sig -> a) -> Sig -> a -- | Adds a random vibrato to the sound unit. Sound units is a function -- that takes in a frequency. randomPitch :: Sig -> Sig -> (Sig -> a) -> Sig -> SE a -- | Chorus takes a number of copies, chorus width and wave shape. chorusPitch :: Int -> Sig -> (Sig -> Sig) -> Sig -> Sig -- | Applies a resonator to the signals. A resonator is a list of band pass -- filters. A list contains the parameters for the filters: -- --
-- [(centerFrequency, bandWidth)] --resons :: [(Sig, Sig)] -> Sig -> Sig -- | A resonator with user defined band pass filter. Warning: a filter -- takes in a center frequency, band width and the signal. The signal -- comes last (this order is not standard in the Csound but it's more -- convinient to use with Haskell). resonsBy :: (cps -> bw -> Sig -> Sig) -> [(cps, bw)] -> Sig -> Sig -- | Chain of mass-spring-damping filters. -- --
-- modes params baseCps exciter ---- --
-- dryWet ratio effect asig ---- --
-- gaussVol (minVolume, maxVolume) --rndVol :: SigSpace a => (D, D) -> a -> SE a -- | Random volume (with gauss distribution) -- --
-- gaussVol radiusOfDistribution --gaussVol :: SigSpace a => D -> a -> SE a -- | It picks a signal from the list by integer index. The original value -- is taken from the head of the list (the first element). selector :: (Num a, SigSpace a) => [a] -> Sig -> a -- | Hi-fi output for stereo signals. Saves the stereo signal to file. The -- length of the file is defined in seconds. -- --
-- writeHifi fileLength fileName asig --writeHifi :: D -> String -> SE Sig2 -> IO () -- | Creates running arpeggios. -- --
-- arpeggiBy ampWeights pitches instrument cps ---- -- It plays an instrument with fast sequence of notes. We can specify the -- pitches and amplitude weights of the notes as well as frequency of -- repetition. arpeggi :: SigSpace a => [Sig] -> [Sig] -> (Sig -> a) -> Sig -> a -- | Creates running arpeggios. -- --
-- arpeggiBy ampWave pitchwave ampWeights pitches instrument cps ---- -- It plays an instrument with fast sequence of notes. We can specify -- amplitude envelope wave, pitch envelope wave, the pitches and -- amplitude weights of the notes as well as frequency of repetition. arpBy :: SigSpace a => ([Sig] -> Sig -> Sig) -> ([Sig] -> Sig -> Sig) -> [Sig] -> [Sig] -> (Sig -> a) -> Sig -> a -- | Low-pass filter pictured as joystick. Ox is for center frequency and -- Oy is for resonance. lpJoy :: Source (Sig -> Sig) -- | Delay a signal by certain number of seconds There is a subtle -- difference between the function and the function delaySnd. -- The delaySig is for delaying a signal on a micro level (the -- delay time have to be small) It's implemented with delay buffer in the -- csound. But delaySnd is for delaying on macro level (the -- delay time can be big). It's implemented with scores and invocation of -- hidden instruments. -- --
-- delaySig numOfSamples asig --delaySig :: D -> Sig -> Sig -- | Delay a control signal by single sample. delay1k :: Sig -> Sig -- | Wave shaper. The signal should be bipolar. It ranges within the -- interval [-1, 1]. -- --
-- wshaper table amount asig ---- -- wave shaper transforms the input signal with the table. The amount of -- transformation scales the signal from 0 to 1. the amount is ratio of -- scaling. It expects the values from the interval [0, 1]. wshaper :: Tab -> Sig -> Sig -> Sig -- | Wave shaper with sigmoid. -- --
-- genSaturator sigmoidRadius amount asig ---- --
-- genSaturator 10 --saturator :: Sig -> Sig -> Sig -- | Alias for -- --
-- genSaturator 5 --mildSaturator :: Sig -> Sig -> Sig -- | Alias for -- --
-- genSaturator 50 --hardSaturator :: Sig -> Sig -> Sig -- | Alias for -- --
-- genSaturator 100 --hardSaturator2 :: Sig -> Sig -> Sig -- | Chains all functions in the list. funSeq :: [a -> a] -> a -> a -- | Applies all functions in the list to the given input and summs them -- up. funPar :: Num a => [a -> a] -> a -> a -- | Metronome. -- --
-- ticks n bpm --ticks :: Int -> Sig -> Sig -- | Metronome with a chain of accents. A typical 7/8 for example: -- --
-- dac $ nticks [3, 2, 2] (135 * 2) --nticks :: [Int] -> Sig -> Sig ticks2 :: Int -> Sig -> Sig nticks2 :: [Int] -> Sig -> Sig ticks3 :: Int -> Sig -> Sig nticks3 :: [Int] -> Sig -> Sig ticks4 :: Int -> Sig -> Sig nticks4 :: [Int] -> Sig -> Sig testDrone :: D -> SE Sig2 testDrone2 :: D -> SE Sig2 testDrone3 :: D -> SE Sig2 testDrone4 :: D -> SE Sig2 -- | Detects attacks in the signal. Outputs event stream of attack events. -- --
-- attackTrig threshold sigIn ---- -- threshhold cnmtrols the sensitivity of attack detection. Try out -- different values in [0, 0.2] attackTrig :: Sig -> Sig -> SE (Evt Unit) -- | Detects attacks in the signal. Outputs trigger-signal where 1 is when -- attack happens and 0 otherwise. attackTrigSig :: Sig -> Sig -> SE Sig -- | Make smooth attacks for the input guitar or piano-like sounds. It -- simulates automatic volume control pedal. It detects striken attacks -- and makes them sound more PAD-like. -- -- first argument is threshold that controls sensitivity of attack -- detection. The values like ~ 0.01, 0.02 is good start. -- -- To use it with guitar it's good to add a bit of distortion and -- compression to the signal to make it brighter and then to apply -- several delays to prolong the sustain and release phases. And it's -- good to add some reverb at the end. -- -- Here is an example of how to make ambient guitar with this effect: -- --
-- main = dac proc -- -- -- | Let's assume we read guitar from the first input of sound card -- proc :: Sig2 -> SE Sig2 -- proc (x, _) = mul 1 $ hall 0.25 $ -- fmap ( fromMono . (adele 0.35 1 0.65 0.34) . (adele 0.35 0.25 0.75 0.34) . -- saturator 0.3 . tort 0.1 0.25 . -- magnus 2 0.25 1.1 0.6 0.4 1.8) $ -- ambiEnv 0.02 x ---- -- So I've added a tape echo with magnus, then goes combo of saturator -- (compressor) and tort (distortion) then goes a couple of delays -- (adele) and the last part is sweet reverb (hall). ambiEnv :: Sig -> Sig -> SE Sig instance Data.Default.Class.Default Csound.Air.Misc.RazorPad -- | A multitap looper. module Csound.Air.Looper -- | The type for fine tuning of the looper. Let's review the values: -- --
-- def { loopTap = Just someEvt }
--
data LoopControl
LoopControl :: Maybe (Evt D) -> Maybe [Evt D] -> Maybe Tick -> Maybe (Evt D) -> LoopControl
[loopTap] :: LoopControl -> Maybe (Evt D)
[loopFade] :: LoopControl -> Maybe [Evt D]
[loopDel] :: LoopControl -> Maybe Tick
[loopThrough] :: LoopControl -> Maybe (Evt D)
-- | Simple multitap Looper. We can create as many taps as we like also we
-- can create fade outs/ins insert effects and control mix.
--
-- -- sigLoop spec bpm times imputs ---- -- Arguments: -- --
-- uiGain :: Double -> Source FxFun
-- uiGain isOn gain = fxBox "Gain" fx isOn [("gain", gain)]
-- where
-- fx :: Sig -> Sig2 -> Sig2
-- fx = mul
--
--
-- Let's look at the arguments of the function
--
-- -- fxBox name fx isOn args ---- --
-- fxGrid columnsSize fxs ---- -- first argument is a number of columns in each row. fxGrid :: Int -> [Source (Fx a)] -> Source (Fx a) -- | Scales the gui for signal processing widgets. fxSca :: Double -> Source (Fx a) -> Source (Fx a) -- | Applies a function to a signal processing function. fxMap :: Fx a -> Source (Fx a) -> Source (Fx a) -- | Applies FX with UI to the input argument. fxApply :: Source (a -> SE b) -> a -> Source b -- | Applies FX to the Patch. atFx :: Source (Fx a) -> Patch a -> Source (Patch a) -- | fxHor for chain that starts with mono effects and proceeds -- with stereo effects. The second argument can contain The transition -- widget (mono to stereo effect) or it can be empty. If it's empty -- automatic conversion will be inserted. fxHorMS :: [Source Fx1] -> Maybe (Source (Sig -> SE Sig2)) -> [Source Fx2] -> Source (Sig -> SE Sig2) -- | fxVer for chain that starts with mono effects and proceeds -- with stereo effects. The second argument can contain The transition -- widget (mono to stereo effect) or it can be empty. If it's empty -- automatic conversion will be inserted. fxVerMS :: [Source Fx1] -> Maybe (Source (Sig -> SE Sig2)) -> [Source Fx2] -> Source (Sig -> SE Sig2) -- | Creates a matrix of fx-boxes. Stacks a list of mono and stereo FXs. -- --
-- fxGrid columnsSize monoFxs maybeBridge stereoFxs ---- -- first argument is a number of columns in each row. fxGridMS :: Int -> [Source Fx1] -> Maybe (Source (Sig -> SE Sig2)) -> [Source Fx2] -> Source (Sig -> SE Sig2) fromMonoFx :: Sigs a => (Sig -> Sig) -> Fx a -- | Chooses an instrument among several alternatives. It uses the -- hradio for GUI groupping. hinstrChooser :: Sigs b => [(String, a -> SE b)] -> Int -> Source (a -> SE b) -- | Chooses an instrument among several alternatives. It uses the -- vradio for GUI groupping. vinstrChooser :: Sigs b => [(String, a -> SE b)] -> Int -> Source (a -> SE b) -- | Chooses a midi instrument among several alternatives. It uses the -- hradio for GUI groupping. hmidiChooser :: Sigs a => [(String, Msg -> SE a)] -> Int -> Source a -- | Chooses a midi instrument among several alternatives. It uses the -- vradio for GUI groupping. vmidiChooser :: Sigs a => [(String, Msg -> SE a)] -> Int -> Source a -- | The distortion widget. The arguments are -- --
-- uiDistort isOn levelOfDistortion drive tone --uiDistort :: Sigs a => Bool -> Double -> Double -> Double -> Source (Fx a) -- | The chorus widget. The arguments are -- --
-- uiChorus isOn mix rate depth width --uiChorus :: Bool -> Double -> Double -> Double -> Double -> Source Fx2 -- | The flanger widget. The arguments are -- --
-- uiFlanger isOn rate depth delay feedback --uiFlanger :: Sigs a => Bool -> Double -> Double -> Double -> Double -> Source (Fx a) -- | The phaser widget. The arguments are -- --
-- uiPhaser isOn mix feedback rate depth frequency --uiPhaser :: Sigs a => Bool -> Double -> Double -> Double -> Double -> Source (Fx a) -- | The delay widget. The arguments are -- --
-- uiDelay isOn mix feedback delayTime tone --uiDelay :: Sigs a => Bool -> Double -> Double -> Double -> Double -> Source (Fx a) -- | The simplified delay widget. The arguments are -- --
-- uiEcho isOn maxDelayTime delayTime feedback --uiEcho :: Sigs a => Bool -> D -> Double -> Double -> Source (Fx a) -- | The pair of low and high pass filters -- --
-- uiFilter isOn lowPassfrequency highPassFrequency gain --uiFilter :: Sigs a => Bool -> Double -> Double -> Double -> Source (Fx a) -- | The reverb widget. The arguments are: -- --
-- uiReverb mix depth --uiReverb :: Bool -> Double -> Double -> Source Fx2 -- | The gain widget, it's set to on by default. The arguments are -- --
-- uiGain amountOfGain --uiGain :: Sigs a => Double -> Source (Fx a) -- | Compressor -- --
-- uiCompress thresh loknee hiknee ratio att rel gain --uiCompress :: Sigs a => Double -> Double -> Double -> Double -> Double -> Double -> Double -> Source (Fx a) -- | The filtered white noize widget. The arguments are -- --
-- uiWhite isOn centerFreqOfFilter amountOfNoize --uiWhite :: Sigs a => Bool -> Double -> Double -> Source (Fx a) -- | The filtered pink noize widget. The arguments are -- --
-- uiPink isOn centerFreqOfFilter amountOfNoize --uiPink :: Sigs a => Bool -> Double -> Double -> Source (Fx a) -- | The constructor for signal processing functions with no arguments -- (controlls). uiFx :: Sigs a => String -> Fx a -> Bool -> Source (Fx a) uiDry :: Sigs a => Source (Fx a) -- | the widget for mixing in a signal to the signal. uiSig :: Sigs a => String -> Bool -> Source a -> Source (Fx a) -- | A mixer widget represented as an effect. The effect sums the signals -- with given wieghts. uiMix :: Sigs a => Bool -> [(String, SE a)] -> Source (Fx a) -- | Midi chooser implemented as FX-box. uiMidi :: Sigs a => [(String, Msg -> SE a)] -> Int -> Source (Fx a) data AdsrBound AdsrBound :: Double -> Double -> Double -> AdsrBound [attBound] :: AdsrBound -> Double [decBound] :: AdsrBound -> Double [relBound] :: AdsrBound -> Double data AdsrInit AdsrInit :: Double -> Double -> Double -> Double -> AdsrInit [attInit] :: AdsrInit -> Double [decInit] :: AdsrInit -> Double [susInit] :: AdsrInit -> Double [relInit] :: AdsrInit -> Double linAdsr :: String -> AdsrBound -> AdsrInit -> Source Sig expAdsr :: String -> AdsrBound -> AdsrInit -> Source Sig -- | A widget with four standard waveforms: pure tone, triangle, square and -- sawtooth. The last parameter is a default waveform (it's set at init -- time). classicWaves :: String -> Int -> Source (Sig -> Sig) -- | Slider for master volume masterVolume :: Source Sig -- | Knob for master volume masterVolumeKnob :: Source Sig -- | Clip and it's parameters data LiveClip LiveClip :: FilePath -> ClipParam -> LiveClip -- | path to the file of audio clip [liveClipFile] :: LiveClip -> FilePath -- | clip launch parameters [liveClipParam] :: LiveClip -> ClipParam data ClipParam ClipParam :: !Int -> !Int -> !Int -> !Int -> !Bool -> !Double -> ClipParam -- | Clip size in bars [clipParamSize] :: ClipParam -> !Int -- | Clip offset from beginning in bars [clipParamDel] :: ClipParam -> !Int -- | Clip skip time at the end of the clip [clipParamTail] :: ClipParam -> !Int -- | Next clip to play after this one is finished. If it's -1 then play the -- same clip [clipParamNext] :: ClipParam -> !Int -- | Should we retrigger clip from the start or continue play where we left -- out. [clipParamRetrig] :: ClipParam -> !Bool -- | Volume scaling factor for the clip [clipParamVol] :: ClipParam -> !Double -- | Live row triggers audio clips in sync. -- --
-- liveRow clips bpm barSize clipIndex ---- --
-- adele mixRatio delayTime feedback toneRatio ain ---- -- Note that the center frequency of the filter is measured in normalized -- units (form 0 to 1). adele :: Sigs a => Balance -> DelayTime -> Feedback -> ToneSig -> a -> a -- | Ping-pong delay -- --
-- pongy kmix delayTime feedback tone ain --pongy :: Sig2s a => Balance -> DelayTime -> Feedback -> ToneSig -> WidthSig -> a -> a -- | Distortion unit with low-pass filter. -- --
-- tort driveLevel toneRatio ain ---- -- Note that the center frequency of the filter is measured in normalized -- units (form 0 to 1). tort :: Sigs a => DriveSig -> ToneSig -> a -> a -- | Envelope follower. -- --
-- fowler sensitivity baseFrequencyRatio resonance ain ---- -- Arguments: -- --
-- revsy time ---- -- time -- the size of the chunck in seconds. revsy :: Sigs a => TimeSig -> a -> a -- | A flanger effect following the typical design of a so called 'stomp -- box' -- --
-- flan rate depth delayTime feedback ain = ---- -- Arguments -- --
-- phasy rate depth freq fback ain ---- -- Arguments: -- --
-- crusher bits fold ain = ... ---- -- Arguments -- --
-- chory rate depth width (ainLeft, ainRight) ---- -- Arguments -- --
-- pany wave rate depth ain ---- -- ; Arguments: -- --
-- oscPany = pany 0 --oscPany :: DepthSig -> RateSig -> Sig2 -> Sig2 -- | Triangle auto pan -- --
-- triPany = pany 1 --triPany :: DepthSig -> RateSig -> Sig2 -> Sig2 -- | Square auto pan -- --
-- sqrPany = pany 2 --sqrPany :: DepthSig -> RateSig -> Sig2 -> Sig2 -- | Tremolo -- -- tremolo effect -- --
-- tremy wave rate depth ain ---- -- ; Arguments: -- --
-- oscTremy = tremy 0 --oscTremy :: Sigs a => DepthSig -> RateSig -> a -> a -- | Triangle tremolo -- --
-- triTremy = tremy 1 --triTremy :: Sigs a => DepthSig -> RateSig -> a -> a -- | Square tremolo -- --
-- sqrTremy = tremy 2 --sqrTremy :: Sigs a => DepthSig -> RateSig -> a -> a -- | RingModulator -- -- An ring modulating effect with an envelope follower -- --
-- ringo balance rate envelopeMod ain ---- --
-- magnus size feedback echoGain tone randomSpread ain ---- --
-- ambiGuitar thresh delayTime feedback tone driveLevel sig ---- -- For thresh try out values like 0.01, 0.02 -- -- Example, we read guitar input from soundcard first input, apply -- ambient guitar effect and a bit of reverb: -- --
-- main = dac proc -- -- proc :: Sig2 -> SE Sig2 -- proc (x, _) = hall 0.25 $ ambiGuitar 0.02 1 0.7 0.4 0.1 x --ambiGuitar :: ThreshSig -> DelayTime -> Feedback -> ToneSig -> DriveSig -> Sig -> SE Sig -- | Padsynth algorithm. See the details at: -- -- csound docs: -- http://csound.github.io/docs/manual/GENpadsynth.html -- -- original description: -- http://www.paulnasca.com/algorithms-created-by-me -- -- more detailed description: -- http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm -- -- An example: -- --
-- harms = [ -- 1, 0.7600046992, 0.6199994683, 0.9399998784, 0.4400023818, 0.0600003302, -- 0.8499968648, 0.0899999291, 0.8199964762, 0.3199984133, -- 0.9400014281, 0.3000001907, 0.120003365, 0.1799997687, 0.5200006366] -- -- spec = defPadsynthSpec 42.2 harms -- -- main = dac $ mul 0.4 $ mixAt 0.35 largeHall2 $ mixAt 0.45 (echo 0.25 0.75) $ -- midi $ onMsg $ mul (fades 0.5 0.7) . padsynthOsc2 spec --module Csound.Air.Padsynth -- | Padsynth oscillator. -- -- padsynthOsc spec frequency -- -- It makes it easy to create padsynth sound waves (see Tab.padsynth). It -- creates a padsynth table and reads it with poscil at the right speed. padsynthOsc :: PadsynthSpec -> Sig -> SE Sig -- | Stereo padsynth oscillatro. It creates two padsynth ftables for left -- and right channels. padsynthOsc2 :: PadsynthSpec -> Sig -> SE Sig2 -- | Creates padsynth oscillator with given harmonics. -- --
-- bwOscBy harmonics bandwidth frequency --bwOscBy :: [Double] -> Double -> Sig -> SE Sig -- | Creates padsynth oscillator with given odd harmonics. -- --
-- bwOddOscBy harmonics bandwidth frequency --bwOddOscBy :: [Double] -> Double -> Sig -> SE Sig -- | Stereo version of bwOscBy. bwOscBy2 :: [Double] -> Double -> Sig -> SE Sig2 -- | Stereo version of bwOddOscBy. bwOddOscBy2 :: [Double] -> Double -> Sig -> SE Sig2 -- | Pure sine wave with padsynth wave table: -- --
-- bwOsc bandwidth frequency --bwOsc :: Double -> Sig -> SE Sig -- | Triangle wave with padsynth wave table: -- --
-- bwTri bandwidth frequency --bwTri :: Double -> Sig -> SE Sig -- | Square wave with padsynth wave table: -- --
-- bwSqr bandwidth frequency --bwSqr :: Double -> Sig -> SE Sig -- | Saw-tooth wave with padsynth wave table: -- --
-- bwSaw bandwidth frequency --bwSaw :: Double -> Sig -> SE Sig -- | Stereo version of bwOsc. bwOsc2 :: Double -> Sig -> SE Sig2 -- | Stereo version of bwTri. bwTri2 :: Double -> Sig -> SE Sig2 -- | Stereo version of bwSqr. bwSqr2 :: Double -> Sig -> SE Sig2 -- | Stereo version of bwSaw. bwSaw2 :: Double -> Sig -> SE Sig2 -- | It uses several padsynth tables. Each table is responsible for -- specific interval of frequencies. The list of pairs specifies the -- threshhold value and padsynth specification. The padsynth table is -- active for all frequencies that lie below the given threshold. -- --
-- padsynthOscMultiCps thresholdSpecPairs frequency = ... --padsynthOscMultiCps :: [(Double, PadsynthSpec)] -> D -> SE Sig -- | Stereo version of padsynthOscMultiCps. padsynthOscMultiCps2 :: [(Double, PadsynthSpec)] -> D -> SE Sig2 -- | It behaves just like padsynthOscMultiCps but it spreads the -- padsynth tables among amplitude values. So the last input argument is -- a pair of amplitude and frequency: -- --
-- padsynthOscMultiVol thresholdSpecPairs (amplitude, frequency) = ... --padsynthOscMultiVol :: [(Double, PadsynthSpec)] -> (D, Sig) -> SE Sig -- | Stereo version of padsynthOscMultiVol. padsynthOscMultiVol2 :: [(Double, PadsynthSpec)] -> (D, Sig) -> SE Sig2 -- | TODO (undefined function) -- -- With this function we can create square zones in the domain of -- (amplitude, frequency). We can assign a separate padsynth -- table for each zone. The list of pairs contains a pair of two -- threshold values (amplitude, frequency) and dedicated -- padsynth specification. -- --
-- padsynthOscMultiVolCps thresholdSpecPairs (amplitude, frequency) = ... --padsynthOscMultiVolCps :: [((Double, Double), PadsynthSpec)] -> (D, D) -> SE Sig -- | TODO (undefined function) -- -- Stereo version of padsynthOscMultiVolCps. padsynthOscMultiVolCps2 :: [((Double, Double), PadsynthSpec)] -> (D, D) -> SE Sig2 -- | Combines morpheus oscillators with padsynth algorithm. It uses single -- table for granular synthesis. morphsynthOscMultiCps :: MorphSpec -> [(Double, PadsynthSpec)] -> D -> SE Sig2 -- | Combines morpheus oscillators with padsynth algorithm. It uses up to -- four tables for granular synthesis. quadMorphsynthOscMultiCps :: MorphSpec -> [[(Double, PadsynthSpec)]] -> (Sig, Sig) -> D -> SE Sig2 -- | The vital tools. module Csound.Air -- | Basic types and functions. -- -- This module re-exports everything. -- -- WARNING (for Csound users): the maximum amplitude is 1.0. There is no -- way to alter it. Don't define your amplitudes with 9000 or 11000. But -- the good news are: all signals are clipped by 1 so that you can not -- damage your ears and your speakers by a little typo. module Csound.Base -- | Replace all locations in the input with the same value. The default -- definition is fmap . const, but this may be -- overridden with a more efficient version. -- -- Using ApplicativeDo: 'a <$ bs' can be -- understood as the do expression -- --
-- do bs -- pure a ---- -- with an inferred Functor constraint. (<$) :: Functor f => a -> f b -> f a infixl 4 <$ -- | A functor with application, providing operations to -- --
-- (<*>) = liftA2 id ---- --
-- liftA2 f x y = f <$> x <*> y ---- -- Further, any definition must satisfy the following: -- --
pure id <*> v = -- v
pure (.) <*> u -- <*> v <*> w = u <*> (v -- <*> w)
pure f <*> -- pure x = pure (f x)
u <*> pure y = -- pure ($ y) <*> u
-- forall x y. p (q x y) = f x . g y ---- -- it follows from the above that -- --
-- liftA2 p (liftA2 q u v) = liftA2 f u . liftA2 g v ---- -- If f is also a Monad, it should satisfy -- -- -- -- (which implies that pure and <*> satisfy the -- applicative functor laws). class Functor f => Applicative (f :: Type -> Type) -- | Lift a value. pure :: Applicative f => a -> f a -- | Sequential application. -- -- A few functors support an implementation of <*> that is -- more efficient than the default one. -- -- Using ApplicativeDo: 'fs <*> as' can be -- understood as the do expression -- --
-- do f <- fs -- a <- as -- pure (f a) --(<*>) :: Applicative f => f (a -> b) -> f a -> f b -- | Lift a binary function to actions. -- -- Some functors support an implementation of liftA2 that is more -- efficient than the default one. In particular, if fmap is an -- expensive operation, it is likely better to use liftA2 than to -- fmap over the structure and then use <*>. -- -- This became a typeclass method in 4.10.0.0. Prior to that, it was a -- function defined in terms of <*> and fmap. -- -- Using ApplicativeDo: 'liftA2 f as bs' can be -- understood as the do expression -- --
-- do a <- as -- b <- bs -- pure (f a b) --liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c -- | Sequence actions, discarding the value of the first argument. -- -- 'as *> bs' can be understood as the do -- expression -- --
-- do as -- bs ---- -- This is a tad complicated for our ApplicativeDo extension -- which will give it a Monad constraint. For an -- Applicative constraint we write it of the form -- --
-- do _ <- as -- b <- bs -- pure b --(*>) :: Applicative f => f a -> f b -> f b infixl 4 *> infixl 4 <*> -- | One or none. optional :: Alternative f => f a -> f (Maybe a) newtype WrappedMonad (m :: Type -> Type) a WrapMonad :: m a -> WrappedMonad (m :: Type -> Type) a [unwrapMonad] :: WrappedMonad (m :: Type -> Type) a -> m a newtype WrappedArrow (a :: Type -> Type -> Type) b c WrapArrow :: a b c -> WrappedArrow (a :: Type -> Type -> Type) b c [unwrapArrow] :: WrappedArrow (a :: Type -> Type -> Type) b c -> a b c -- | Lists, but with an Applicative functor based on zipping. newtype ZipList a ZipList :: [a] -> ZipList a [getZipList] :: ZipList a -> [a] -- | The Const functor. newtype Const a (b :: k) Const :: a -> Const a (b :: k) [getConst] :: Const a (b :: k) -> a -- | An infix synonym for fmap. -- -- The name of this operator is an allusion to $. Note the -- similarities between their types: -- --
-- ($) :: (a -> b) -> a -> b -- (<$>) :: Functor f => (a -> b) -> f a -> f b ---- -- Whereas $ is function application, <$> is function -- application lifted over a Functor. -- --
-- >>> show <$> Nothing -- Nothing -- -- >>> show <$> Just 3 -- Just "3" ---- -- Convert from an Either Int Int to an -- Either Int String using show: -- --
-- >>> show <$> Left 17 -- Left 17 -- -- >>> show <$> Right 17 -- Right "17" ---- -- Double each element of a list: -- --
-- >>> (*2) <$> [1,2,3] -- [2,4,6] ---- -- Apply even to the second element of a pair: -- --
-- >>> even <$> (2,2) -- (2,True) --(<$>) :: Functor f => (a -> b) -> f a -> f b infixl 4 <$> -- | Lift a ternary function to actions. -- -- Using ApplicativeDo: 'liftA3 f as bs cs' can -- be understood as the do expression -- --
-- do a <- as -- b <- bs -- c <- cs -- pure (f a b c) --liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d -- | Lift a function to actions. This function may be used as a value for -- fmap in a Functor instance. -- -- | Using ApplicativeDo: 'liftA f as' can be -- understood as the do expression -- --
-- do a <- as -- pure (f a) ---- -- with an inferred Functor constraint, weaker than -- Applicative. liftA :: Applicative f => (a -> b) -> f a -> f b -- | A variant of <*> with the arguments reversed. -- -- Using ApplicativeDo: 'as <**> fs' can -- be understood as the do expression -- --
-- do a <- as -- f <- fs -- pure (f a) --(<**>) :: Applicative f => f a -> f (a -> b) -> f b infixl 4 <**> -- | A monoid on applicative functors. -- -- If defined, some and many should be the least solutions -- of the equations: -- -- class Applicative f => Alternative (f :: Type -> Type) -- | The identity of <|> empty :: Alternative f => f a -- | An associative binary operation (<|>) :: Alternative f => f a -> f a -> f a -- | One or more. some :: Alternative f => f a -> f [a] -- | Zero or more. many :: Alternative f => f a -> f [a] infixl 3 <|> -- | Writes to a zk variable at k-rate with mixing. -- --
-- zkwm ksig, kndx [, imix] ---- -- csound doc: http://csound.com/docs/manual/zkwm.html zkwm :: Sig -> Sig -> SE () -- | Writes to a zk variable at k-rate without mixing. -- --
-- zkw ksig, kndx ---- -- csound doc: http://csound.com/docs/manual/zkw.html zkw :: Sig -> Sig -> SE () -- | Reads from a location in zk space at k-rate. -- --
-- kres zkr kndx ---- -- csound doc: http://csound.com/docs/manual/zkr.html zkr :: Sig -> Sig -- | Facilitates the modulation of one signal by another. -- --
-- kres zkmod ksig, kzkmod ---- -- csound doc: http://csound.com/docs/manual/zkmod.html zkmod :: Sig -> Sig -> Sig -- | Clears one or more variables in the zk space. -- --
-- zkcl kfirst, klast ---- -- csound doc: http://csound.com/docs/manual/zkcl.html zkcl :: Sig -> Sig -> SE () -- | Writes to a zk variable to an i-rate variable with mixing. -- --
-- ziwm isig, indx [, imix] ---- -- csound doc: http://csound.com/docs/manual/ziwm.html ziwm :: D -> D -> SE () -- | Writes to a zk variable at i-rate without mixing. -- --
-- ziw isig, indx ---- -- csound doc: http://csound.com/docs/manual/ziw.html ziw :: D -> D -> SE () -- | Reads from a location in zk space at i-rate. -- --
-- ir zir indx ---- -- csound doc: http://csound.com/docs/manual/zir.html zir :: D -> D -- | Writes to a za variable at a-rate with mixing. -- --
-- zawm asig, kndx [, imix] ---- -- csound doc: http://csound.com/docs/manual/zawm.html zawm :: Sig -> Sig -> SE () -- | Writes to a za variable at a-rate without mixing. -- --
-- zaw asig, kndx ---- -- csound doc: http://csound.com/docs/manual/zaw.html zaw :: Sig -> Sig -> SE () -- | Reads from a location in za space at a-rate, adds some gain. -- --
-- ares zarg kndx, kgain ---- -- csound doc: http://csound.com/docs/manual/zarg.html zarg :: Sig -> Sig -> Sig -- | Reads from a location in za space at a-rate. -- --
-- ares zar kndx ---- -- csound doc: http://csound.com/docs/manual/zar.html zar :: Sig -> Sig -- | Modulates one a-rate signal by a second one. -- --
-- ares zamod asig, kzamod ---- -- csound doc: http://csound.com/docs/manual/zamod.html zamod :: Sig -> Sig -> Sig -- | Establishes zak space. -- -- Establishes zak space. Must be called only once. -- --
-- zakinit isizea, isizek ---- -- csound doc: http://csound.com/docs/manual/zakinit.html zakinit :: D -> D -> SE () -- | Clears one or more variables in the za space. -- --
-- zacl kfirst, klast ---- -- csound doc: http://csound.com/docs/manual/zacl.html zacl :: Sig -> Sig -> SE () -- | Cellular Automata -- -- Unidimensional Cellular Automata applied to Csound vectors -- --
-- vcella ktrig, kreinit, ioutFunc, initStateFunc, \ -- iRuleFunc, ielements, irulelen [, iradius] ---- -- csound doc: http://csound.com/docs/manual/vcella.html vcella :: Sig -> Sig -> D -> D -> D -> D -> D -> SE () -- | Cellular Automaton -- -- One-Dimensional Cellular Automaton. This opcode is the modified -- version of vcella by Gabriel Maldonado. -- --
-- cell ktrig, kreinit, ioutFunc, initStateFunc, iRuleFunc, ielements ---- -- csound doc: http://csound.com/docs/manual/cell.html cell :: Sig -> Sig -> D -> D -> D -> D -> SE () -- | Generate a sort of 'vectorial band-limited noise' -- --
-- vrandi ifn, krange, kcps, ielements [, idstoffset] [, iseed] \ -- [, isize] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/vrandi.html vrandi :: Tab -> Sig -> Sig -> D -> SE () -- | Generates a vector of random numbers stored into a table, holding the -- values for a period of time. -- -- Generates a vector of random numbers stored into a table, holding the -- values for a period of time. Generates a sort of 'vectorial -- band-limited noise'. -- --
-- vrandh ifn, krange, kcps, ielements [, idstoffset] [, iseed] \ -- [, isize] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/vrandh.html vrandh :: Tab -> Sig -> Sig -> D -> SE () -- | Vectorial Control-rate Delay Paths -- -- Generate a sort of vectorial portamento -- --
-- vport ifn, khtime, ielements [, ifnInit] ---- -- csound doc: http://csound.com/docs/manual/vport.html vport :: Tab -> Sig -> D -> SE () -- | Vectorial Control-rate Delay Paths -- -- Generate a sort of vectorial delay -- --
-- vecdelay ifn, ifnIn, ifnDel, ielements, imaxdel [, iskip] ---- -- csound doc: http://csound.com/docs/manual/vecdelay.html vecdelay :: Tab -> Tab -> Tab -> D -> D -> SE () -- | k-rate variable time delay. -- -- Variable delay applied to a k-rate signal -- --
-- kout vdelayk ksig, kdel, imaxdel [, iskip, imode] ---- -- csound doc: http://csound.com/docs/manual/vdelayk.html vdelayk :: Sig -> Sig -> D -> Sig -- | Limiting and Wrapping Vectorial Signals -- -- Wraps elements of vectorial control signals. -- --
-- vwrap ifn, kmin, kmax, ielements ---- -- csound doc: http://csound.com/docs/manual/vwrap.html vwrap :: Tab -> Sig -> Sig -> D -> SE () -- | Limiting and Wrapping Vectorial Signals -- -- Reflects elements of vectorial control signals on thresholds. -- --
-- vmirror ifn, kmin, kmax, ielements ---- -- csound doc: http://csound.com/docs/manual/vmirror.html vmirror :: Tab -> Sig -> Sig -> D -> SE () -- | Limiting and Wrapping Vectorial Signals -- -- Limits elements of vectorial control signals. -- --
-- vlimit ifn, kmin, kmax, ielements ---- -- csound doc: http://csound.com/docs/manual/vlimit.html vlimit :: Tab -> Sig -> Sig -> D -> SE () -- | Vectorial envelope generator -- -- Generate linear vectorial segments -- --
-- vlinseg ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]] ---- -- csound doc: http://csound.com/docs/manual/vlinseg.html vlinseg :: Tab -> D -> Tab -> D -> Tab -> SE () -- | Vectorial envelope generator -- -- Generate exponential vectorial segments -- --
-- vexpseg ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]] ---- -- csound doc: http://csound.com/docs/manual/vexpseg.html vexpseg :: Tab -> D -> Tab -> D -> Tab -> SE () -- | Performs subtraction between two vectorial control signals at init -- time. -- --
-- vsubv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vsubv_i.html vsubv_i :: Tab -> Tab -> D -> SE () -- | Performs subtraction between two vectorial control signals -- --
-- vsubv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose] ---- -- csound doc: http://csound.com/docs/manual/vsubv.html vsubv :: Tab -> Tab -> Sig -> SE () -- | Performs power-of operations between two vectorial control signals at -- init time. -- --
-- vpowv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vpowv_i.html vpowv_i :: Tab -> Tab -> D -> SE () -- | Performs power-of operations between two vectorial control signals -- --
-- vpowv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose] ---- -- csound doc: http://csound.com/docs/manual/vpowv.html vpowv :: Tab -> Tab -> Sig -> SE () -- | Performs mutiplication between two vectorial control signals at init -- time. -- --
-- vmultv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vmultv_i.html vmultv_i :: Tab -> Tab -> D -> SE () -- | Performs mutiplication between two vectorial control signals -- --
-- vmultv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose] ---- -- csound doc: http://csound.com/docs/manual/vmultv.html vmultv :: Tab -> Tab -> Sig -> SE () -- | Maps elements from a vector according to indexes contained in another -- vector. -- -- Maps elements from a vector onto another according to the indexes of a -- this vector. -- --
-- vmap ifn1, ifn2, ielements [,idstoffset, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vmap.html vmap :: Tab -> Tab -> D -> SE () -- | Performs exponential operations between two vectorial control signals -- at init time. -- --
-- vexpv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vexpv_i.html vexpv_i :: Tab -> Tab -> D -> SE () -- | Performs exponential operations between two vectorial control signals -- --
-- vexpv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose] ---- -- csound doc: http://csound.com/docs/manual/vexpv.html vexpv :: Tab -> Tab -> Sig -> SE () -- | Performs division between two vectorial control signals at init time. -- --
-- vdivv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vdivv_i.html vdivv_i :: Tab -> Tab -> D -> SE () -- | Performs division between two vectorial control signals -- --
-- vdivv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose] ---- -- csound doc: http://csound.com/docs/manual/vdivv.html vdivv :: Tab -> Tab -> Sig -> SE () -- | Copies a vector from one table to another. -- --
-- vcopy_i ifn1, ifn2, ielements [,idstoffset, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vcopy_i.html vcopy_i :: Tab -> Tab -> D -> SE () -- | Copies between two vectorial control signals -- --
-- vcopy ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose] ---- -- csound doc: http://csound.com/docs/manual/vcopy.html vcopy :: Tab -> Tab -> Sig -> SE () -- | Performs addition between two vectorial control signals at init time. -- --
-- vaddv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset] ---- -- csound doc: http://csound.com/docs/manual/vaddv_i.html vaddv_i :: Tab -> Tab -> D -> SE () -- | Performs addition between two vectorial control signals. -- --
-- vaddv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose] ---- -- csound doc: http://csound.com/docs/manual/vaddv.html vaddv :: Tab -> Tab -> Sig -> SE () -- | Raises each element of a vector to a scalar power -- --
-- vpow_i ifn, ival, ielements [, idstoffset] ---- -- csound doc: http://csound.com/docs/manual/vpow_i.html vpow_i :: Tab -> D -> D -> SE () -- | Raises each element of a vector to a scalar power. -- --
-- vpow ifn, kval, kelements [, kdstoffset] [, kverbose] ---- -- csound doc: http://csound.com/docs/manual/vpow.html vpow :: Tab -> Sig -> Sig -> SE () -- | Multiplies a vector in a table by a scalar value. -- --
-- vmult_i ifn, ival, ielements [, idstoffset] ---- -- csound doc: http://csound.com/docs/manual/vmult_i.html vmult_i :: Tab -> D -> D -> SE () -- | Multiplies a vector in a table by a scalar value. -- --
-- vmult ifn, kval, kelements [, kdstoffset] [, kverbose] ---- -- csound doc: http://csound.com/docs/manual/vmult.html vmult :: Tab -> Sig -> Sig -> SE () -- | Performs power-of operations between a vector and a scalar -- --
-- vexp_i ifn, ival, ielements[, idstoffset] ---- -- csound doc: http://csound.com/docs/manual/vexp_i.html vexp_i :: Tab -> D -> D -> SE () -- | Performs power-of operations between a vector and a scalar -- --
-- vexp ifn, kval, kelements [, kdstoffset] [, kverbose] ---- -- csound doc: http://csound.com/docs/manual/vexp.html vexp :: Tab -> Sig -> Sig -> SE () -- | Adds a scalar value to a vector in a table. -- --
-- vadd_i ifn, ival, ielements [, idstoffset] ---- -- csound doc: http://csound.com/docs/manual/vadd_i.html vadd_i :: Tab -> D -> D -> SE () -- | Adds a scalar value to a vector in a table. -- --
-- vadd ifn, kval, kelements [, kdstoffset] [, kverbose] ---- -- csound doc: http://csound.com/docs/manual/vadd.html vadd :: Tab -> Sig -> Sig -> SE () -- | Write vectors (to tables -or arrays of vectors). -- -- This opcode writes vectors to tables at k-rate. -- --
-- vtabwk kndx, ifn, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ] ---- -- csound doc: http://csound.com/docs/manual/vtabwk.html vtabwk :: Sig -> Tab -> Sig -> SE () -- | Write vectors (to tables -or arrays of vectors). -- -- This opcode writes vectors to tables at init time. -- --
-- vtabwi indx, ifn, inarg1 [, inarg2, inarg3 , .... , inargN ] ---- -- csound doc: http://csound.com/docs/manual/vtabwi.html vtabwi :: D -> Tab -> D -> SE () -- | Write vectors (to tables -or arrays of vectors). -- -- This opcode writes vectors to tables at a-rate. -- --
-- vtabwa andx, ifn, ainarg1 [, ainarg2, ainarg3 , .... , ainargN ] ---- -- csound doc: http://csound.com/docs/manual/vtabwa.html vtabwa :: Sig -> Tab -> Sig -> SE () -- | Write vectors (to tables -or arrays of vectors). -- -- This opcode writes vectors to tables at k-rate. -- --
-- vtablewk kndx, kfn, ixmode, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ] ---- -- csound doc: http://csound.com/docs/manual/vtablewk.html vtablewk :: Sig -> Tab -> D -> Sig -> SE () -- | Write vectors (to tables -or arrays of vectors). -- -- This opcode writes vectors to tables at init time. -- --
-- vtablewi indx, ifn, ixmode, inarg1 [, inarg2, inarg3 , .... , inargN ] ---- -- csound doc: http://csound.com/docs/manual/vtablewi.html vtablewi :: D -> Tab -> D -> D -> SE () -- | Write vectors (to tables -or arrays of vectors). -- -- This opcode writes vectors to tables at a-rate. -- --
-- vtablewa andx, kfn, ixmode, ainarg1 [, ainarg2, ainarg3 , .... , ainargN ] ---- -- csound doc: http://csound.com/docs/manual/vtablewa.html vtablewa :: Sig -> Tab -> D -> Sig -> SE () -- | Read vectors (from tables -or arrays of vectors). -- -- This opcode reads vectors from tables at k-rate. -- --
-- vtablek kndx, kfn, kinterp, ixmode, kout1 [, kout2, kout3, .... , koutN ] ---- -- csound doc: http://csound.com/docs/manual/vtablek.html vtablek :: Sig -> Tab -> Sig -> D -> Sig -> SE () -- | Read vectors (from tables -or arrays of vectors). -- -- This opcode reads vectors from tables. -- --
-- vtablei indx, ifn, interp, ixmode, iout1 [, iout2, iout3, .... , ioutN ] ---- -- csound doc: http://csound.com/docs/manual/vtablei.html vtablei :: D -> Tab -> D -> D -> D -> SE () -- | Read vectors (from tables -or arrays of vectors). -- -- This opcode reads vectors from tables at a-rate. -- --
-- vtablea andx, kfn, kinterp, ixmode, aout1 [, aout2, aout3, .... , aoutN ] ---- -- csound doc: http://csound.com/docs/manual/vtablea.html vtablea :: Sig -> Tab -> Sig -> D -> Sig -> SE () -- | Read a vector (several scalars simultaneously) from a table. -- -- This opcode reads vectors from tables at k-rate. -- --
-- vtable1k kfn,kout1 [, kout2, kout3, .... , koutN ] ---- -- csound doc: http://csound.com/docs/manual/vtable1k.html vtable1k :: Tab -> Sig -> SE () -- | Read vectors (from tables -or arrays of vectors). -- -- This opcode reads vectors from tables at k-rate. -- --
-- vtabk kndx, ifn, kout1 [, kout2, kout3, .... , koutN ] ---- -- csound doc: http://csound.com/docs/manual/vtabk.html vtabk :: Sig -> Tab -> Sig -> SE () -- | Read vectors (from tables -or arrays of vectors). -- -- This opcode reads vectors from tables. -- --
-- vtabi indx, ifn, iout1 [, iout2, iout3, .... , ioutN ] ---- -- csound doc: http://csound.com/docs/manual/vtabi.html vtabi :: D -> Tab -> D -> SE () -- | Read vectors (from tables -or arrays of vectors). -- -- This opcode reads vectors from tables at a-rate. -- --
-- vtaba andx, ifn, aout1 [, aout2, aout3, .... , aoutN ] ---- -- csound doc: http://csound.com/docs/manual/vtaba.html vtaba :: Sig -> Tab -> Sig -> SE () -- | Loads a sound file into memory for use by loscilx -- -- sndload loads a sound file into memory for use by loscilx. -- --
-- sndload Sfname[, ifmt[, ichns[, isr[, ibas[, iamp[, istrt \ -- [, ilpmod[, ilps[, ilpe]]]]]]]]] ---- -- csound doc: http://csound.com/docs/manual/sndload.html sndload :: Str -> SE () -- | Fill a string variable with the arguments used to create a function -- table at k-rate. -- -- getftargs writes the arguments used to create a function table to a -- string variable. getftargs runs both at initialization and performance -- time. -- --
-- Sdst getftargs iftno, ktrig ---- -- csound doc: http://csound.com/docs/manual/getftargs.html getftargs :: D -> Sig -> Str -- | Generate a score function table from within the orchestra, which is -- deleted at the end of the note. -- -- Generate a score function table from within the orchestra, which is -- optionally deleted at the end of the note. -- --
-- ifno ftgentmp ip1, ip2dummy, isize, igen, iarga, iargb, ... ---- -- csound doc: http://csound.com/docs/manual/ftgentmp.html ftgentmp :: D -> D -> D -> D -> D -> [D] -> SE Tab -- | Generate a score function table from within the orchestra. -- --
-- gir ftgen ifn, itime, isize, igen, iarga [, iargb ] [...] -- gir ftgen ifn, itime, isize, igen, iarray ---- -- csound doc: http://csound.com/docs/manual/ftgen.html ftgen :: Tab -> D -> D -> D -> D -> SE D -- | Deletes function table. -- --
-- ftfree ifno, iwhen ---- -- csound doc: http://csound.com/docs/manual/ftfree.html ftfree :: Tab -> D -> SE () -- | Convert a string to upper case -- -- Convert Ssrc to upper case, and write the result to Sdst. strupperk -- runs both at init and performance time. -- --
-- Sdst strupperk Ssrc ---- -- csound doc: http://csound.com/docs/manual/strupperk.html strupperk :: Str -> Str -- | Convert a string to upper case -- -- Convert Ssrc to upper case, and write the result to Sdst. strupper -- runs at init time only. -- --
-- Sdst strupper Ssrc ---- -- csound doc: http://csound.com/docs/manual/strupper.html strupper :: Str -> Str -- | Converts a string to a signed integer (k-rate). -- -- Convert a string to a signed integer value at i- or k-rate. It is also -- possible to pass an strset index or a string p-field from the score -- instead of a string argument. If the string cannot be parsed as an -- integer number, an init or perf error occurs and the instrument is -- deactivated. -- --
-- kr strtolk Sstr -- kr strtolk kndx ---- -- csound doc: http://csound.com/docs/manual/strtolk.html strtolk :: Str -> Sig -- | Converts a string to a signed integer (i-rate). -- -- Convert a string to a signed integer value. It is also possible to -- pass an strset index or a string p-field from the score instead of a -- string argument. If the string cannot be parsed as an integer number, -- an init error occurs and the instrument is deactivated. -- --
-- ir strtol Sstr -- ir strtol indx ---- -- csound doc: http://csound.com/docs/manual/strtol.html strtol :: Str -> D -- | Converts a string to a float (k-rate). -- -- Convert a string to a floating point value at i- or k-rate. It is also -- possible to pass an strset index or a string p-field from the score -- instead of a string argument. If the string cannot be parsed as a -- floating point or integer number, an init or perf error occurs and the -- instrument is deactivated. -- --
-- kr strtodk Sstr -- kr strtodk kndx ---- -- csound doc: http://csound.com/docs/manual/strtodk.html strtodk :: Str -> Sig -- | Converts a string to a float (i-rate). -- -- Convert a string to a floating point value. It is also possible to -- pass an strset index or a string p-field from the score instead of a -- string argument. If the string cannot be parsed as a floating point or -- integer number, an init or perf error occurs and the instrument is -- deactivated. -- --
-- ir strtod Sstr -- ir strtod indx ---- -- csound doc: http://csound.com/docs/manual/strtod.html strtod :: Str -> D -- | Convert a string to lower case -- -- Convert Ssrc to lower case, and write the result to Sdst. strlowerk -- runs both at init and performance time. -- --
-- Sdst strlowerk Ssrc ---- -- csound doc: http://csound.com/docs/manual/strlowerk.html strlowerk :: Str -> Str -- | Convert a string to lower case -- -- Convert Ssrc to lower case, and write the result to Sdst. strlower -- runs at init time only. -- --
-- Sdst strlower Ssrc ---- -- csound doc: http://csound.com/docs/manual/strlower.html strlower :: Str -> Str -- | Return the ASCII code of a character in a string -- -- Return the ASCII code of the character in Sstr at kpos (defaults to -- zero which means the first character), or zero if kpos is out of -- range. strchark runs both at init and performance time. -- --
-- kchr strchark Sstr[, kpos] ---- -- csound doc: http://csound.com/docs/manual/strchark.html strchark :: Str -> Sig -- | Return the ASCII code of a character in a string -- -- Return the ASCII code of the character in Sstr at ipos (defaults to -- zero which means the first character), or zero if ipos is out of -- range. strchar runs at init time only. -- --
-- ichr strchar Sstr[, ipos] ---- -- csound doc: http://csound.com/docs/manual/strchar.html strchar :: Str -> D -- | Extract a substring -- -- Return a substring of the source string. strsubk runs both at init and -- performance time. -- --
-- Sdst strsubk Ssrc, kstart, kend ---- -- csound doc: http://csound.com/docs/manual/strsubk.html strsubk :: Str -> Sig -> Sig -> Str -- | Extract a substring -- -- Return a substring of the source string. strsub runs at init time -- only. -- --
-- Sdst strsub Ssrc[, istart[, iend]] ---- -- csound doc: http://csound.com/docs/manual/strsub.html strsub :: Str -> Str -- | Return the position of the last occurence of a string in another -- string -- -- Return the position of the last occurence of S2 in S1, or -1 if not -- found. If S2 is empty, the length of S1 is returned. strrindexk runs -- both at init and performance time. -- --
-- kpos strrindexk S1, S2 ---- -- csound doc: http://csound.com/docs/manual/strrindexk.html strrindexk :: Str -> Str -> Sig -- | Return the position of the last occurence of a string in another -- string -- -- Return the position of the last occurence of S2 in S1, or -1 if not -- found. If S2 is empty, the length of S1 is returned. strrindex runs at -- init time only. -- --
-- ipos strrindex S1, S2 ---- -- csound doc: http://csound.com/docs/manual/strrindex.html strrindex :: Str -> Str -> D -- | Return the length of a string -- -- Return the length of a string, or zero if it is empty. strlenk runs -- both at init and performance time. -- --
-- klen strlenk Sstr ---- -- csound doc: http://csound.com/docs/manual/strlenk.html strlenk :: Str -> Sig -- | Return the length of a string -- -- Return the length of a string, or zero if it is empty. strlen runs at -- init time only. -- --
-- ilen strlen Sstr ---- -- csound doc: http://csound.com/docs/manual/strlen.html strlen :: Str -> D -- | Return the position of the first occurence of a string in another -- string -- -- Return the position of the first occurence of S2 in S1, or -1 if not -- found. If S2 is empty, 0 is returned. strindexk runs both at init and -- performance time. -- --
-- kpos strindexk S1, S2 ---- -- csound doc: http://csound.com/docs/manual/strindexk.html strindexk :: Str -> Str -> Sig -- | Return the position of the first occurence of a string in another -- string -- -- Return the position of the first occurence of S2 in S1, or -1 if not -- found. If S2 is empty, 0 is returned. strindex runs at init time only. -- --
-- ipos strindex S1, S2 ---- -- csound doc: http://csound.com/docs/manual/strindex.html strindex :: Str -> Str -> D -- | Assign value to a string variable (k-rate) -- -- Assign to a string variable by copying the source which may be a -- constant or another string variable. strcpyk does the assignment both -- at initialization and performance time. -- --
-- Sdst strcpyk Ssrc ---- -- csound doc: http://csound.com/docs/manual/strcpyk.html strcpyk :: Str -> Str -- | Assign value to a string variable -- -- Assign to a string variable by copying the source which may be a -- constant or another string variable. strcpy and = copy the string at -- i-time only. -- --
-- Sdst strcpy Ssrc ---- -- csound doc: http://csound.com/docs/manual/strcpy.html strcpy :: Str -> Str -- | Compare strings -- -- Compare strings and set the result to -1, 0, or 1 if the first string -- is less than, equal to, or greater than the second, respectively. -- strcmpk does the comparison both at initialization and performance -- time. -- --
-- kres strcmpk S1, S2 ---- -- csound doc: http://csound.com/docs/manual/strcmpk.html strcmpk :: Str -> Str -> Sig -- | Compare strings -- -- Compare strings and set the result to -1, 0, or 1 if the first string -- is less than, equal to, or greater than the second, respectively. -- strcmp compares at i-time only. -- --
-- ires strcmp S1, S2 ---- -- csound doc: http://csound.com/docs/manual/strcmp.html strcmp :: Str -> Str -> D -- | Concatenate strings (k-rate) -- -- Concatenate two strings and store the result in a variable. strcatk -- does the concatenation both at initialization and performance time. It -- is allowed for any of the input arguments to be the same as the output -- variable. -- --
-- Sdst strcatk Ssrc1, Ssrc2 ---- -- csound doc: http://csound.com/docs/manual/strcatk.html strcatk :: Str -> Str -> Str -- | Concatenate strings -- -- Concatenate two strings and store the result in a variable. strcat -- runs at i-time only. It is allowed for any of the input arguments to -- be the same as the output variable. -- --
-- Sdst strcat Ssrc1, Ssrc2 ---- -- csound doc: http://csound.com/docs/manual/strcat.html strcat :: Str -> Str -> Str -- | printf-style formatted output to a string variable at k-rate. -- -- sprintfk writes printf-style formatted output to a string variable, -- similarly to the C function sprintf(). sprintfk runs both at -- initialization and performance time. -- --
-- Sdst sprintfk Sfmt, xarg1[, xarg2[, ... ]] ---- -- csound doc: http://csound.com/docs/manual/sprintfk.html sprintfk :: Str -> Sig -> Str -- | printf-style formatted output to a string variable. -- -- sprintf write printf-style formatted output to a string variable, -- similarly to the C function sprintf(). sprintf runs at i-time only. -- --
-- Sdst sprintf Sfmt, xarg1[, xarg2[, ... ]] ---- -- csound doc: http://csound.com/docs/manual/sprintf.html sprintf :: Str -> Sig -> Str -- | Print a string constant or variable -- -- puts prints a string with an optional newline at the end whenever the -- trigger signal is positive and changes. -- --
-- puts Sstr, ktrig[, inonl] ---- -- csound doc: http://csound.com/docs/manual/puts.html puts :: Str -> Sig -> SE () -- | Allows a string to be linked with a numeric value. -- --
-- strset iarg, istring ---- -- csound doc: http://csound.com/docs/manual/strset.html strset :: D -> D -> SE () -- | Set string variable to value from strset table or string p-field -- -- strget sets a string variable at initialization time to the value -- stored in strset table at the specified index, or a string p-field -- from the score. If there is no string defined for the index, the -- variable is set to an empty string. -- --
-- Sdst strget indx ---- -- csound doc: http://csound.com/docs/manual/strget.html strget :: D -> Str -- | Set string variable to value read from an URL -- -- strfromurl sets a string variable at initialization time to the value -- found from reading an URL. -- --
-- Sdst strfromurl StringURL ---- -- csound doc: http://csound.com/docs/manual/strfromurl.html strfromurl :: Str -> Str -- | Phase-locked vocoder processing with onset detection/processing, -- 'tempo-scaling'. -- -- temposcal implements phase-locked vocoder processing using function -- tables containing sampled-sound sources, with GEN01, and temposcal -- will accept deferred allocation tables. -- --
-- asig temposcal ktimescal, kamp, kpitch, ktab, klock [,ifftsize, idecim, ithresh] -- ---- -- csound doc: http://csound.com/docs/manual/temposcal.html temposcal :: Sig -> Sig -> Sig -> Tab -> Sig -> Sig -- | Extreme time-stretching algorithm by Nasca Octavian Paul. -- -- The paulstretch opcode is a lightweight implementation of the -- PaulStretch time-stretching algorithm by Nasca Octavian Paul. It is -- ideal for timestretching a signal by very large amounts. -- --
-- asig paulstretch istretch, iwindowsize, ift -- ---- -- csound doc: http://csound.com/docs/manual/paulstretch.html paulstretch :: D -> D -> D -> Sig -- | Phase-locked vocoder processing with onset detection/processing, -- 'tempo-scaling'. -- -- mp3scal implements phase-locked vocoder processing from mp3-format -- disk files, resampling if necessary. -- --
-- asig, asig2, ktime mp3scal Sfile, ktimescal, kpitch, kamp[, iskip, ifftsize, idecim, ilock] -- ---- -- csound doc: http://csound.com/docs/manual/mp3scal.html mp3scal :: Str -> Sig -> Sig -> Sig -> (Sig, Sig, Sig) -- | Phase-locked vocoder processing. -- -- mincer implements phase-locked vocoder processing using function -- tables containing sampled-sound sources, with GEN01, and mincer will -- accept deferred allocation tables. -- --
-- asig mincer atimpt, kamp, kpitch, ktab, klock[,ifftsize,idecim] -- ---- -- csound doc: http://csound.com/docs/manual/mincer.html mincer :: Sig -> Sig -> Sig -> Tab -> Sig -> Sig -- | Phase-locked vocoder processing with onset detection/processing, -- 'tempo-scaling'. -- -- filescal implements phase-locked vocoder processing from disk files, -- resampling if necessary. -- --
-- asig[,asig2] filescal ktimescal, kamp, kpitch, Sfile, klock [,ifftsize, idecim, ithresh] -- ---- -- csound doc: http://csound.com/docs/manual/filescal.html filescal :: Tuple a => Sig -> Sig -> Sig -> Str -> Sig -> a -- | Calculate the spectral centroid of a signal. -- -- Calculate the spectral centroid of an audio signal on a given trigger. -- --
-- kcent centroid asig, ktrig, ifftsize ---- -- csound doc: http://csound.com/docs/manual/centroid.html centroid :: Sig -> Sig -> D -> Sig -- | Imports a set of bandwidth-enhanced partials from a SDIF-format data -- file, applying control-rate frequency, amplitude, and bandwidth -- scaling envelopes, and stores the modified partials in memory. -- -- lorisread imports a set of bandwidth-enhanced partials from a -- SDIF-format data file, applying control-rate frequency, amplitude, and -- bandwidth scaling envelopes, and stores the modified partials in -- memory. -- --
-- lorisread ktimpnt, ifilcod, istoreidx, kfreqenv, kampenv, kbwenv[, ifadetime] ---- -- csound doc: http://csound.com/docs/manual/lorisread.html lorisread :: Sig -> Str -> D -> Sig -> Sig -> Sig -> SE () -- | renders a stored set of bandwidth-enhanced partials using the method -- of Bandwidth-Enhanced Additive Synthesis implemented in the Loris -- software, applying control-rate frequency, amplitude, and bandwidth -- scaling envelopes. -- -- lorisplay renders a stored set of bandwidth-enhanced partials using -- the method of Bandwidth-Enhanced Additive Synthesis implemented in the -- Loris software, applying control-rate frequency, amplitude, and -- bandwidth scaling envelopes. -- --
-- ar lorisplay ireadidx, kfreqenv, kampenv, kbwenv ---- -- csound doc: http://csound.com/docs/manual/lorisplay.html lorisplay :: D -> Sig -> Sig -> Sig -> Sig -- | Morphs two stored sets of bandwidth-enhanced partials and stores a new -- set of partials representing the morphed sound. The morph is performed -- by linearly interpolating the parameter envelopes (frequency, -- amplitude, and bandwidth, or noisiness) of the bandwidth-enhanced -- partials according to control-rate frequency, amplitude, and bandwidth -- morphing functions. -- -- lorismorph morphs two stored sets of bandwidth-enhanced partials and -- stores a new set of partials representing the morphed sound. The morph -- is performed by linearly interpolating the parameter envelopes -- (frequency, amplitude, and bandwidth, or noisiness) of the -- bandwidth-enhanced partials according to control-rate frequency, -- amplitude, and bandwidth morphing functions. -- --
-- lorismorph isrcidx, itgtidx, istoreidx, kfreqmorphenv, kampmorphenv, kbwmorphenv ---- -- csound doc: http://csound.com/docs/manual/lorismorph.html lorismorph :: D -> D -> D -> Sig -> Sig -> Sig -> SE () -- | uses the data from an ATS analysis file to perform resynthesis. -- -- ATSsinnoi reads data from an ATS data file and uses the information to -- synthesize sines and noise together. -- --
-- ar ATSsinnoi ktimepnt, ksinlev, knzlev, kfmod, iatsfile, ipartials \ -- [, ipartialoffset, ipartialincr] ---- -- csound doc: http://csound.com/docs/manual/ATSsinnoi.html atsSinnoi :: Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | reads data from an ATS file. -- -- ATSreadnz returns the energy (kenergy) of a user specified noise band -- (1-25 bands) at the time indicated by the time pointer ktimepnt. -- --
-- kenergy ATSreadnz ktimepnt, iatsfile, iband ---- -- csound doc: http://csound.com/docs/manual/ATSreadnz.html atsReadnz :: Sig -> D -> D -> Sig -- | reads data from an ATS file. -- -- ATSread returns the amplitude (kamp) and frequency (kfreq) information -- of a user specified partial contained in the ATS analysis file at the -- time indicated by the time pointer ktimepnt. -- --
-- kfreq, kamp ATSread ktimepnt, iatsfile, ipartial ---- -- csound doc: http://csound.com/docs/manual/ATSread.html atsRead :: Sig -> D -> D -> (Sig, Sig) -- | returns a frequency, amplitude pair from an ATSbufread opcode. -- -- ATSpartialtap takes a partial number and returns a frequency, -- amplitude pair. The frequency and amplitude data comes from an -- ATSbufread opcode. -- --
-- kfrq, kamp ATSpartialtap ipartialnum ---- -- csound doc: http://csound.com/docs/manual/ATSpartialtap.html atsPartialtap :: D -> (Sig, Sig) -- | allows a user to determine the frequency envelope of any ATSbufread. -- -- ATSinterpread allows a user to determine the frequency envelope of any -- ATSbufread. -- --
-- kamp ATSinterpread kfreq ---- -- csound doc: http://csound.com/docs/manual/ATSinterpread.html atsInterpread :: Sig -> Sig -- | reads data out of the header of an ATS file. -- -- atsinfo reads data out of the header of an ATS file. -- --
-- idata ATSinfo iatsfile, ilocation ---- -- csound doc: http://csound.com/docs/manual/ATSinfo.html atsInfo :: D -> D -> D -- | perform cross synthesis from ATS analysis files. -- -- ATScross uses data from an ATS analysis file and data from an -- ATSbufread to perform cross synthesis. -- --
-- ar ATScross ktimepnt, kfmod, iatsfile, ifn, kmylev, kbuflev, ipartials \ -- [, ipartialoffset, ipartialincr] ---- -- csound doc: http://csound.com/docs/manual/ATScross.html atsCross :: Sig -> Sig -> D -> Tab -> Sig -> Sig -> D -> Sig -- | reads data from and ATS data file and stores it in an internal data -- table of frequency, amplitude pairs. -- -- ATSbufread reads data from and ATS data file and stores it in an -- internal data table of frequency, amplitude pairs. -- --
-- ATSbufread ktimepnt, kfmod, iatsfile, ipartials[, ipartialoffset, \ -- ipartialincr] ---- -- csound doc: http://csound.com/docs/manual/ATSbufread.html atsBufread :: Sig -> Sig -> D -> D -> SE () -- | uses the data from an ATS analysis file to perform noise resynthesis. -- -- ATSaddnz reads from an ATS analysis file and uses the data to perform -- additive synthesis using a modified randi function. -- --
-- ar ATSaddnz ktimepnt, iatsfile, ibands[, ibandoffset, ibandincr] ---- -- csound doc: http://csound.com/docs/manual/ATSaddnz.html atsAddnz :: Sig -> D -> D -> Sig -- | uses the data from an ATS analysis file to perform additive synthesis. -- -- ATSadd reads from an ATS analysis file and uses the data to perform -- additive synthesis using an internal array of interpolating -- oscillators. -- --
-- ar ATSadd ktimepnt, kfmod, iatsfile, ifn, ipartials[, ipartialoffset, \ -- ipartialincr, igatefn] ---- -- csound doc: http://csound.com/docs/manual/ATSadd.html atsAdd :: Sig -> Sig -> D -> Tab -> D -> Sig -- | Streaming partial track frequency splitting. -- -- The trsplit opcode takes an input containg a TRACKS pv streaming -- signal (as generated, for instance by partials) and splits it into two -- signals according to a k-rate frequency 'split point'. The first -- output will contain all tracks up from 0Hz to the split frequency and -- the second will contain the tracks from the split frequency up to the -- Nyquist. It can also, optionally, scale the gain of the output signals -- by a k-rate amount (default 1). The result is two output signals -- containing only part of the original spectrum. -- --
-- fsiglow, fsighi trsplit fin, ksplit[, kgainlow, kgainhigh] ---- -- csound doc: http://csound.com/docs/manual/trsplit.html trsplit :: Spec -> Sig -> (Spec, Spec) -- | Streaming partial track frequency scaling. -- -- The trshift opcode takes an input containg a TRACKS pv streaming -- signal (as generated, for instance by partials) and shifts all -- frequencies by a k-rate frequency. It can also, optionally, scale the -- gain of the signal by a k-rate amount (default 1). The result is -- frequency shifting of the input tracks. -- --
-- fsig trshift fin, kpshift[, kgain] ---- -- csound doc: http://csound.com/docs/manual/trshift.html trshift :: Spec -> Sig -> Spec -- | Streaming partial track frequency scaling. -- -- The trscale opcode takes an input containg a TRACKS pv streaming -- signal (as generated, for instance by partials) and scales all -- frequencies by a k-rate amount. It can also, optionally, scale the -- gain of the signal by a k-rate amount (default 1). The result is pitch -- shifting of the input tracks. -- --
-- fsig trscale fin, kpitch[, kgain] ---- -- csound doc: http://csound.com/docs/manual/trscale.html trscale :: Spec -> Sig -> Spec -- | Streaming partial track mixing. -- -- The trmix opcode takes two inputs containg TRACKS pv streaming signals -- (as generated, for instance by partials) and mixes them into a single -- TRACKS stream. Tracks will be mixed up to the available space (defined -- by the original number of FFT bins in the analysed signals). If the -- sum of the input tracks exceeds this space, the higher-ordered tracks -- in the second input will be pruned. -- --
-- fsig trmix fin1, fin2 ---- -- csound doc: http://csound.com/docs/manual/trmix.html trmix :: Spec -> Spec -> Spec -- | Extracts the lowest-frequency track from a streaming track input -- signal. -- -- The trlowest opcode takes an input containg TRACKS pv streaming -- signals (as generated, for instance by partials) and outputs only the -- lowest track. In addition it outputs two k-rate signals, corresponding -- to the frequency and amplitude of the lowest track signal. -- --
-- fsig, kfr, kamp trlowest fin1, kscal ---- -- csound doc: http://csound.com/docs/manual/trlowest.html trlowest :: Spec -> Sig -> (Spec, Sig, Sig) -- | Extracts the highest-frequency track from a streaming track input -- signal. -- -- The trhighest opcode takes an input containg TRACKS pv streaming -- signals (as generated, for instance by partials) and outputs only the -- highest track. In addition it outputs two k-rate signals, -- corresponding to the frequency and amplitude of the highest track -- signal. -- --
-- fsig, kfr, kamp trhighest fin1, kscal ---- -- csound doc: http://csound.com/docs/manual/trhighest.html trhighest :: Spec -> Sig -> (Spec, Sig, Sig) -- | Streaming partial track filtering. -- -- The trfilter opcode takes an input containg a TRACKS pv streaming -- signal (as generated, for instance by partials) and filters it using -- an amplitude response curve stored in a function table. The function -- table can have any size (no restriction to powers-of-two). The table -- lookup is done by linear-interpolation. It is possible to create -- time-varying filter curves by updating the amlitude response table -- with a table-writing opcode. -- --
-- fsig trfilter fin, kamnt, ifn ---- -- csound doc: http://csound.com/docs/manual/trfilter.html trfilter :: Spec -> Sig -> Tab -> Spec -- | Streaming partial track cross-synthesis. -- -- The trcross opcode takes two inputs containg TRACKS pv streaming -- signals (as generated, for instance by partials) and cross-synthesises -- them into a single TRACKS stream. Two different modes of operation are -- used: mode 0, cross-synthesis by multiplication of the amplitudes of -- the two inputs and mode 1, cross-synthesis by the substititution of -- the amplitudes of input 1 by the input 2. Frequencies and phases of -- input 1 are preserved in the output. The cross-synthesis is done by -- matching tracks between the two inputs using a 'search interval'. The -- matching algorithm will look for tracks in the second input that are -- within the search interval around each track in the first input. This -- interval can be changed at the control rate. Wider search intervals -- will find more matches. -- --
-- fsig trcross fin1, fin2, ksearch, kdepth [, kmode] ---- -- csound doc: http://csound.com/docs/manual/trcross.html trcross :: Spec -> Spec -> Sig -> Sig -> Spec -- | Streaming partial track additive synthesis -- -- The tradsyn opcode takes an input containg a TRACKS pv streaming -- signal (as generated, for instance by partials),as described in -- Lazzarini et al, "Time-stretching using the Instantaneous Frequency -- Distribution and Partial Tracking", Proc.of ICMC05, Barcelona. It -- resynthesises the signal using linear amplitude and frequency -- interpolation to drive a bank of interpolating oscillators with -- amplitude and pitch scaling controls. -- --
-- asig tradsyn fin, kscal, kpitch, kmaxtracks, ifn ---- -- csound doc: http://csound.com/docs/manual/tradsyn.html tradsyn :: Spec -> Sig -> Sig -> Sig -> Tab -> Sig -- | Instantaneous Frequency Distribution, magnitude and phase analysis. -- -- The tabifd opcode takes an input function table and performs an -- Instantaneous Frequency, magnitude and phase analysis, using the STFT -- and tabifd (Instantaneous Frequency Distribution), as described in -- Lazzarini et al, "Time-stretching using the Instantaneous Frequency -- Distribution and Partial Tracking", Proc.of ICMC05, Barcelona. It -- generates two PV streaming signals, one containing the amplitudes and -- frequencies (a similar output to pvsanal) and another containing -- amplitudes and unwrapped phases. -- --
-- ffr,fphs tabifd ktimpt, kamp, kpitch, ifftsize, ihopsize, iwintype,ifn ---- -- csound doc: http://csound.com/docs/manual/tabifd.html tabifd :: Sig -> Sig -> Sig -> D -> D -> D -> Tab -> (Spec, Spec) -- | Streaming partial track additive synthesis with cubic phase -- interpolation -- -- The sinsyn opcode takes an input containg a TRACKS pv streaming signal -- (as generated, for instance by the partials opcode). It resynthesises -- the signal using linear amplitude and cubic phase interpolation to -- drive a bank of interpolating oscillators with amplitude scaling -- control. sinsyn attempts to preserve the phase of the partials in the -- original signal and in so doing it does not allow for pitch or -- timescale modifications of the signal. -- --
-- asig sinsyn fin, kscal, kmaxtracks, ifn ---- -- csound doc: http://csound.com/docs/manual/sinsyn.html sinsyn :: Spec -> Sig -> Sig -> Tab -> Sig -- | Streaming partial track additive synthesis with cubic phase -- interpolation with pitch control and support for timescale-modified -- input -- -- The resyn opcode takes an input containg a TRACKS pv streaming signal -- (as generated, for instance by partials). It resynthesises the signal -- using linear amplitude and cubic phase interpolation to drive a bank -- of interpolating oscillators with amplitude and pitch scaling -- controls. Resyn is a modified version of sinsyn, allowing for the -- resynthesis of data with pitch and timescale changes. -- --
-- asig resyn fin, kscal, kpitch, kmaxtracks, ifn ---- -- csound doc: http://csound.com/docs/manual/resyn.html resyn :: Spec -> Sig -> Sig -> Sig -> Tab -> Sig -- | Resynthesise using a FFT overlap-add. -- -- Resynthesise phase vocoder data (f-signal) using a FFT overlap-add. -- --
-- ares pvsynth fsrc, [iinit] ---- -- csound doc: http://csound.com/docs/manual/pvsynth.html pvsynth :: Spec -> Sig -- | Warp the spectral envelope of a PVS signal -- -- Warp the spectral envelope of a PVS signal by means of shifting and -- scaling. -- --
-- fsig pvswarp fsigin, kscal, kshift[, klowest, kmeth, kgain, kcoefs] ---- -- csound doc: http://csound.com/docs/manual/pvswarp.html pvswarp :: Spec -> Sig -> Sig -> Spec -- | Combine the spectral envelope of one fsig with the excitation -- (frequencies) of another. -- -- This opcode provides support for cross-synthesis of amplitudes and -- frequencies. It takes the amplitudes of one input fsig and combines -- with frequencies from another. It is a spectral version of the -- well-known channel vocoder. -- --
-- fsig pvsvoc famp, fexc, kdepth, kgain [,kcoefs] ---- -- csound doc: http://csound.com/docs/manual/pvsvoc.html pvsvoc :: Spec -> Spec -> Sig -> Sig -> Spec -- | Retain only the N loudest bins. -- -- Process a PV stream by retaining only the N bins with the highest -- amplitude, zeroing the others. -- --
-- fsig pvstrace fsigin, kn ---- -- csound doc: http://csound.com/docs/manual/pvstrace.html pvstrace :: Spec -> Sig -> Spec -- | Transforms a pvoc stream according to a masking function table. -- -- Transforms a pvoc stream according to a masking function table; if the -- pvoc stream amplitude falls below the value of the function for a -- specific pvoc channel, it applies a gain to that channel. -- --
-- fsig pvstencil fsigin, kgain, klevel, iftable ---- -- csound doc: http://csound.com/docs/manual/pvstencil.html pvstencil :: Spec -> Sig -> Sig -> D -> Spec -- | Phase vocoder analysis processing with onset detection/processing. -- -- pvstanal implements phase vocoder analysis by reading function tables -- containing sampled-sound sources, with GEN01, and pvstanal will accept -- deferred allocation tables. -- --
-- fsig pvstanal ktimescal, kamp, kpitch, ktab, [kdetect, kwrap, ioffset,ifftsize, ihop, idbthresh] -- ---- -- csound doc: http://csound.com/docs/manual/pvstanal.html pvstanal :: Sig -> Sig -> Sig -> Tab -> Spec -- | Track the pitch and amplitude of a PVS signal. -- -- Track the pitch and amplitude of a PVS signal as k-rate variables. -- --
-- kfr, kamp pvspitch fsig, kthresh ---- -- csound doc: http://csound.com/docs/manual/pvspitch.html pvspitch :: Spec -> Sig -> (Sig, Sig) -- | Write a fsig to the pvs output bus. -- -- This opcode writes a fsig to a channel of the pvs output bus. Note -- that the pvs out bus and the pvs in bus are separate and independent. -- A new channel is created if non-existent. -- --
-- pvsout fsig, kchan ---- -- csound doc: http://csound.com/docs/manual/pvsout.html pvsout :: Spec -> Sig -> SE () -- | PVS-based oscillator simulator. -- -- Generates periodic signal spectra in AMP-FREQ format, with the option -- of four wave types: -- --
-- fsig pvsosc kamp, kfreq, ktype, isize [,ioverlap] [, iwinsize] [, iwintype] [, iformat] ---- -- csound doc: http://csound.com/docs/manual/pvsosc.html pvsosc :: Sig -> Sig -> Sig -> D -> Spec -- | Performs morphing (or interpolation) between two source fsigs. -- -- Performs morphing (or interpolation) between two source fsigs. -- --
-- fsig pvsmorph fsig1, fsig2, kampint, kfrqint ---- -- csound doc: http://csound.com/docs/manual/pvsmorph.html pvsmorph :: Spec -> Spec -> Sig -> Sig -> Spec -- | Smooth the amplitude and frequency time functions of a pv stream using -- parallel 1st order lowpass IIR filters with time-varying cutoff -- frequency. -- -- Smooth the amplitude and frequency time functions of a pv stream using -- a 1st order lowpass IIR with time-varying cutoff frequency. This -- opcode uses the same filter as the tone opcode, but this time acting -- separately on the amplitude and frequency time functions that make up -- a pv stream. The cutoff frequency parameter runs at the control-rate, -- but unlike tone and tonek, it is not specified in Hz, but as fractions -- of 1/2 frame-rate (actually the pv stream sampling rate), which is -- easier to understand. This means that the highest cutoff frequency is -- 1 and the lowest 0; the lower the frequency the smoother the functions -- and more pronounced the effect will be. -- --
-- fsig pvsmooth fsigin, kacf, kfcf ---- -- csound doc: http://csound.com/docs/manual/pvsmooth.html pvsmooth :: Spec -> Sig -> Sig -> Spec -- | Mix seamlessly two pv signals. -- -- Mix seamlessly two pv signals. This opcode combines the most -- prominent components of two pvoc streams into a single mixed stream. -- --
-- fsig pvsmix fsigin1, fsigin2 ---- -- csound doc: http://csound.com/docs/manual/pvsmix.html pvsmix :: Spec -> Spec -> Spec -- | Modify amplitudes using a function table, with dynamic scaling. -- -- Modify amplitudes of fsrc using function table, with dynamic scaling. -- --
-- fsig pvsmaska fsrc, ifn, kdepth ---- -- csound doc: http://csound.com/docs/manual/pvsmaska.html pvsmaska :: Spec -> Tab -> Sig -> Spec -- | Frequency lock an input fsig -- -- This opcode searches for spectral peaks and then locks the frequencies -- around those peaks. This is similar to phase-locking in non-streaming -- PV processing. It can be used to improve timestretching and -- pitch-shifting quality in PV processing. -- --
-- fsig pvslock fsigin, klock ---- -- csound doc: http://csound.com/docs/manual/pvslock.html pvslock :: Spec -> Sig -> Spec -- | Initialise a spectral (f) variable to zero. -- -- Performs the equivalent to an init operation on an f-variable. -- --
-- fsig pvsinit isize[, iolap, iwinsize, iwintype, iformat] ---- -- csound doc: http://csound.com/docs/manual/pvsinit.html pvsinit :: D -> Spec -- | Get information from a PVOC-EX formatted source. -- -- Get format information about fsrc, whether created by an opcode such -- as pvsanal, or obtained from a PVOCEX file by pvsfread. This -- information is available at init time, and can be used to set -- parameters for other pvs opcodes, and in particular for creating -- function tables (e.g. for pvsftw), or setting the number of -- oscillators for pvsadsyn. -- --
-- ioverlap, inumbins, iwinsize, iformat pvsinfo fsrc ---- -- csound doc: http://csound.com/docs/manual/pvsinfo.html pvsinfo :: Spec -> (D, D, D, D) -- | Retrieve an fsig from the input software bus; a pvs equivalent to -- chani. -- -- This opcode retrieves an f-sig from the pvs in software bus, which can -- be used to get data from an external source, using the Csound 5 API. A -- channel is created if not already existing. The fsig channel is in -- that case initialised with the given parameters. It is important to -- note that the pvs input and output (pvsout opcode) busses are -- independent and data is not shared between them. -- --
-- fsig pvsin kchan[, isize, iolap, iwinsize, iwintype, iformat] ---- -- csound doc: http://csound.com/docs/manual/pvsin.html pvsin :: Sig -> Spec -- | Instantaneous Frequency Distribution, magnitude and phase analysis. -- -- The pvsifd opcode takes an input a-rate signal and performs an -- Instantaneous Frequency, magnitude and phase analysis, using the STFT -- and pvsifd (Instantaneous Frequency Distribution), as described in -- Lazzarini et al, "Time-stretching using the Instantaneous Frequency -- Distribution and Partial Tracking", Proc.of ICMC05, Barcelona. It -- generates two PV streaming signals, one containing the amplitudes and -- frequencies (a similar output to pvsanal) and another containing -- amplitudes and unwrapped phases. -- --
-- ffr,fphs pvsifd ain, ifftsize, ihopsize, iwintype[,iscal] ---- -- csound doc: http://csound.com/docs/manual/pvsifd.html pvsifd :: Sig -> D -> D -> D -> (Spec, Spec) -- | Shift the frequency components of a pv stream, stretching/compressing -- its spectrum. -- --
-- fsig pvshift fsigin, kshift, klowest[, kkeepform, igain, kcoefs] ---- -- csound doc: http://csound.com/docs/manual/pvshift.html pvshift :: Spec -> Sig -> Sig -> Spec -- | Scale the amplitude of a pv stream. -- --
-- fsig pvsgain fsigin, kgain ---- -- csound doc: http://csound.com/docs/manual/pvsgain.html pvsgain :: Spec -> Sig -> Spec -- | Write a fsig to a PVOCEX file. -- -- This opcode writes a fsig to a PVOCEX file (which in turn can be read -- by pvsfread or other programs that support PVOCEX file input). -- --
-- pvsfwrite fsig, ifile ---- -- csound doc: http://csound.com/docs/manual/pvsfwrite.html pvsfwrite :: Spec -> Str -> SE () -- | Writes amplitude and/or frequency data to function tables. -- --
-- kflag pvsftw fsrc, ifna [, ifnf] ---- -- csound doc: http://csound.com/docs/manual/pvsftw.html pvsftw :: Spec -> Tab -> Sig -- | Reads amplitude and/or frequency data from function tables. -- --
-- pvsftr fsrc, ifna [, ifnf] ---- -- csound doc: http://csound.com/docs/manual/pvsftr.html pvsftr :: Spec -> Tab -> SE () -- | Freeze the amplitude and frequency time functions of a pv stream -- according to a control-rate trigger. -- -- This opcodes freezes the evolution of pvs stream by locking -- into steady amplitude and/or frequency values for each bin. The -- freezing is controlled, independently for amplitudes and frequencies, -- by a control-rate trigger, which switches the freezing on if -- equal to or above 1 and off if below 1. -- --
-- fsig pvsfreeze fsigin, kfreeza, kfreezf ---- -- csound doc: http://csound.com/docs/manual/pvsfreeze.html pvsfreeze :: Spec -> Sig -> Sig -> Spec -- | Read a selected channel from a PVOC-EX analysis file. -- -- Create an fsig stream by reading a selected channel from a PVOC-EX -- analysis file loaded into memory, with frame interpolation. Only -- format 0 files (amplitude+frequency) are currently supported. The -- operation of this opcode mirrors that of pvoc, but outputs an fsig -- instead of a resynthesized signal. -- --
-- fsig pvsfread ktimpt, ifn [, ichan] ---- -- csound doc: http://csound.com/docs/manual/pvsfread.html pvsfread :: Sig -> Tab -> Spec -- | Multiply amplitudes of a pvoc stream by those of a second pvoc stream, -- with dynamic scaling. -- --
-- fsig pvsfilter fsigin, fsigfil, kdepth[, igain] ---- -- csound doc: http://csound.com/docs/manual/pvsfilter.html pvsfilter :: Spec -> Spec -> Sig -> Spec -- | Displays a PVS signal as an amplitude vs. freq graph. -- -- This opcode will display a PVS signal fsig. Uses X11 or FLTK windows -- if enabled, else (or if -g flag is set) displays are approximated in -- ASCII characters. -- --
-- pvsdisp fsig[, ibins, iwtflg] ---- -- csound doc: http://csound.com/docs/manual/pvsdisp.html pvsdisp :: Spec -> SE () -- | Read a selected channel from a PVOC-EX analysis file. -- -- Create an fsig stream by reading a selected channel from a PVOC-EX -- analysis file, with frame interpolation. -- --
-- fsig pvsdiskin SFname,ktscal,kgain[,ioffset, ichan] ---- -- csound doc: http://csound.com/docs/manual/pvsdiskin.html pvsdiskin :: Str -> Sig -> Sig -> Spec -- | Spectral azimuth-based de-mixing of stereo sources. -- -- Spectral azimuth-based de-mixing of stereo sources, with a -- reverse-panning result. This opcode implements the Azimuth -- Discrimination and Resynthesis (ADRess) algorithm, developed by Dan -- Barry (Barry et Al. "Sound Source Separation Azimuth Discrimination -- and Resynthesis". DAFx'04, Univ. of Napoli). The source separation, or -- de-mixing, is controlled by two parameters: an azimuth position (kpos) -- and a subspace width (kwidth). The first one is used to locate the -- spectral peaks of individual sources on a stereo mix, whereas the -- second widens the 'search space', including/exclufing the peaks around -- kpos. These two parameters can be used interactively to extract source -- sounds from a stereo mix. The algorithm is particularly successful -- with studio recordings where individual instruments occupy individual -- panning positions; it is, in fact, a reverse-panning algorithm. -- --
-- fsig pvsdemix fleft, fright, kpos, kwidth, ipoints ---- -- csound doc: http://csound.com/docs/manual/pvsdemix.html pvsdemix :: Spec -> Spec -> Sig -> Sig -> D -> Spec -- | Performs cross-synthesis between two source fsigs. -- --
-- fsig pvscross fsrc, fdest, kamp1, kamp2 ---- -- csound doc: http://csound.com/docs/manual/pvscross.html pvscross :: Spec -> Spec -> Sig -> Sig -> Spec -- | Calculate the cepstrum of a pvs input, optionally liftering -- coefficients. pvsceps :: Spec -> Sig -- | Calculate the spectral centroid of a signal. -- -- Calculate the spectral centroid of a signal from its discrete Fourier -- transform. -- --
-- kcent pvscent fsig ---- -- csound doc: http://csound.com/docs/manual/pvscent.html pvscent :: Spec -> Sig -- | Scale the frequency components of a pv stream. -- -- Scale the frequency components of a pv stream, resulting in pitch -- shift. Output amplitudes can be optionally modified in order to -- attempt formant preservation. -- --
-- fsig pvscale fsigin, kscal[, kkeepform, kgain, kcoefs] ---- -- csound doc: http://csound.com/docs/manual/pvscale.html pvscale :: Spec -> Sig -> Spec -- | This opcode reads a circular buffer of f-signals (streaming PV -- signals), with binwise additional delays. -- -- This opcode reads from a circular buffer of length ilen (secs), taking -- a handle for the buffer and a time pointer, which holds the current -- read position (also in seconds). It is used in conjunction with a -- pvsbuffer opocde. Reading is circular, wrapping around at the end of -- the buffer. Extra delay times are taken from a function table, with -- each point on it defining a delay time in seconds affecting the -- corresponding bin. -- --
-- fsig pvsbufread2 ktime, khandle, ift1, ift2 ---- -- csound doc: http://csound.com/docs/manual/pvsbufread2.html pvsbufread2 :: Sig -> Sig -> D -> D -> Spec -- | This opcode reads a circular buffer of f-signals (streaming PV -- signals). -- -- This opcode reads from a circular buffer of length ilen (secs), taking -- a handle for the buffer and a time pointer, which holds the current -- read position (also in seconds). It is used in conjunction with a -- pvsbuffer opocde. Reading is circular, wrapping around at the end of -- the buffer. -- --
-- fsig pvsbufread ktime, khandle[, ilo, ihi, iclear] ---- -- csound doc: http://csound.com/docs/manual/pvsbufread.html pvsbufread :: Sig -> Sig -> Spec -- | This opcode creates and writes to a circular buffer for f-signals -- (streaming PV signals). -- -- This opcode sets up and writes to a circular buffer of length ilen -- (secs), giving a handle for the buffer and a time pointer, which holds -- the current write position (also in seconds). It can be used with one -- or more pvsbufread opcodes. Writing is circular, wrapping around at -- the end of the buffer. -- --
-- ihandle, ktime pvsbuffer fsig, ilen ---- -- csound doc: http://csound.com/docs/manual/pvsbuffer.html pvsbuffer :: Spec -> D -> (D, Sig) -- | Average the amp/freq time functions of each analysis channel for a -- specified time. -- -- Average the amp/freq time functions of each analysis channel for a -- specified time (truncated to number of frames). As a side-effect the -- input pvoc stream will be delayed by that amount. -- --
-- fsig pvsblur fsigin, kblurtime, imaxdel ---- -- csound doc: http://csound.com/docs/manual/pvsblur.html pvsblur :: Spec -> Sig -> D -> Spec -- | Obtain the amp and freq values off a PVS signal bin. -- -- Obtain the amp and freq values off a PVS signal bin as k-rate -- variables. -- --
-- kamp, kfr pvsbin fsig, kbin ---- -- csound doc: http://csound.com/docs/manual/pvsbin.html pvsbin :: Spec -> Sig -> (Sig, Sig) -- | A band reject filter working in the spectral domain. -- -- Filter the pvoc frames, rejecting bins whose frequency is within a -- band, and with linear interpolation for transitional bands. -- --
-- fsig pvsbandr fsigin, xlowcut, xlowfull, \ -- xhighfull, xhighcut[, ktype] ---- -- csound doc: http://csound.com/docs/manual/pvsbandr.html pvsbandr :: Spec -> Sig -> Sig -> Sig -> Sig -> Spec -- | A band pass filter working in the spectral domain. -- -- Filter the pvoc frames, passing bins whose frequency is within a band, -- and with linear interpolation for transitional bands. -- --
-- fsig pvsbandp fsigin, xlowcut, xlowfull, \ -- xhighfull, xhighcut[, ktype] ---- -- csound doc: http://csound.com/docs/manual/pvsbandp.html pvsbandp :: Spec -> Sig -> Sig -> Sig -> Sig -> Spec -- | Arpeggiate the spectral components of a streaming pv signal. -- -- This opcode arpeggiates spectral components, by amplifying one bin and -- attenuating all the others around it. Used with an LFO it will provide -- a spectral arpeggiator similar to Trevor Wishart's CDP program -- specarp. -- --
-- fsig pvsarp fsigin, kbin, kdepth, kgain ---- -- csound doc: http://csound.com/docs/manual/pvsarp.html pvsarp :: Spec -> Sig -> Sig -> Sig -> Spec -- | Generate an fsig from a mono audio source ain, using phase vocoder -- overlap-add analysis. -- --
-- fsig pvsanal ain, ifftsize, ioverlap, iwinsize, iwintype [, iformat] [, iinit] ---- -- csound doc: http://csound.com/docs/manual/pvsanal.html pvsanal :: Sig -> D -> D -> D -> D -> Spec -- | Resynthesize using a fast oscillator-bank. -- --
-- ares pvsadsyn fsrc, inoscs, kfmod [, ibinoffset] [, ibinincr] [, iinit] ---- -- csound doc: http://csound.com/docs/manual/pvsadsyn.html pvsadsyn :: Spec -> D -> Sig -> Sig -- | Partial track spectral analysis. -- -- The partials opcode takes two input PV streaming signals containg -- AMP_FREQ and AMP_PHASE signals (as generated for instance by pvsifd or -- in the first case, by pvsanal) and performs partial track analysis, as -- described in Lazzarini et al, "Time-stretching using the Instantaneous -- Frequency Distribution and Partial Tracking", Proc.of ICMC05, -- Barcelona. It generates a TRACKS PV streaming signal, containing -- amplitude, frequency, phase and track ID for each output track. This -- type of signal will contain a variable number of output tracks, up to -- the total number of analysis bins contained in the inputs (fftsize/2 + -- 1 bins). The second input (AMP_PHASE) is optional, as it can take the -- same signal as the first input. In this case, however, all phase -- information will be NULL and resynthesis using phase information -- cannot be performed. -- --
-- ftrks partials ffr, fphs, kthresh, kminpts, kmaxgap, imaxtracks ---- -- csound doc: http://csound.com/docs/manual/partials.html partials :: Spec -> Spec -> Sig -> Sig -> Sig -> D -> Spec -- | Synthesis by additive synthesis and inverse FFT. Experimental and only -- available as source code at the moment. -- -- Synthesis by additive synthesis and inverse FFT. -- --
-- asig cudasynth kamp, kfreq, itab, iftab, iatab[, inum] -- asig cudasynth fsig, kamp, kfreq[, inum] -- asig cudasynth fsig ---- -- csound doc: http://csound.com/docs/manual/cudasynth.html cudasynth :: Sig -> Sig -> Tab -> D -> D -> Sig -- | Perform sliding phase vocoder algorithm with simplified -- transformational FM using GPU hardware. Experimental and only -- available as source code at the moment. -- -- Perform sliding phase vocoder algorithm with simplified -- transformational FM using GPU hardware. -- --
-- asig cudasliding ain, amod, iwinsize ---- -- csound doc: http://csound.com/docs/manual/cudasliding.html cudasliding :: Sig -> Sig -> D -> Sig -- | Generate an fsig from a mono audio source ain, using phase vocoder -- overlap-add analysis and GPU hardware. Experimental and only available -- as source code at the moment. -- -- Generate an fsig from a mono audio source ain, using phase vocoder -- overlap-add analysis and GPU hardware. -- --
-- fsig cudanal ain, ifftsize, ioverlap, iwinsize, iwintype [, iformat] [, iinit] ---- -- csound doc: http://csound.com/docs/manual/cudanal.html cudanal :: Sig -> D -> D -> D -> D -> Spec -- | PVS tracks to amplitude+frequency conversion. -- -- The binit opcode takes an input containg a TRACKS pv streaming signal -- (as generated, for instance by partials) and converts it into a -- equal-bandwidth bin-frame containing amplitude and frequency pairs -- (PVS_AMP_FREQ), suitable for overlap-add resynthesis (such as -- performed by pvsynth) or further PVS streaming phase vocoder signal -- transformations. For each frequency bin, it will look for a suitable -- track signal to fill it; if not found, the bin will be empty (0 -- amplitude). If more than one track fits a certain bin, the one with -- highest amplitude will be chosen. This means that not all of the input -- signal is actually binned, the operation is lossy. However, -- in many situations this loss is not perceptually relevant. -- --
-- fsig binit fin, isize ---- -- csound doc: http://csound.com/docs/manual/binit.html binit :: Spec -> D -> Spec -- | Generate a constant-Q, exponentially-spaced DFT. -- -- Generate a constant-Q, exponentially-spaced DFT across all octaves of -- a multiply-downsampled control or audio input signal. -- --
-- wsig spectrum xsig, iprd, iocts, ifrqa [, iq] [, ihann] [, idbout] \ -- [, idsprd] [, idsinrs] ---- -- csound doc: http://csound.com/docs/manual/spectrum.html spectrum :: Sig -> D -> D -> D -> Wspec -- | Sums the magnitudes across all channels of the spectrum. -- --
-- ksum specsum wsig [, interp] ---- -- csound doc: http://csound.com/docs/manual/specsum.html specsum :: Wspec -> Sig -- | Scales an input spectral datablock with spectral envelopes. -- --
-- wsig specscal wsigin, ifscale, ifthresh ---- -- csound doc: http://csound.com/docs/manual/specscal.html specscal :: Wspec -> D -> D -> Wspec -- | Estimates the pitch of the most prominent complex tone in the -- spectrum. -- -- Estimate the pitch of the most prominent complex tone in the spectrum. -- --
-- koct, kamp specptrk wsig, kvar, ilo, ihi, istr, idbthresh, inptls, \ -- irolloff [, iodd] [, iconfs] [, interp] [, ifprd] [, iwtflg] ---- -- csound doc: http://csound.com/docs/manual/specptrk.html specptrk :: Wspec -> Sig -> D -> D -> D -> D -> D -> D -> (Sig, Sig) -- | Accumulates the values of successive spectral frames. -- --
-- wsig spechist wsigin ---- -- csound doc: http://csound.com/docs/manual/spechist.html spechist :: Wspec -> Wspec -- | Filters each channel of an input spectrum. -- --
-- wsig specfilt wsigin, ifhtim ---- -- csound doc: http://csound.com/docs/manual/specfilt.html specfilt :: Wspec -> D -> Wspec -- | Displays the magnitude values of the spectrum. -- --
-- specdisp wsig, iprd [, iwtflg] ---- -- csound doc: http://csound.com/docs/manual/specdisp.html specdisp :: Wspec -> D -> SE () -- | Finds the positive difference values between consecutive spectral -- frames. -- --
-- wsig specdiff wsigin ---- -- csound doc: http://csound.com/docs/manual/specdiff.html specdiff :: Wspec -> Wspec -- | Perform a weighted add of two input spectra. -- --
-- wsig specaddm wsig1, wsig2 [, imul2] ---- -- csound doc: http://csound.com/docs/manual/specaddm.html specaddm :: Wspec -> Wspec -> Wspec -- | Selects the slot to be use by further lp opcodes. -- --
-- lpslot islot ---- -- csound doc: http://csound.com/docs/manual/lpslot.html lpslot :: D -> SE () -- | Resynthesises a signal from the data passed internally by a previous -- lpread. -- --
-- ares lpreson asig ---- -- csound doc: http://csound.com/docs/manual/lpreson.html lpreson :: Sig -> Sig -- | Reads a control file of time-ordered information frames. -- --
-- krmsr, krmso, kerr, kcps lpread ktimpnt, ifilcod [, inpoles] [, ifrmrate] ---- -- csound doc: http://csound.com/docs/manual/lpread.html lpread :: Sig -> Str -> (Sig, Sig, Sig, Sig) -- | Computes a new set of poles from the interpolation between two -- analysis. -- --
-- lpinterp islot1, islot2, kmix ---- -- csound doc: http://csound.com/docs/manual/lpinterp.html lpinterp :: D -> D -> Sig -> SE () -- | Resynthesises a signal from the data passed internally by a previous -- lpread, applying formant shifting. -- --
-- ares lpfreson asig, kfrqratio ---- -- csound doc: http://csound.com/docs/manual/lpfreson.html lpfreson :: Sig -> Sig -> Sig -- | Implements signal reconstruction using an fft-based phase vocoder and -- an extra envelope. -- --
-- ares vpvoc ktimpnt, kfmod, ifile [, ispecwp] [, ifn] ---- -- csound doc: http://csound.com/docs/manual/vpvoc.html vpvoc :: Sig -> Sig -> Str -> Sig -- | Creates a new function table by making exponential segments between -- values in stored function tables. -- -- tablexseg is like expseg but interpolate between values in a stored -- function tables. The result is a new function table passed internally -- to any following vpvoc which occurs before a subsequent tablexseg -- (much like lpread/lpreson pairs work). The uses of these are described -- below under vpvoc. -- --
-- tablexseg ifn1, idur1, ifn2 [, idur2] [, ifn3] [...] ---- -- csound doc: http://csound.com/docs/manual/tablexseg.html tablexseg :: Tab -> D -> Tab -> SE () -- | Creates a new function table by making linear segments between values -- in stored function tables. -- -- tableseg is like linseg but interpolate between values in a stored -- function tables. The result is a new function table passed internally -- to any following vpvoc which occurs before a subsequent tableseg (much -- like lpread/lpreson pairs work). The uses of these are described below -- under vpvoc. -- --
-- tableseg ifn1, idur1, ifn2 [, idur2] [, ifn3] [...] ---- -- csound doc: http://csound.com/docs/manual/tableseg.html tableseg :: Tab -> D -> Tab -> SE () -- | Reads from a phase vocoder analysis file and returns the frequency and -- amplitude from a single analysis channel or bin. -- -- pvread reads from a pvoc file and returns the frequency and amplitude -- from a single analysis channel or bin. The returned values can be used -- anywhere else in the Csound instrument. For example, one can use them -- as arguments to an oscillator to synthesize a single component from an -- analyzed signal or a bank of pvreads can be used to resynthesize the -- analyzed sound using additive synthesis by passing the frequency and -- magnitude values to a bank of oscillators. -- --
-- kfreq, kamp pvread ktimpnt, ifile, ibin ---- -- csound doc: http://csound.com/docs/manual/pvread.html pvread :: Sig -> Str -> D -> (Sig, Sig) -- | Implements signal reconstruction using an fft-based phase vocoder. -- --
-- ares pvoc ktimpnt, kfmod, ifilcod [, ispecwp] [, iextractmode] \ -- [, ifreqlim] [, igatefn] ---- -- csound doc: http://csound.com/docs/manual/pvoc.html pvoc :: Sig -> Sig -> Str -> Sig -- | Interpolates between the amplitudes and frequencies of two phase -- vocoder analysis files. -- -- pvinterp interpolates between the amplitudes and frequencies, on a bin -- by bin basis, of two phase vocoder analysis files (one from a -- previously called pvbufread unit and the other from within its own -- argument list), allowing for user defined transitions between analyzed -- sounds. It also allows for general scaling of the amplitudes and -- frequencies of each file separately before the interpolated values are -- calculated and sent to the resynthesis routines. The kfmod argument in -- pvinterp performs its frequency scaling on the frequency values after -- their derivation from the separate scaling and subsequent -- interpolation is performed so that this acts as an overall scaling -- value of the new frequency components. -- --
-- ares pvinterp ktimpnt, kfmod, ifile, kfreqscale1, kfreqscale2, \ -- kampscale1, kampscale2, kfreqinterp, kampinterp ---- -- csound doc: http://csound.com/docs/manual/pvinterp.html pvinterp :: Sig -> Sig -> Str -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Applies the amplitudes from one phase vocoder analysis file to the -- data from a second file. -- -- pvcross applies the amplitudes from one phase vocoder analysis file to -- the data from a second file and then performs the resynthesis. The -- data is passed, as described above, from a previously called pvbufread -- unit. The two k-rate amplitude arguments are used to scale the -- amplitudes of each files separately before they are added together and -- used in the resynthesis (see below for further explanation). The -- frequencies of the first file are not used at all in this process. -- This unit simply allows for cross-synthesis through the application of -- the amplitudes of the spectra of one signal to the frequencies of a -- second signal. Unlike pvinterp, pvcross does allow for the use of the -- ispecwp as in pvoc and vpvoc. -- --
-- ares pvcross ktimpnt, kfmod, ifile, kampscale1, kampscale2 [, ispecwp] ---- -- csound doc: http://csound.com/docs/manual/pvcross.html pvcross :: Sig -> Sig -> Str -> Sig -> Sig -> Sig -- | Reads from a phase vocoder analysis file and makes the retrieved data -- available. -- -- pvbufread reads from a pvoc file and makes the retrieved data -- available to any following pvinterp and pvcross units that appear in -- an instrument before a subsequent pvbufread (just as lpread and -- lpreson work together). The data is passed internally and the unit has -- no output of its own. -- --
-- pvbufread ktimpnt, ifile ---- -- csound doc: http://csound.com/docs/manual/pvbufread.html pvbufread :: Sig -> Str -> SE () -- | Reads from a pvoc file and uses the data to perform additive -- synthesis. -- -- pvadd reads from a pvoc file and uses the data to perform additive -- synthesis using an internal array of interpolating oscillators. The -- user supplies the wave table (usually one period of a sine wave), and -- can choose which analysis bins will be used in the re-synthesis. -- --
-- ares pvadd ktimpnt, kfmod, ifilcod, ifn, ibins [, ibinoffset] \ -- [, ibinincr] [, iextractmode] [, ifreqlim] [, igatefn] ---- -- csound doc: http://csound.com/docs/manual/pvadd.html pvadd :: Sig -> Sig -> Str -> Tab -> D -> Sig -- | Deprecated. -- -- Deprecated. Use the tableseg opcode instead. -- --
-- ktableseg ifn1, idur1, ifn2 [, idur2] [, ifn3] [...] ---- -- csound doc: http://csound.com/docs/manual/ktableseg.html ktableseg :: Tab -> D -> Tab -> SE () -- | Accumulates the minimum value of audio signals. -- -- minaccum compares two audio-rate variables and stores the minimum -- value between them into the first. -- --
-- minaccum aAccumulator, aInput ---- -- csound doc: http://csound.com/docs/manual/minaccum.html minaccum :: Sig -> Sig -> SE () -- | Accumulates the minimum of the absolute values of audio signals. -- -- minabsaccum compares two audio-rate variables and stores the minimum -- of their absolute values into the first. -- --
-- minabsaccum aAccumulator, aInput ---- -- csound doc: http://csound.com/docs/manual/minabsaccum.html minabsaccum :: Sig -> Sig -> SE () -- | Produces a signal that is the minimum of the absolute values of any -- number of input signals. -- -- The minabs opcode takes any number of a-rate or k-rate signals as -- input (all of the same rate), and outputs a signal at the same rate -- that is the minimum of all of the inputs. It is identical to the min -- opcode except that it takes the absolute value of each input before -- comparing them. Therefore, the output is always non-negative. For -- a-rate signals, the inputs are compared one sample at a time (i.e. -- minabs does not scan an entire ksmps period of a signal for its local -- minimum as the max_k opcode does). -- --
-- amin minabs ain1, ain2 [, ain3] [, ain4] [...] -- kmin minabs kin1, kin2 [, kin3] [, kin4] [...] ---- -- csound doc: http://csound.com/docs/manual/minabs.html minabs :: [Sig] -> Sig -- | Produces a signal that is the minimum of any number of input signals. -- -- The min opcode takes any number of a-rate, k-rate or i-rate signals as -- input (all of the same rate), and outputs a signal at the same rate -- that is the minimum of all of the inputs. For a-rate signals, the -- inputs are compared one sample at a time (i.e. min does not scan an -- entire ksmps period of a signal for its local minimum as the max_k -- opcode does). -- --
-- amin min ain1, ain2 [, ain3] [, ain4] [...] -- kmin min kin1, kin2 [, kin3] [, kin4] [...] -- imin min iin1, iin2 [, iin3] [, iin4] [...] ---- -- csound doc: http://csound.com/docs/manual/min.html min' :: [Sig] -> Sig -- | Accumulates the maximum value of audio signals. -- -- maxaccum compares two audio-rate variables and stores the maximum -- value between them into the first. -- --
-- maxaccum aAccumulator, aInput ---- -- csound doc: http://csound.com/docs/manual/maxaccum.html maxaccum :: Sig -> Sig -> SE () -- | Accumulates the maximum of the absolute values of audio signals. -- -- maxabsaccum compares two audio-rate variables and stores the maximum -- of their absolute values into the first. -- --
-- maxabsaccum aAccumulator, aInput ---- -- csound doc: http://csound.com/docs/manual/maxabsaccum.html maxabsaccum :: Sig -> Sig -> SE () -- | Produces a signal that is the maximum of the absolute values of any -- number of input signals. -- -- The maxabs opcode takes any number of a-rate or k-rate signals as -- input (all of the same rate), and outputs a signal at the same rate -- that is the maximum of all of the inputs. It is identical to the max -- opcode except that it takes the absolute value of each input before -- comparing them. Therefore, the output is always non-negative. For -- a-rate signals, the inputs are compared one sample at a time (i.e. -- maxabs does not scan an entire ksmps period of a signal for its local -- maximum as the max_k opcode does). -- --
-- amax maxabs ain1, ain2 [, ain3] [, ain4] [...] -- kmax maxabs kin1, kin2 [, kin3] [, kin4] [...] ---- -- csound doc: http://csound.com/docs/manual/maxabs.html maxabs :: [Sig] -> Sig -- | Local maximum (or minimum) value of an incoming asig signal -- -- max_k outputs the local maximum (or minimum) value of the incoming -- asig signal, checked in the time interval between ktrig has become -- true twice. -- --
-- knumkout max_k asig, ktrig, itype ---- -- csound doc: http://csound.com/docs/manual/max_k.html max_k :: Sig -> Sig -> D -> Sig -- | Produces a signal that is the maximum of any number of input signals. -- -- The max opcode takes any number of a-rate, k-rate or i-rate signals as -- input (all of the same rate), and outputs a signal at the same rate -- that is the maximum of all of the inputs. For a-rate signals, the -- inputs are compared one sample at a time (i.e. max does not scan an -- entire ksmps period of a signal for its local maximum as the max_k -- opcode does). -- --
-- amax max ain1, ain2 [, ain3] [, ain4] [...] -- kmax max kin1, kin2 [, kin3] [, kin4] [...] -- imax max iin1, iin2 [, iin3] [, iin4] [...] ---- -- csound doc: http://csound.com/docs/manual/max.html max' :: [Sig] -> Sig -- | Compares two audio signals -- -- Compares two audio signals using the standard math operators -- --
-- aout cmp aL, S_operator, aR ---- -- csound doc: http://csound.com/docs/manual/cmp.html cmp :: Sig -> Str -> Sig -> Sig -- | Waveshapes a signal by raising it to a variable exponent. -- -- The powershape opcode raises an input signal to a power with pre- and -- post-scaling of the signal so that the output will be in a predictable -- range. It also processes negative inputs in a symmetrical way to -- positive inputs, calculating a dynamic transfer function that is -- useful for waveshaping. -- --
-- aout powershape ain, kShapeAmount [, ifullscale] ---- -- csound doc: http://csound.com/docs/manual/powershape.html powershape :: Sig -> Sig -> Sig -- | Distorts a phasor for reading two unequal portions of a table in equal -- periods. -- -- The pdhalfy opcode is a variation on the phase distortion synthesis -- method of the pdhalf opcode. It is useful for distorting a phasor in -- order to read two unequal portions of a table in the same number of -- samples. -- --
-- aout pdhalfy ain, kShapeAmount [, ibipolar [, ifullscale]] ---- -- csound doc: http://csound.com/docs/manual/pdhalfy.html pdhalfy :: Sig -> Sig -> Sig -- | Distorts a phasor for reading the two halves of a table at different -- rates. -- -- The pdhalf opcode is designed to emulate the "classic" phase -- distortion synthesis method of the Casio CZ-series of synthesizers -- from the mid-1980's. This technique reads the first and second halves -- of a function table at different rates in order to warp the waveform. -- For example, pdhalf can smoothly transform a sine wave into something -- approximating the shape of a saw wave. -- --
-- aout pdhalf ain, kShapeAmount [, ibipolar [, ifullscale]] ---- -- csound doc: http://csound.com/docs/manual/pdhalf.html pdhalf :: Sig -> Sig -> Sig -- | Performs linear clipping on an audio signal or a phasor. -- -- The pdclip opcode allows a percentage of the input range of a signal -- to be clipped to fullscale. It is similar to simply multiplying the -- signal and limiting the range of the result, but pdclip allows you to -- think about how much of the signal range is being distorted instead of -- the scalar factor and has a offset parameter for assymetric clipping -- of the signal range. pdclip is also useful for remapping phasors for -- phase distortion synthesis. -- --
-- aout pdclip ain, kWidth, kCenter [, ibipolar [, ifullscale]] ---- -- csound doc: http://csound.com/docs/manual/pdclip.html pdclip :: Sig -> Sig -> Sig -> Sig -- | Efficiently evaluates the sum of Chebyshev polynomials of arbitrary -- order. -- -- The chebyshevpoly opcode calculates the value of a polynomial -- expression with a single a-rate input variable that is made up of a -- linear combination of the first N Chebyshev polynomials of the first -- kind. Each Chebyshev polynomial, Tn(x), is weighted by a k-rate -- coefficient, kn, so that the opcode is calculating a sum of any number -- of terms in the form kn*Tn(x). Thus, the chebyshevpoly opcode allows -- for the waveshaping of an audio signal with a dynamic transfer -- function that gives precise control over the harmonic content of the -- output. -- --
-- aout chebyshevpoly ain, k0 [, k1 [, k2 [...]]] ---- -- csound doc: http://csound.com/docs/manual/chebyshevpoly.html chebyshevpoly :: Sig -> [Sig] -> Sig -- | A model of beaten plate consisting of two parallel delay-lines and two -- first-order lowpass filters. -- --
-- ares wguide2 asig, xfreq1, xfreq2, kcutoff1, kcutoff2, \ -- kfeedback1, kfeedback2 ---- -- csound doc: http://csound.com/docs/manual/wguide2.html wguide2 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | A simple waveguide model consisting of one delay-line and one -- first-order lowpass filter. -- --
-- ares wguide1 asig, xfreq, kcutoff, kfeedback ---- -- csound doc: http://csound.com/docs/manual/wguide1.html wguide1 :: Sig -> Sig -> Sig -> Sig -> Sig -- | Performs filtering using a transposed form-II digital filter lattice -- with radial pole-shearing and angular pole-warping. -- -- General purpose custom filter with time-varying pole control. The -- filter coefficients implement the following difference equation: -- --
-- ares zfilter2 asig, kdamp, kfreq, iM, iN, ib0, ib1, ..., ibM, \ -- ia1,ia2, ..., iaN ---- -- csound doc: http://csound.com/docs/manual/zfilter2.html zfilter2 :: Sig -> Sig -> Sig -> D -> D -> [D] -> Sig -- | Parametric equalizer and filter opcode with 7 filter types, based on -- algorithm by Robert Bristow-Johnson. -- -- Parametric equalizer and filter opcode with 7 filter types, based on -- algorithm by Robert Bristow-Johnson. -- --
-- ar rbjeq asig, kfco, klvl, kQ, kS[, imode] ---- -- csound doc: http://csound.com/docs/manual/rbjeq.html rbjeq :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Implementation of Zoelzer's parametric equalizer filters. -- -- Implementation of Zoelzer's parametric equalizer filters, with some -- modifications by the author. -- --
-- ares pareq asig, kc, kv, kq [, imode] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/pareq.html pareq :: Sig -> Sig -> Sig -> Sig -> Sig -- | A filter with a non-linear effect and blowup protection. -- -- Implements the filter: -- --
-- ares nlfilt2 ain, ka, kb, kd, kC, kL ---- -- csound doc: http://csound.com/docs/manual/nlfilt2.html nlfilt2 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | A filter with a non-linear effect. -- -- Implements the filter: -- --
-- ares nlfilt ain, ka, kb, kd, kC, kL ---- -- csound doc: http://csound.com/docs/manual/nlfilt.html nlfilt :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | A Hilbert rransformer. -- -- A DFT-based implementation of a Hilbert transformer. -- --
-- ar1, ar2 hilbert2 asig, ifftsize, ihopsize ---- -- csound doc: http://csound.com/docs/manual/hilbert2.html hilbert2 :: Sig -> D -> D -> (Sig, Sig) -- | A Hilbert transformer. -- -- An IIR implementation of a Hilbert transformer. -- --
-- ar1, ar2 hilbert asig ---- -- csound doc: http://csound.com/docs/manual/hilbert.html hilbert :: Sig -> (Sig, Sig) -- | Formant filter. -- -- Fofilter generates a stream of overlapping sinewave grains, when fed -- with a pulse train. Each grain is the impulse response of a -- combination of two BP filters. The grains are defined by their attack -- time (determining the skirtwidth of the formant region at -60dB) and -- decay time (-6dB bandwidth). Overlapping will occur when 1/freq < -- decay, but, unlike FOF, there is no upper limit on the number of -- overlaps. The original idea for this opcode came from J McCartney's -- formlet class in SuperCollider, but this is possibly implemented -- differently(?). -- --
-- asig fofilter ain, xcf, xris, xdec[, istor] ---- -- csound doc: http://csound.com/docs/manual/fofilter.html fofilter :: Sig -> Sig -> Sig -> Sig -> Sig -- | AM/FM analysis from quadrature signal. -- -- This opcode attempts to extract the AM and FM signals off a quadrature -- signal (e.g. from a Hilbert transform). -- --
-- am, af fmanal are, aim ---- -- csound doc: http://csound.com/docs/manual/fmanal.html fmanal :: Sig -> Sig -> (Sig, Sig) -- | Performs filtering using a transposed form-II digital filter lattice -- with no time-varying control. -- -- General purpose custom filter with no time-varying pole control. The -- filter coefficients implement the following difference equation: -- --
-- ares filter2 asig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN -- kres filter2 ksig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN ---- -- csound doc: http://csound.com/docs/manual/filter2.html filter2 :: Sig -> D -> D -> [D] -> Sig -- | Equalizer filter -- -- The opcode eqfil is a 2nd order tunable equalisation filter based on -- Regalia and Mitra design ("Tunable Digital Frequency Response -- Equalization Filters", IEEE Trans. on Ac., Sp. and Sig Proc., 35 (1), -- 1987). It provides a peak/notch filter for building parametric/graphic -- equalisers. -- --
-- asig eqfil ain, kcf, kbw, kgain[, istor] ---- -- csound doc: http://csound.com/docs/manual/eqfil.html eqfil :: Sig -> Sig -> Sig -> Sig -> Sig -- | A DC blocking filter. -- -- Implements a DC blocking filter with improved DC attenuation. -- --
-- ares dcblock2 ain [, iorder] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/dcblock2.html dcblock2 :: Sig -> Sig -- | A DC blocking filter. -- -- Implements the DC blocking filter -- --
-- ares dcblock ain [, igain] ---- -- csound doc: http://csound.com/docs/manual/dcblock.html dcblock :: Sig -> Sig -- | A first-order recursive low-pass filter with variable frequency -- response. -- --
-- kres tonek ksig, khp [, iskip] ---- -- csound doc: http://csound.com/docs/manual/tonek.html tonek :: Sig -> Sig -> Sig -- | Generate glissandos starting from a control signal. -- -- Generate glissandos starting from a control signal with a trigger. -- --
-- kres tlineto ksig, ktime, ktrig ---- -- csound doc: http://csound.com/docs/manual/tlineto.html tlineto :: Sig -> Sig -> Sig -> Sig -- | Timed trigger -- -- Timed trigger. Port of Supercollider's Trig ugen -- --
-- aout sc_trig ain, kdur -- kout sc_trig kin, kdur ---- -- csound doc: http://csound.com/docs/manual/sc_trig.html sc_trig :: Sig -> Sig -> Sig -- | Exponential Lag -- -- Exponential lag with different smoothing time for up- and downgoing -- signals. Port of Supercollider's LagUD -- --
-- aout sc_lagud ain, klagup, klagdown -- kout sc_lagud kin, klagup, klagdown ---- -- csound doc: http://csound.com/docs/manual/sc_lagud.html sc_lagud :: Sig -> Sig -> Sig -> Sig -- | Exponential Lag -- -- Exponential lag with 60dB lag time. Port of Supercollider's Lag -- --
-- aout sc_lag ain, klagtime [, initialvalue=0] -- kout sc_lag kin, klagtime [, initialvalue=0] ---- -- csound doc: http://csound.com/docs/manual/sc_lag.html sc_lag :: Sig -> Sig -> Sig -- | Control signal resonant filter stack. -- -- resonxk is equivalent to a group of resonk filters, with the same -- arguments, serially connected. Using a stack of a larger number of -- filters allows a sharper cutoff. -- --
-- kres resonxk ksig, kcf, kbw[, inumlayer, iscl, istor] ---- -- csound doc: http://csound.com/docs/manual/resonxk.html resonxk :: Sig -> Sig -> Sig -> Sig -- | A second-order resonant filter. -- --
-- kres resonk ksig, kcf, kbw [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/resonk.html resonk :: Sig -> Sig -> Sig -> Sig -- | Applies portamento to a step-valued control signal. -- --
-- kres portk ksig, khtim [, isig] ---- -- csound doc: http://csound.com/docs/manual/portk.html portk :: Sig -> Sig -> Sig -- | Applies portamento to a step-valued control signal. -- --
-- kres port ksig, ihtim [, isig] ---- -- csound doc: http://csound.com/docs/manual/port.html port :: Sig -> D -> Sig -- | Generate glissandos starting from a control signal. -- --
-- kres lineto ksig, ktime ---- -- csound doc: http://csound.com/docs/manual/lineto.html lineto :: Sig -> Sig -> Sig -- | A hi-pass filter whose transfer functions are the complements of the -- tonek opcode. -- --
-- kres atonek ksig, khp [, iskip] ---- -- csound doc: http://csound.com/docs/manual/atonek.html atonek :: Sig -> Sig -> Sig -- | A notch filter whose transfer functions are the complements of the -- reson opcode. -- --
-- kres aresonk ksig, kcf, kbw [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/aresonk.html aresonk :: Sig -> Sig -> Sig -> Sig -- | A bank of filters in which the cutoff frequency can be separated under -- user control. -- -- A bank of filters in which the cutoff frequency can be separated under -- user control -- --
-- ares vlowres asig, kfco, kres, iord, ksep ---- -- csound doc: http://csound.com/docs/manual/vlowres.html vlowres :: Sig -> Sig -> Sig -> D -> Sig -> Sig -- | Models some of the filter characteristics of a Roland TB303 -- voltage-controlled filter. -- -- This opcode attempts to model some of the filter characteristics of a -- Roland TB303 voltage-controlled filter. Euler's method is used to -- approximate the system, rather than traditional filter methods. Cutoff -- frequency, Q, and distortion are all coupled. Empirical methods were -- used to try to unentwine, but frequency is only approximate as a -- result. Future fixes for some problems with this opcode may break -- existing orchestras relying on this version of tbvcf. -- --
-- ares tbvcf asig, xfco, xres, kdist, kasym [, iskip] ---- -- csound doc: http://csound.com/docs/manual/tbvcf.html tbvcf :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | A resonant second order filter, with simultaneous lowpass, highpass -- and bandpass outputs. -- -- Implementation of a resonant second order filter, with simultaneous -- lowpass, highpass and bandpass outputs. -- --
-- alow, ahigh, aband svfilter asig, kcf, kq [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/svfilter.html svfilter :: Sig -> Sig -> Sig -> (Sig, Sig, Sig) -- | State-variable filter. -- -- Statevar is a new digital implementation of the analogue -- state-variable filter. This filter has four simultaneous outputs: -- high-pass, low-pass, band-pass and band-reject. This filter uses -- oversampling for sharper resonance (default: 3 times oversampling). It -- includes a resonance limiter that prevents the filter from getting -- unstable. -- --
-- ahp,alp,abp,abr statevar ain, xcf, xq [, iosamps, istor] ---- -- csound doc: http://csound.com/docs/manual/statevar.html statevar :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig) -- | A resonant low-pass filter. -- --
-- ares rezzy asig, xfco, xres [, imode, iskip] ---- -- csound doc: http://csound.com/docs/manual/rezzy.html rezzy :: Sig -> Sig -> Sig -> Sig -- | A bandpass filter with variable frequency response. -- -- Implementations of a second-order, two-pole two-zero bandpass filter -- with variable frequency response. -- --
-- ares resonz asig, xcf, xbw [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/resonz.html resonz :: Sig -> Sig -> Sig -> Sig -- | A bank of second-order bandpass filters, connected in parallel. -- --
-- ares resony asig, kbf, kbw, inum, ksep [, isepmode] [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/resony.html resony :: Sig -> Sig -> Sig -> D -> Sig -> Sig -- | Emulates a stack of filters using the reson opcode. -- -- resonx is equivalent to a filters consisting of more layers of reson -- with the same arguments, serially connected. Using a stack of a larger -- number of filters allows a sharper cutoff. They are faster than using -- a larger number instances in a Csound orchestra of the old opcodes, -- because only one initialization and k- cycle are needed at time and -- the audio loop falls entirely inside the cache memory of processor. -- --
-- ares resonx asig, xcf, xbw [, inumlayer] [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/resonx.html resonx :: Sig -> Sig -> Sig -> Sig -- | A bandpass filter with variable frequency response. -- -- Implementations of a second-order, two-pole two-zero bandpass filter -- with variable frequency response. -- --
-- ares resonr asig, xcf, xbw [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/resonr.html resonr :: Sig -> Sig -> Sig -> Sig -- | A second-order resonant filter. -- --
-- ares reson asig, xcf, xbw [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/reson.html reson :: Sig -> Sig -> Sig -> Sig -- | Moog voltage-controlled lowpass filter emulation. -- -- Mvclpf4 is an digital implementation of the 4th-order (24 dB/oct) Moog -- ladder filter originally written by Fons Andriaensen. It is a version -- of the mvclpf3 opcode with four outputs, for 6dB, 12dB, 18dB, and 24 -- dB/octave responses. -- --
-- asig1,asig2,asig3,asig4 mvclpf4 ain, xcf, xres[, istor] ---- -- csound doc: http://csound.com/docs/manual/mvclpf4.html mvclpf4 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig) -- | Moog voltage-controlled lowpass filter emulation. -- -- Mvclpf3 is an digital implementation of the 4th-order (24 dB/oct) Moog -- ladder filter originally written by Fons Andriaensen. According to the -- author, mvclpf3 "is based on mvclpf2 , with two differences. It uses -- the the technique described by Stilson and Smith to extend the -- constant-Q range, and the internal sample frequency is doubled, giving -- a better approximation to the non-linear behaviour at high freqencies. -- This version has high Q over the entire frequency range and will -- oscillate up to above 10 kHz, while the two others show a decreasing Q -- at high frequencies. Mvclpf3 is reasonably well tuned, and can be -- played as a VCO up to at least 5 kHz". -- --
-- asig mvclpf3 ain, xcf, xres[, istor] ---- -- csound doc: http://csound.com/docs/manual/mvclpf3.html mvclpf3 :: Sig -> Sig -> Sig -> Sig -- | Moog voltage-controlled lowpass filter emulation. -- -- Mvclpf2 is an digital implementation of the 4th-order (24 dB/oct) Moog -- ladder filter originally written by Fons Andriaensen. According to the -- author, mvclpf2 "uses five non-linear elements, in the input and in -- all four filter sections. It works by using the derivative of the -- nonlinearity (for which 1 / (1 + x * x) is reasonable approximation). -- The main advantage of this is that only one evaluation of the -- non-linear function is required for each section". -- --
-- asig mvclpf2 ain, xcf, xres[, istor] ---- -- csound doc: http://csound.com/docs/manual/mvclpf2.html mvclpf2 :: Sig -> Sig -> Sig -> Sig -- | Moog voltage-controlled lowpass filter emulation. -- -- Mvclpf1 is an digital implementation of the 4th-order (24 dB/oct) Moog -- ladder filter originally written by Fons Andriaensen. According to the -- author, mvclpf1 "is a fairly simple design, and it does not even -- pretend to come close the 'real thing'. It uses a very crude -- approximation of the non-linear resistor in the first filter section -- only. [...] [I]t's [a] cheap (in terms of CPU usage) general purpose -- 24 dB/oct lowpass filter that could be useful". -- --
-- asig mvclpf1 ain, xcf, xres[,istor] ---- -- csound doc: http://csound.com/docs/manual/mvclpf1.html mvclpf1 :: Sig -> Sig -> Sig -> Sig -- | Moog voltage-controlled highpass filter emulation. -- -- Mvchpf is an digital implementation of the 4th-order (24 dB/oct) Moog -- high-pass filter, originally written by Fons Andriaensen. According to -- the author, mvchpf "...is based on the voltage controlled highpass -- filter by Robert Moog. again with some attention to the nonlinear -- effects." -- --
-- asig mvchpf ain, xcf[, istor] ---- -- csound doc: http://csound.com/docs/manual/mvchpf.html mvchpf :: Sig -> Sig -> Sig -- | A digital emulation of the Moog diode ladder filter configuration. -- --
-- ares moogvcf2 asig, xfco, xres [,iscale, iskip] ---- -- csound doc: http://csound.com/docs/manual/moogvcf2.html moogvcf2 :: Sig -> Sig -> Sig -> Sig -- | A digital emulation of the Moog diode ladder filter configuration. -- --
-- ares moogvcf asig, xfco, xres [,iscale, iskip] ---- -- csound doc: http://csound.com/docs/manual/moogvcf.html moogvcf :: Sig -> Sig -> Sig -> Sig -- | Moog ladder lowpass filter. -- -- Moogladder2 is an new digital implementation of the Moog ladder filter -- based on the work of Antti Huovilainen, described in the paper -- "Non-Linear Digital Implementation of the Moog Ladder Filter" -- (Proceedings of DaFX04, Univ of Napoli). This implementation uses -- approximations to the tanh function and so is faster but less accurate -- than moogladder. -- --
-- asig moogladder2 ain, kcf, kres[, istor] -- asig moogladder2 ain, acf, kres[, istor] -- asig moogladder2 ain, kcf, ares[, istor] -- asig moogladder2 ain, acf, ares[, istor] ---- -- csound doc: http://csound.com/docs/manual/moogladder2.html moogladder2 :: Sig -> Sig -> Sig -> Sig -- | Moog ladder lowpass filter. -- -- Moogladder is an new digital implementation of the Moog ladder filter -- based on the work of Antti Huovilainen, described in the paper -- "Non-Linear Digital Implementation of the Moog Ladder Filter" -- (Proceedings of DaFX04, Univ of Napoli). This implementation is -- probably a more accurate digital representation of the original -- analogue filter. -- --
-- asig moogladder ain, kcf, kres[, istor] -- asig moogladder ain, acf, kres[, istor] -- asig moogladder ain, kcf, ares[, istor] -- asig moogladder ain, acf, ares[, istor] ---- -- csound doc: http://csound.com/docs/manual/moogladder.html moogladder :: Sig -> Sig -> Sig -> Sig -- | A 3-pole sweepable resonant lowpass filter. -- -- Implementation of a 3 pole sweepable resonant lowpass filter. -- --
-- ares lpf18 asig, xfco, xres, xdist [, iskip] ---- -- csound doc: http://csound.com/docs/manual/lpf18.html lpf18 :: Sig -> Sig -> Sig -> Sig -> Sig -- | Simulates layers of serially connected resonant lowpass filters. -- -- lowresx is equivalent to more layers of lowres with the same arguments -- serially connected. -- --
-- ares lowresx asig, xcutoff, xresonance [, inumlayer] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/lowresx.html lowresx :: Sig -> Sig -> Sig -> Sig -- | Another resonant lowpass filter. -- -- lowres is a resonant lowpass filter. -- --
-- ares lowres asig, kcutoff, kresonance [, iskip] ---- -- csound doc: http://csound.com/docs/manual/lowres.html lowres :: Sig -> Sig -> Sig -> Sig -- | A resonant lowpass filter. -- -- Implementation of a resonant second-order lowpass filter. -- --
-- ares lowpass2 asig, kcf, kq [, iskip] ---- -- csound doc: http://csound.com/docs/manual/lowpass2.html lowpass2 :: Sig -> Sig -> Sig -> Sig -- | A second-order multi-mode filter. -- --
-- ares bqrez asig, xfco, xres [, imode] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/bqrez.html bqrez :: Sig -> Sig -> Sig -> Sig -- | A notch filter whose transfer functions are the complements of the -- reson opcode. -- --
-- ares areson asig, kcf, kbw [, iscl] [, iskip] -- ares areson asig, acf, kbw [, iscl] [, iskip] -- ares areson asig, kcf, abw [, iscl] [, iskip] -- ares areson asig, acf, abw [, iscl] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/areson.html areson :: Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 4 pole ladder filter. -- -- Zero-delay feedback implementation of a 4 pole (24 dB/oct) low-pass -- filter based on the Moog ladder filter. -- --
-- asig zdf_ladder ain, xcf, xQ [, istor] ---- -- csound doc: http://csound.com/docs/manual/zdf_ladder.html zdf_ladder :: Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 2 pole filter with multimode -- output. -- -- Zero-delay feedback implementation of a 2 pole (12 dB/oct) filter. -- Offers low-pass, band-pass, and high-pass output. -- --
-- alp, abp, ahp zdf_2pole_mode ain, xcf, Q [, istor] ---- -- csound doc: http://csound.com/docs/manual/zdf_2pole_mode.html zdf_2pole_mode :: Sig -> Sig -> Sig -> (Sig, Sig, Sig) -- | Zero-delay feedback implementation of 2 pole filter. -- -- Zero-delay feedback implementation of a 2 pole (12 dB/oct) filter. -- Offers low-pass (default), high-pass, and allpass output modes. -- --
-- asig zdf_2pole ain, xcf, xQ [, kmode, istor] ---- -- csound doc: http://csound.com/docs/manual/zdf_2pole.html zdf_2pole :: Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 1 pole filter with multimode -- output. -- -- Zero-delay feedback implementation of a 1 pole (6 dB/oct) filter. -- Offers low-pass and high-pass output. -- --
-- alp, ahp zdf_1pole_mode ain, xcf [, istor] ---- -- csound doc: http://csound.com/docs/manual/zdf_1pole_mode.html zdf_1pole_mode :: Sig -> Sig -> (Sig, Sig) -- | Zero-delay feedback implementation of 1 pole filter. -- -- Zero-delay feedback implementation of a 1 pole (6 dB/oct) filter. -- Offers low-pass (default), high-pass, and allpass output modes. -- --
-- asig zdf_1pole ain, xcf [, kmode, istor] ---- -- csound doc: http://csound.com/docs/manual/zdf_1pole.html zdf_1pole :: Sig -> Sig -> Sig -- | Emulates a stack of filters using the tone opcode. -- -- tonex is equivalent to a filter consisting of more layers of tone with -- the same arguments, serially connected. Using a stack of a larger -- number of filters allows a sharper cutoff. They are faster than using -- a larger number instances in a Csound orchestra of the old opcodes, -- because only one initialization and k- cycle are needed at time and -- the audio loop falls entirely inside the cache memory of processor. -- --
-- ares tonex asig, khp [, inumlayer] [, iskip] -- ares tonex asig, ahp [, inumlayer] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/tonex.html tonex :: Sig -> Sig -> Sig -- | A first-order recursive low-pass filter with variable frequency -- response. -- --
-- ares tone asig, khp [, iskip] ---- -- csound doc: http://csound.com/docs/manual/tone.html tone :: Sig -> Sig -> Sig -- | A filter that simulates a mass-spring-damper system -- -- Filters the incoming signal with the specified resonance frequency and -- quality factor. It can also be seen as a signal generator for high -- quality factor, with an impulse for the excitation. You can combine -- several modes to built complex instruments such as bells or guitar -- tables. -- --
-- aout mode ain, xfreq, xQ [, iskip] ---- -- csound doc: http://csound.com/docs/manual/mode.html mode :: Sig -> Sig -> Sig -> Sig -- | A median filter, a variant FIR lowpass filter. -- -- Implementation of a median filter. -- --
-- kres mediank kin, ksize, imaxsize [, iskip] ---- -- csound doc: http://csound.com/docs/manual/mediank.html mediank :: Sig -> Sig -> D -> Sig -- | A median filter, a variant FIR lowpass filter. -- -- Implementation of a median filter. -- --
-- ares median asig, ksize, imaxsize [, iskip] ---- -- csound doc: http://csound.com/docs/manual/median.html median :: Sig -> Sig -> D -> Sig -- | Zero-delay feedback implementation of Korg35 resonant low-pass filter. -- -- Zero-delay feedback implementation of Korg35 resonant low-pass filter. -- This filter design is found in the Korg MS10, early MS20, and Monotron -- series. -- --
-- asig K35_lpf ain, xcf, xQ [, inlp, isaturation, istor] ---- -- csound doc: http://csound.com/docs/manual/k35_lpf.html k35_lpf :: Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of Korg35 resonant high-pass -- filter. -- -- Zero-delay feedback implementation of Korg35 resonant high-pass -- filter. This filter design is found in the Korg MS10 early MS20. -- --
-- asig K35_hpf ain, xcf, xQ [, inlp, isaturation, istor] ---- -- csound doc: http://csound.com/docs/manual/k35_hpf.html k35_hpf :: Sig -> Sig -> Sig -> Sig -- | A fast and robust method for approximating sound propagation, -- achieving convincing Doppler shifts without having to solve equations. -- -- A fast and robust method for approximating sound propagation, -- achieving convincing Doppler shifts without having to solve equations. -- The method computes frequency shifts based on reading an input delay -- line at a delay time computed from the distance between source and mic -- and the speed of sound. One instance of the opcode is required for -- each dimension of space through which the sound source moves. If the -- source sound moves at a constant speed from in front of the -- microphone, through the microphone, to behind the microphone, then the -- output will be frequency shifted above the source frequency at a -- constant frequency while the source approaches, then discontinuously -- will be shifted below the source frequency at a constant frequency as -- the source recedes from the microphone. If the source sound moves at a -- constant speed through a point to one side of the microphone, then the -- rate of change of position will not be constant, and the familiar -- Doppler frequency shift typical of a siren or engine approaching and -- receding along a road beside a listener will be heard. -- --
-- ashifted doppler asource, ksourceposition, kmicposition [, isoundspeed, ifiltercutoff] ---- -- csound doc: http://csound.com/docs/manual/doppler.html doppler :: Sig -> Sig -> Sig -> Sig -- | Zero-delay feedback implementation of 4 pole diode ladder filter. -- -- Zero-delay feedback implementation of a 4 pole (24 dB/oct) diode -- low-pass filter. This filter design was originally used in the EMS -- VCS3 and was the resonant filter in the Roland TB-303. -- --
-- asig diode_ladder ain, xcf, xk [, inlp, isaturation, istor] ---- -- csound doc: http://csound.com/docs/manual/diode_ladder.html diode_ladder :: Sig -> Sig -> Sig -> Sig -- | Implements low-pass and high-pass filters of different styles. -- -- Implements the classical standard analog filter types: low-pass and -- high-pass. They are implemented with the four classical kinds of -- filters: Butterworth, Chebyshev Type I, Chebyshev Type II, and -- Elliptical. The number of poles may be any even number from 2 to 80. -- --
-- ares clfilt asig, kfreq, itype, inpol [, ikind] [, ipbr] [, isba] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/clfilt.html clfilt :: Sig -> Sig -> D -> D -> Sig -- | A low-pass Butterworth filter. -- -- Implementation of a second-order low-pass Butterworth filter. This -- opcode can also be written as butlp. -- --
-- ares butterlp asig, kfreq [, iskip] -- ares butterlp asig, afreq [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butterlp.html butterlp :: Sig -> Sig -> Sig -- | A high-pass Butterworth filter. -- -- Implementation of second-order high-pass Butterworth filter. This -- opcode can also be written as buthp. -- --
-- ares butterhp asig, kfreq [, iskip] -- ares butterhp asig, afreq [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butterhp.html butterhp :: Sig -> Sig -> Sig -- | A band-reject Butterworth filter. -- -- Implementation of a second-order band-reject Butterworth filter. This -- opcode can also be written as butbr. -- --
-- ares butterbr asig, xfreq, xband [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butterbr.html butterbr :: Sig -> Sig -> Sig -> Sig -- | A band-pass Butterworth filter. -- -- Implementation of a second-order band-pass Butterworth filter. This -- opcode can also be written as butbp. -- --
-- ares butterbp asig, xfreq, xband [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butterbp.html butterbp :: Sig -> Sig -> Sig -> Sig -- | Same as the butterlp opcode. -- --
-- ares butlp asig, kfreq [, iskip] -- ares butlp asig, afreq [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butlp.html butlp :: Sig -> Sig -> Sig -- | Same as the butterhp opcode. -- --
-- ares buthp asig, kfreq [, iskip] -- ares buthp asig, afreq [, iskip] ---- -- csound doc: http://csound.com/docs/manual/buthp.html buthp :: Sig -> Sig -> Sig -- | Same as the butterbr opcode. -- --
-- ares butbr asig, kfreq, kband [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butbr.html butbr :: Sig -> Sig -> Sig -> Sig -- | Same as the butterbp opcode. -- --
-- ares butbp asig, kfreq, kband [, iskip] ---- -- csound doc: http://csound.com/docs/manual/butbp.html butbp :: Sig -> Sig -> Sig -> Sig -- | A sweepable general purpose biquadratic digital filter with a-rate -- parameters. -- -- A sweepable general purpose biquadratic digital filter. -- --
-- ares biquada asig, ab0, ab1, ab2, aa0, aa1, aa2 [, iskip] ---- -- csound doc: http://csound.com/docs/manual/biquada.html biquada :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | A sweepable general purpose biquadratic digital filter. -- --
-- ares biquad asig, kb0, kb1, kb2, ka0, ka1, ka2 [, iskip] ---- -- csound doc: http://csound.com/docs/manual/biquad.html biquad :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Emulates a stack of filters using the atone opcode. -- -- atonex is equivalent to a filter consisting of more layers of atone -- with the same arguments, serially connected. Using a stack of a larger -- number of filters allows a sharper cutoff. They are faster than using -- a larger number instances in a Csound orchestra of the old opcodes, -- because only one initialization and k- cycle are needed at time and -- the audio loop falls entirely inside the cache memory of processor. -- --
-- ares atonex asig, khp [, inumlayer] [, iskip] -- ares atonex asig, ahp [, inumlayer] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/atonex.html atonex :: Sig -> Sig -> Sig -- | A hi-pass filter whose transfer functions are the complements of the -- tone opcode. -- --
-- ares atone asig, khp [, iskip] ---- -- csound doc: http://csound.com/docs/manual/atone.html atone :: Sig -> Sig -> Sig -- | Second-order allpass filters arranged in a series. -- -- An implementation of iord number of second-order allpass filters in -- series. -- --
-- ares phaser2 asig, kfreq, kq, kord, kmode, ksep, kfeedback ---- -- csound doc: http://csound.com/docs/manual/phaser2.html phaser2 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | First-order allpass filters arranged in a series. -- -- An implementation of iord number of first-order allpass filters in -- series. -- --
-- ares phaser1 asig, kfreq, kord, kfeedback [, iskip] ---- -- csound doc: http://csound.com/docs/manual/phaser1.html phaser1 :: Sig -> Sig -> Sig -> Sig -> Sig -- | Analyze an audio input and generate harmonizing voices in synchrony -- with formants preserved. -- -- Generate harmonizing voices with formants preserved. -- --
-- ares harmon4 asig, koct, kfrq1, \ -- kfrq2, kfrq3, kfrq4, icpsmode, ilowest[, ipolarity] ---- -- csound doc: http://csound.com/docs/manual/harmon2.html harmon4 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | Analyze an audio input and generate harmonizing voices in synchrony -- with formants preserved. -- -- Generate harmonizing voices with formants preserved. -- --
-- ares harmon3 asig, koct, kfrq1, \ -- kfrq2, kfrq3, icpsmode, ilowest[, ipolarity] ---- -- csound doc: http://csound.com/docs/manual/harmon2.html harmon3 :: Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | Analyze an audio input and generate harmonizing voices in synchrony -- with formants preserved. -- -- Generate harmonizing voices with formants preserved. -- --
-- ares harmon2 asig, koct, kfrq1, kfrq2, icpsmode, ilowest[, ipolarity] ---- -- csound doc: http://csound.com/docs/manual/harmon2.html harmon2 :: Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | Analyze an audio input and generate harmonizing voices in synchrony. -- --
-- ares harmon asig, kestfrq, kmaxvar, kgenfreq1, kgenfreq2, imode, \ -- iminfrq, iprd ---- -- csound doc: http://csound.com/docs/manual/harmon.html harmon :: Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> D -> Sig -- | A user controlled flanger. -- --
-- ares flanger asig, adel, kfeedback [, imaxd] ---- -- csound doc: http://csound.com/docs/manual/flanger.html flanger :: Sig -> Sig -> Sig -> Sig -- | Modified hyperbolic tangent distortion. -- -- Implementation of modified hyperbolic tangent distortion. distort1 can -- be used to generate wave shaping distortion based on a modification of -- the tanh function. -- --
-- ares distort1 asig, kpregain, kpostgain, kshape1, kshape2[, imode] ---- -- csound doc: http://csound.com/docs/manual/distort1.html distort1 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Distort an audio signal via waveshaping and optional clipping. -- --
-- ar distort asig, kdist, ifn[, ihp, istor] ---- -- csound doc: http://csound.com/docs/manual/distort.html distort :: Sig -> Sig -> Tab -> Sig -- | Wraps-around the signal that exceeds the low and high thresholds. -- --
-- ares wrap asig, klow, khigh -- ires wrap isig, ilow, ihigh -- kres wrap ksig, klow, khigh ---- -- csound doc: http://csound.com/docs/manual/wrap.html wrap :: Sig -> Sig -> Sig -> Sig -- | Reflects the signal that exceeds the low and high thresholds. -- --
-- ares mirror asig, klow, khigh -- ires mirror isig, ilow, ihigh -- kres mirror ksig, klow, khigh ---- -- csound doc: http://csound.com/docs/manual/mirror.html mirror :: Sig -> Sig -> Sig -> Sig -- | Sets the lower and upper limits of the value it processes. -- --
-- ares limit asig, klow, khigh -- ires limit isig, ilow, ihigh -- kres limit ksig, klow, khigh -- ires[] limit isig[], ilow, ihigh -- kres[] limit ksig[], klow, khigh ---- -- csound doc: http://csound.com/docs/manual/limit.html limit :: Sig -> Sig -> Sig -> Sig -- | Write value of into the current buffer of an a-rate variable by index. -- -- Write values into the current buffer of an a-rate variable at the -- given index. Useful for doing sample-by-sample manipulation at k-rate -- without using setksmps 1. -- --
-- vaset kval, kndx, avar ---- -- csound doc: http://csound.com/docs/manual/vaset.html vaset :: Sig -> Sig -> Sig -> SE () -- | Access values of the current buffer of an a-rate variable by indexing. -- -- Access values of the current buffer of an a-rate variable by indexing. -- Useful for doing sample-by-sample manipulation at k-rate without using -- setksmps 1. -- --
-- kval vaget kndx, avar ---- -- csound doc: http://csound.com/docs/manual/vaget.html vaget :: Sig -> Sig -> Sig -- | Modify a signal by up-sampling. -- --
-- ares upsamp ksig ---- -- csound doc: http://csound.com/docs/manual/upsamp.html upsamp :: Sig -> Sig -- | Performs a sample-and-hold operation on its input. -- --
-- ares samphold asig, agate [, ival] [, ivstor] -- kres samphold ksig, kgate [, ival] [, ivstor] ---- -- csound doc: http://csound.com/docs/manual/samphold.html samphold :: Sig -> Sig -> Sig -- | Calculates the weighted mean value of two input signals. -- -- Calculates the weighted mean value (i.e. linear interpolation) of two -- input signals -- --
-- ares ntrpol asig1, asig2, kpoint [, imin] [, imax] -- ires ntrpol isig1, isig2, ipoint [, imin] [, imax] -- kres ntrpol ksig1, ksig2, kpoint [, imin] [, imax] ---- -- csound doc: http://csound.com/docs/manual/ntrpol.html ntrpol :: Sig -> Sig -> Sig -> Sig -- | Converts a control signal to an audio signal using linear -- interpolation. -- --
-- ares interp ksig [, iskip] [, imode] -- [, ivalue] ---- -- csound doc: http://csound.com/docs/manual/interp.html interp :: Sig -> Sig -- | Modify a signal by integration. -- --
-- ares integ asig [, iskip] -- kres integ ksig [, iskip] ---- -- csound doc: http://csound.com/docs/manual/integ.html integ :: Sig -> Sig -- | Adds artificial foldover to an audio signal. -- --
-- ares fold asig, kincr ---- -- csound doc: http://csound.com/docs/manual/fold.html fold :: Sig -> Sig -> Sig -- | Modify a signal by down-sampling. -- --
-- kres downsamp asig [, iwlen] ---- -- csound doc: http://csound.com/docs/manual/downsamp.html downsamp :: Sig -> Sig -- | Modify a signal by differentiation. -- --
-- ares diff asig [, iskip] -- kres diff ksig [, iskip] ---- -- csound doc: http://csound.com/docs/manual/diff.html diff :: Sig -> Sig -- | Mixes low level noise to a list of a-rate signals -- -- Mixes low level (~1e-20 for floats, and ~1e-56 for doubles) noise to a -- list of a-rate signals. Can be used before IIR filters and reverbs to -- avoid denormalized numbers which may otherwise result in significantly -- increased CPU usage. -- --
-- denorm a1[, a2[, a3[, ... ]]] ---- -- csound doc: http://csound.com/docs/manual/denorm.html denorm :: [Sig] -> SE () -- | Variably reverberates an input signal with a âcoloredâ frequency -- response. -- --
-- ares vcomb asig, krvt, xlpt, imaxlpt [, iskip] [, insmps] ---- -- csound doc: http://csound.com/docs/manual/vcomb.html vcomb :: Sig -> Sig -> Sig -> D -> Sig -- | Variably reverberates an input signal with a flat frequency response. -- --
-- ares valpass asig, krvt, xlpt, imaxlpt [, iskip] [, insmps] ---- -- csound doc: http://csound.com/docs/manual/valpass.html valpass :: Sig -> Sig -> Sig -> D -> Sig -- | 8 delay line stereo FDN reverb, based on work by Sean Costello -- -- 8 delay line stereo FDN reverb, with feedback matrix based upon -- physical modeling scattering junction of 8 lossless waveguides of -- equal characteristic impedance. Based on Csound orchestra version by -- Sean Costello. -- --
-- aoutL, aoutR reverbsc ainL, ainR, kfblvl, kfco[, israte[, ipitchm[, iskip]]] ---- -- csound doc: http://csound.com/docs/manual/reverbsc.html reverbsc :: Sig -> Sig -> Sig -> Sig -> (Sig, Sig) -- | Same as the nreverb opcode. -- --
-- ares reverb2 asig, ktime, khdif [, iskip] [,inumCombs] \ -- [, ifnCombs] [, inumAlpas] [, ifnAlpas] ---- -- csound doc: http://csound.com/docs/manual/reverb2.html reverb2 :: Sig -> Sig -> Sig -> Sig -- | Reverberates an input signal with a ânatural roomâ frequency -- response. -- --
-- ares reverb asig, krvt [, iskip] ---- -- csound doc: http://csound.com/docs/manual/reverb.html reverb :: Sig -> Sig -> Sig -- | Models the reverberation of a metal plate. -- -- Models the reverberation of a rectangular metal plate with settable -- physical characteristics when excited by audio signal(s). -- --
-- a1[, a2, ...] platerev itabexcite. itabouts, kbndry, iaspect, istiff, idecay, iloss, aexcite1[, aexcite2, ...] ---- -- csound doc: http://csound.com/docs/manual/platerev.html platerev :: Tuple a => D -> D -> Sig -> D -> D -> D -> D -> [Sig] -> a -- | A reverberator consisting of 6 parallel comb-lowpass filters. -- -- This is a reverberator consisting of 6 parallel comb-lowpass filters -- being fed into a series of 5 allpass filters. nreverb replaces reverb2 -- (version 3.48) and so both opcodes are identical. -- --
-- ares nreverb asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \ -- [, inumAlpas] [, ifnAlpas] ---- -- csound doc: http://csound.com/docs/manual/nreverb.html nreverb :: Sig -> Sig -> Sig -> Sig -- | Three different nested all-pass filters. -- -- Three different nested all-pass filters, useful for implementing -- reverbs. -- --
-- ares nestedap asig, imode, imaxdel, idel1, igain1 [, idel2] [, igain2] \ -- [, idel3] [, igain3] [, istor] ---- -- csound doc: http://csound.com/docs/manual/nestedap.html nestedap :: Sig -> D -> D -> D -> D -> Sig -- | Opcode version of Jezar's Freeverb -- -- freeverb is a stereo reverb unit based on Jezar's public domain C++ -- sources, composed of eight parallel comb filters on both channels, -- followed by four allpass units in series. The filters on the right -- channel are slightly detuned compared to the left channel in order to -- create a stereo effect. -- --
-- aoutL, aoutR freeverb ainL, ainR, kRoomSize, kHFDamp[, iSRate[, iSkip]] ---- -- csound doc: http://csound.com/docs/manual/freeverb.html freeverb :: Sig -> Sig -> Sig -> Sig -> (Sig, Sig) -- | Reverberates an input signal with a âcoloredâ frequency response. -- -- Reverberates an input signal with a âcoloredâ frequency response -- with a FIR filter. -- --
-- ares combinv asig, krvt, ilpt [, iskip] [, insmps] ---- -- csound doc: http://csound.com/docs/manual/combinv.html combinv :: Sig -> Sig -> D -> Sig -- | Reverberates an input signal with a âcoloredâ frequency response. -- --
-- ares comb asig, krvt, ilpt [, iskip] [, insmps] ---- -- csound doc: http://csound.com/docs/manual/comb.html comb :: Sig -> Sig -> D -> Sig -- | A physical model reverberator. -- -- babo stands for ball-within-the-box. It is a physical model -- reverberator based on the paper by Davide Rocchesso "The Ball within -- the Box: a sound-processing metaphor", Computer Music Journal, Vol 19, -- N.4, pp.45-47, Winter 1995. -- --
-- a1, a2 babo asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno] ---- -- csound doc: http://csound.com/docs/manual/babo.html babo :: Sig -> Sig -> Sig -> Sig -> D -> D -> D -> (Sig, Sig) -- | Reverberates an input signal with a flat frequency response. -- --
-- ares alpass asig, xrvt, ilpt [, iskip] [, insmps] ---- -- csound doc: http://csound.com/docs/manual/alpass.html alpass :: Sig -> Sig -> D -> Sig -- | Writes a multi-channel audio signal to a ZAK array with moving virtual -- sources. -- --
-- vbapzmove inumchnls, istartndx, asig, idur, ispread, ifldnum, ifld1, \ -- ifld2, [...] ---- -- csound doc: http://csound.com/docs/manual/vbapzmove.html vbapzmove :: Sig -> D -> D -> D -> [D] -> SE () -- | Writes a multi-channel audio signal to a ZAK array. -- --
-- vbapz inumchnls, istartndx, asig, kazim [, kelev] [, kspread] ---- -- csound doc: http://csound.com/docs/manual/vbapz.html vbapz :: D -> D -> Sig -> Sig -> SE () -- | Distributes an audio signal among many channels with moving virtual -- sources. -- -- Distributes an audio signal among upto 64 channels with moving virtual -- sources. -- --
-- ar1[, ar2...] vbapmove asig, idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] -- aarray[] vbapmove asig, idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] ---- -- csound doc: http://csound.com/docs/manual/vbapmove.html vbapmove :: Tuple a => Sig -> D -> D -> D -> [D] -> a -- | Configures VBAP output according to loudspeaker parameters. -- --
-- vbaplsinit idim, ilsnum [, idir1] [, idir2] [...] [, idir32] -- vbaplsinit idim, ilsnum, ilsarray ---- -- csound doc: http://csound.com/docs/manual/vbaplsinit.html vbaplsinit :: D -> D -> SE () -- | Calculates the gains for a sound location between multiple channels -- with moving virtual sources. -- --
-- kr1[, kr2...] vbapgmove idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] -- karray[] vbapgmove idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] ---- -- csound doc: http://csound.com/docs/manual/vbapgmove.html vbapgmove :: Tuple a => D -> D -> D -> D -> a -- | Calculates the gains for a sound location between multiple channels. -- -- Calculates the gains for a sound location for up to 64. -- --
-- k1[, k2...] vbapg kazim [,kelev] [, kspread] [, ilayout] -- karray[] vbapg kazim [,kelev] [, kspread] [, ilayout] ---- -- csound doc: http://csound.com/docs/manual/vbapg.html vbapg :: Tuple a => Sig -> a -- | Distributes an audio signal among 8 channels with moving virtual -- sources. -- --
-- ar1, ..., ar8 vbap8move asig, idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] ---- -- csound doc: http://csound.com/docs/manual/vbap8move.html vbap8move :: Tuple a => Sig -> D -> D -> D -> [D] -> a -- | Distributes an audio signal among 8 channels. -- --
-- ar1, ..., ar8 vbap8 asig, kazim [, kelev] [, kspread] ---- -- csound doc: http://csound.com/docs/manual/vbap8.html vbap8 :: Tuple a => Sig -> Sig -> a -- | Distributes an audio signal among 4 channels with moving virtual -- sources. -- --
-- ar1, ar2, ar3, ar4 vbap4move asig, idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] ---- -- csound doc: http://csound.com/docs/manual/vbap4move.html vbap4move :: Tuple a => Sig -> D -> D -> D -> [D] -> a -- | Distributes an audio signal among 4 channels. -- --
-- ar1, ar2, ar3, ar4 vbap4 asig, kazim [, kelev] [, kspread] ---- -- csound doc: http://csound.com/docs/manual/vbap4.html vbap4 :: Sig -> Sig -> (Sig, Sig, Sig, Sig) -- | Distribute an audio signal among 16 channels with moving virtual -- sources. -- --
-- ar1, ..., ar16 vbap16move asig, idur, ispread, ifldnum, ifld1 \ -- [, ifld2] [...] ---- -- csound doc: http://csound.com/docs/manual/vbap16move.html vbap16move :: Tuple a => Sig -> D -> D -> D -> [D] -> a -- | Distributes an audio signal among 16 channels. -- --
-- ar1, ..., ar16 vbap16 asig, kazim [, kelev] [, kspread] ---- -- csound doc: http://csound.com/docs/manual/vbap16.html vbap16 :: Tuple a => Sig -> Sig -> a -- | Distributes an audio signal among many channels. -- -- Distributes an audio signal amongmany channels, up to 64 in the first -- form, arbitrary in the second. -- --
-- ar1[, ar2...] vbap asig, kazim [, -- kelev] [, kspread] [, ilayout] -- array[] vbap asig, kazim [, -- kelev] [, kspread] [, ilayout] ---- -- csound doc: http://csound.com/docs/manual/vbap.html vbap :: Tuple a => Sig -> Sig -> a -- | Generates output signals based on a previously defined space opcode. -- -- spsend depends upon the existence of a previously defined space. The -- output signals from spsend are derived from the values given for xy -- and reverb in the space and are ready to be sent to local or global -- reverb units (see example below). -- --
-- a1, a2, a3, a4 spsend ---- -- csound doc: http://csound.com/docs/manual/spsend.html spsend :: (Sig, Sig, Sig, Sig) -- | Calculates distance values from xy coordinates. -- -- spdist uses the same xy data as space, also either from a text file -- using Gen28 or from x and y arguments given to the unit directly. The -- purpose of this unit is to make available the values for distance that -- are calculated from the xy coordinates. -- --
-- k1 spdist ifn, ktime, kx, ky ---- -- csound doc: http://csound.com/docs/manual/spdist.html spdist :: Tab -> Sig -> Sig -> Sig -> Sig -- | Can be used to render an impulse response for a 3D space at i-time. -- -- This opcode positions the input sound in a 3D space, with optional -- simulation of room acoustics, in various output formats. spat3dt can -- be used to render the impulse response at i-time, storing output in a -- function table, suitable for convolution. -- --
-- spat3dt ioutft, iX, iY, iZ, idist, ift, imode, irlen [, iftnocl] ---- -- csound doc: http://csound.com/docs/manual/spat3dt.html spat3dt :: D -> D -> D -> D -> D -> D -> D -> D -> SE () -- | Positions the input sound in a 3D space with the sound source position -- set at i-time. -- -- This opcode positions the input sound in a 3D space, with optional -- simulation of room acoustics, in various output formats. With spat3di, -- sound source position is set at i-time. -- --
-- aW, aX, aY, aZ spat3di ain, iX, iY, iZ, idist, ift, imode [, istor] ---- -- csound doc: http://csound.com/docs/manual/spat3di.html spat3di :: Sig -> D -> D -> D -> D -> D -> D -> (Sig, Sig, Sig, Sig) -- | Positions the input sound in a 3D space and allows moving the sound at -- k-rate. -- -- This opcode positions the input sound in a 3D space, with optional -- simulation of room acoustics, in various output formats. spat3d allows -- moving the sound at k-rate (this movement is interpolated internally -- to eliminate "zipper noise" if sr not equal to kr). -- --
-- aW, aX, aY, aZ spat3d ain, kX, kY, kZ, idist, ift, imode, imdel, iovr [, istor] ---- -- csound doc: http://csound.com/docs/manual/spat3d.html spat3d :: Sig -> Sig -> Sig -> Sig -> D -> D -> D -> D -> D -> (Sig, Sig, Sig, Sig) -- | Distribute an audio signal across two channels. -- -- Distribute an audio signal across two channels with a choice of -- methods. -- --
-- a1, a2 pan2 asig, xp [, imode] ---- -- csound doc: http://csound.com/docs/manual/pan2.html pan2 :: Sig -> Sig -> (Sig, Sig) -- | Distribute an audio signal amongst four channels. -- -- Distribute an audio signal amongst four channels with localization -- control. -- --
-- a1, a2, a3, a4 pan asig, kx, ky, ifn [, imode] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/pan.html pan :: Sig -> Sig -> Sig -> Tab -> (Sig, Sig, Sig, Sig) -- | Takes an input signal and distributes between 2 or 4 channels. -- -- locsig takes an input signal and distributes it among 2 or 4 channels -- using values in degrees to calculate the balance between adjacent -- channels. It also takes arguments for distance (used to attenuate -- signals that are to sound as if they are some distance further than -- the loudspeaker itself), and for the amount the signal that will be -- sent to reverberators. This unit is based upon the example in the -- Charles Dodge/Thomas Jerse book, Computer Music, page 320. -- --
-- a1, a2 locsig asig, kdegree, kdistance, kreverbsend -- a1, a2, a3, a4 locsig asig, kdegree, kdistance, kreverbsend ---- -- csound doc: http://csound.com/docs/manual/locsig.html locsig :: Sig -> Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig) -- | Distributes the audio signals of a previous locsig opcode. -- -- locsend depends upon the existence of a previously defined locsig. The -- number of output signals must match the number in the previous locsig. -- The output signals from locsend are derived from the values given for -- distance and reverb in the locsig and are ready to be sent to local or -- global reverb units (see example below). The reverb amount and the -- balance between the 2 or 4 channels are calculated in the same way as -- described in the Dodge book (an essential text!). -- --
-- a1, a2 locsend -- a1, a2, a3, a4 locsend ---- -- csound doc: http://csound.com/docs/manual/locsend.html locsend :: (Sig, Sig, Sig, Sig) -- | Generates static 3d binaural audio for headphones using a Woodworth -- based spherical head model with improved low frequency phase accuracy. -- -- This opcode takes a source signal and spatialises it in the 3 -- dimensional space around a listener using head related transfer -- function (HRTF) based filters. It produces a static output (azimuth -- and elevation parameters are i-rate), because a static source allows -- much more efficient processing than hrtfmove and hrtfmove2,. -- --
-- aleft, aright hrtfstat asrc, iAz, iElev, ifilel, ifiler [,iradius, isr] -- ---- -- csound doc: http://csound.com/docs/manual/hrtfstat.html hrtfstat :: Sig -> D -> D -> D -> D -> (Sig, Sig) -- | A binaural, dynamic FDN based diffuse-field reverberator. The opcode -- works independently as an efficient, flexible reverberator. -- -- A frequency-dependent, efficient reverberant field is created based on -- low and high frequency desired reverb times. The opcode is designed to -- work with hrtfearly, ideally using its outputs as inputs. However, -- hrtfreverb can be used as a standalone tool. Stability is enforced. -- --
-- aleft, aright, idel hrtfreverb asrc, ilowrt60, ihighrt60, ifilel, ifiler [,isr, imfp, iorder] ---- -- csound doc: http://csound.com/docs/manual/hrtfreverb.html hrtfreverb :: Sig -> D -> D -> D -> D -> (Sig, Sig, D) -- | Generates dynamic 3d binaural audio for headphones using a Woodworth -- based spherical head model with improved low frequency phase accuracy. -- -- This opcode takes a source signal and spatialises it in the 3 -- dimensional space around a listener using head related transfer -- function (HRTF) based filters. -- --
-- aleft, aright hrtfmove2 asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr] ---- -- csound doc: http://csound.com/docs/manual/hrtfmove2.html hrtfmove2 :: Sig -> Sig -> Sig -> D -> D -> (Sig, Sig) -- | Generates dynamic 3d binaural audio for headphones using magnitude -- interpolation and phase truncation. -- -- This opcode takes a source signal and spatialises it in the 3 -- dimensional space around a listener by convolving the source with -- stored head related transfer function (HRTF) based filters. -- --
-- aleft, aright hrtfmove asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr] ---- -- csound doc: http://csound.com/docs/manual/hrtfmove.html hrtfmove :: Sig -> Sig -> Sig -> D -> D -> (Sig, Sig) -- | Generates 3D binaural audio with high-fidelity early reflections in a -- parametric room using a Phase Truncation algorithm. -- -- This opcode essentially nests the hrtfmove opcode in an image model -- for a user-definable shoebox-shaped room. A default room can be -- selected, or advanced room parameters can be used. Room surfaces can -- be controlled with high and low-frequency absorption coefficients and -- gain factors of a three-band equaliser. -- --
-- aleft, aright, irt60low, irt60high, imfp hrtfearly asrc, ksrcx, ksrcy, ksrcz, klstnrx, klstnry, klstnrz, \ -- ifilel, ifiler, idefroom [,ifade, isr, iorder, ithreed, kheadrot, iroomx, iroomy, iroomz, iwallhigh, \ -- iwalllow, iwallgain1, iwallgain2, iwallgain3, ifloorhigh, ifloorlow, ifloorgain1, ifloorgain2, \ -- ifloorgain3, iceilinghigh, iceilinglow, iceilinggain1, iceilinggain2, iceilinggain3] ---- -- csound doc: http://csound.com/docs/manual/hrtfearly.html hrtfearly :: Tuple a => Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> D -> a -- | Codes a signal into the ambisonic B format. -- -- Codes a signal into the ambisonic B format -- --
-- aw, ax, ay, az bformenc1 asig, kalpha, kbeta -- aw, ax, ay, az, ar, as, at, au, av bformenc1 asig, kalpha, kbeta -- aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc1 \ -- asig, kalpha, kbeta -- aarray[] bformenc1 asig, kalpha, kbeta ---- -- csound doc: http://csound.com/docs/manual/bformenc1.html bformenc1 :: Tuple a => Sig -> Sig -> Sig -> a -- | Deprecated. Codes a signal into the ambisonic B format. -- -- Codes a signal into the ambisonic B format. Note that this opcode is -- deprecated as it is inaccurate, and is replaced by the much better -- opcode bformenc1 which replicates all the important features; also -- note that the gain arguments are not available in bformenc1. -- --
-- aw, ax, ay, az bformenc asig, kalpha, kbeta, kord0, kord1 -- aw, ax, ay, az, ar, as, at, au, av bformenc asig, kalpha, kbeta, \ -- kord0, kord1 , kord2 -- aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc \ -- asig, kalpha, kbeta, kord0, kord1, kord2, kord3 ---- -- csound doc: http://csound.com/docs/manual/bformenc.html bformenc :: Tuple a => Sig -> Sig -> Sig -> Sig -> Sig -> a -- | Decodes an ambisonic B format signal -- -- Decodes an ambisonic B format signal into loudspeaker specific -- signals. -- --
-- ao1, ao2 bformdec1 isetup, aw, ax, ay, az [, ar, as, at, au, av \ -- [, abk, al, am, an, ao, ap, aq]] -- ao1, ao2, ao3, ao4 bformdec1 isetup, aw, ax, ay, az [, ar, as, at, \ -- au, av [, abk, al, am, an, ao, ap, aq]] -- ao1, ao2, ao3, ao4, ao5 bformdec1 isetup, aw, ax, ay, az [, ar, as, \ -- at, au, av [, abk, al, am, an, ao, ap, aq]] -- ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 bformdec1 isetup, aw, ax, ay, az \ -- [, ar, as, at, au, av [, abk, al, am, an, ao, ap, -- aq]]] -- aout[] bformdec1 isetup, abform[] ---- -- csound doc: http://csound.com/docs/manual/bformdec1.html bformdec1 :: Tuple a => D -> Sig -> Sig -> Sig -> Sig -> a -- | Deprecated. Decodes an ambisonic B format signal. -- -- Decodes an ambisonic B format signal into loudspeaker specific -- signals. Note that this opcode is deprecated as it is inaccurate, and -- is replaced by the much better opcode bformdec1 which replicates all -- the important features. -- --
-- ao1, ao2 bformdec isetup, aw, ax, ay, az [, ar, as, at, au, av \ -- [, abk, al, am, an, ao, ap, aq]] -- ao1, ao2, ao3, ao4 bformdec isetup, aw, ax, ay, az [, ar, as, at, \ -- au, av [, abk, al, am, an, ao, ap, aq]] -- ao1, ao2, ao3, ao4, ao5 bformdec isetup, aw, ax, ay, az [, ar, as, \ -- at, au, av [, abk, al, am, an, ao, ap, aq]] -- ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 bformdec isetup, aw, ax, ay, az \ -- [, ar, as, at, au, av [, abk, al, am, an, ao, ap, aq]]] ---- -- csound doc: http://csound.com/docs/manual/bformdec.html bformdec :: Tuple a => D -> Sig -> Sig -> Sig -> Sig -> a -- | Variable delay opcodes with high quality interpolation. -- --
-- aout1, aout2 vdelayxws ain1, ain2, adl, imd, iws [, ist] ---- -- csound doc: http://csound.com/docs/manual/vdelayxws.html vdelayxws :: Sig -> Sig -> Sig -> D -> D -> (Sig, Sig) -- | Variable delay opcodes with high quality interpolation. -- --
-- aout1, aout2, aout3, aout4 vdelayxwq ain1, ain2, ain3, ain4, adl, \ -- imd, iws [, ist] ---- -- csound doc: http://csound.com/docs/manual/vdelayxwq.html vdelayxwq :: Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> (Sig, Sig, Sig, Sig) -- | Variable delay opcodes with high quality interpolation. -- --
-- aout vdelayxw ain, adl, imd, iws [, ist] ---- -- csound doc: http://csound.com/docs/manual/vdelayxw.html vdelayxw :: Sig -> Sig -> D -> D -> Sig -- | A stereo variable delay opcode with high quality interpolation. -- --
-- aout1, aout2 vdelayxs ain1, ain2, adl, imd, iws [, ist] ---- -- csound doc: http://csound.com/docs/manual/vdelayxs.html vdelayxs :: Sig -> Sig -> Sig -> D -> D -> (Sig, Sig) -- | A 4-channel variable delay opcode with high quality interpolation. -- --
-- aout1, aout2, aout3, aout4 vdelayxq ain1, ain2, ain3, ain4, adl, imd, iws [, ist] ---- -- csound doc: http://csound.com/docs/manual/vdelayxq.html vdelayxq :: Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> (Sig, Sig, Sig, Sig) -- | A variable delay opcode with high quality interpolation. -- --
-- aout vdelayx ain, adl, imd, iws [, ist] ---- -- csound doc: http://csound.com/docs/manual/vdelayx.html vdelayx :: Sig -> Sig -> D -> D -> Sig -- | A variable time delay with cubic interpolation. -- -- vdelay3 is experimental. It is the same as vdelay except that it uses -- cubic interpolation. (New in Version 3.50.) -- --
-- ares vdelay3 asig, adel, imaxdel [, iskip] ---- -- csound doc: http://csound.com/docs/manual/vdelay3.html vdelay3 :: Sig -> Sig -> D -> Sig -- | An interpolating variable time delay. -- -- This is an interpolating variable time delay, it is not very different -- from the existing implementation (deltapi), it is only easier to use. -- --
-- ares vdelay asig, adel, imaxdel [, iskip] ---- -- csound doc: http://csound.com/docs/manual/vdelay.html vdelay :: Sig -> Sig -> D -> Sig -- | Multitap delay line implementation. -- --
-- ares multitap asig [, itime1, igain1] [, itime2, igain2] [...] ---- -- csound doc: http://csound.com/docs/manual/multitap.html multitap :: Sig -> [D] -> Sig -- | Mixes the input signal to a delay line. -- -- deltapxw mixes the input signal to a delay line. This opcode can be -- mixed with reading units (deltap, deltapn, deltapi, deltap3, and -- deltapx) in any order; the actual delay time is the difference of the -- read and write time. This opcode can read from and write to a -- delayr/delayw delay line with interpolation. -- --
-- deltapxw ain, adel, iwsize ---- -- csound doc: http://csound.com/docs/manual/deltapxw.html deltapxw :: Sig -> Sig -> D -> SE () -- | Read from or write to a delay line with interpolation. -- -- deltapx is similar to deltapi or deltap3. However, it allows higher -- quality interpolation. This opcode can read from and write to a -- delayr/delayw delay line with interpolation. -- --
-- aout deltapx adel, iwsize ---- -- csound doc: http://csound.com/docs/manual/deltapx.html deltapx :: Sig -> D -> SE Sig -- | Taps a delay line at variable offset times. -- -- Tap a delay line at variable offset times. -- --
-- ares deltapn xnumsamps ---- -- csound doc: http://csound.com/docs/manual/deltapn.html deltapn :: Sig -> Sig -- | Taps a delay line at variable offset times, uses interpolation. -- --
-- ares deltapi xdlt ---- -- csound doc: http://csound.com/docs/manual/deltapi.html deltapi :: Sig -> SE Sig -- | Taps a delay line at variable offset times, uses cubic interpolation. -- --
-- ares deltap3 xdlt ---- -- csound doc: http://csound.com/docs/manual/deltap3.html deltap3 :: Sig -> SE Sig -- | Taps a delay line at variable offset times. -- -- Tap a delay line at variable offset times. -- --
-- ares deltap kdlt ---- -- csound doc: http://csound.com/docs/manual/deltap.html deltap :: Sig -> SE Sig -- | Writes the audio signal to a digital delay line. -- --
-- delayw asig ---- -- csound doc: http://csound.com/docs/manual/delayw.html delayw :: Sig -> SE () -- | Reads from an automatically established digital delay line. -- --
-- ares delayr idlt [, iskip] ---- -- csound doc: http://csound.com/docs/manual/delayr.html delayr :: D -> SE Sig -- | Delays an input signal by some time interval. -- -- k-rate delay opcodes -- --
-- kr vdel_k ksig, kdel, imdel[, imode] ---- -- csound doc: http://csound.com/docs/manual/delayk.html vdel_k :: Sig -> Sig -> D -> Sig -- | Delays an input signal by some time interval. -- -- k-rate delay opcodes -- --
-- kr delayk ksig, idel[, imode] ---- -- csound doc: http://csound.com/docs/manual/delayk.html delayk :: Sig -> D -> Sig -- | Delays an input signal by one sample. -- --
-- ares delay1 asig [, iskip] ---- -- csound doc: http://csound.com/docs/manual/delay1.html delay1 :: Sig -> Sig -- | A time-varying convolution (FIR filter) opcode. -- -- An opcode that takes two incoming signals and interprets one of them -- as the coefficients of linear time-variable finite impulse response -- filter. This is implemented via direct convolution (for partition -- sizes of 1 sample) or DFT-based partitioned convolution. The signals -- can be frozen (i.e. the filter coefficients are kept the -- same) at any point in time, at a-rate or k-rate. -- --
-- ares tvconv asig1, asig2, xfreez1, -- xfreez2, iparts, ifils ---- -- csound doc: http://csound.com/docs/manual/tvconv.html tvconv :: Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | Convolution based on a uniformly partitioned overlap-save algorithm -- -- Convolution based on a uniformly partitioned overlap-save algorithm. -- Compared to the convolve opcode, pconvolve has these benefits: -- --
-- ar1 [, ar2] [, ar3] [, ar4] pconvolve ain, ifilcod [, ipartitionsize, ichannel] ---- -- csound doc: http://csound.com/docs/manual/pconvolve.html pconvolve :: Tuple a => Sig -> Str -> a -- | Partitioned convolution with dynamically reloadable impulse response -- -- Computationally efficient, partitioned convolution, using a function -- table as impulse response (IR) source, similar to the ftconv opcode. -- The liveconv opcode allows dynamic reload of IR data at any time while -- the convolution is running, controlled by the kupdate parameter. Due -- to the manner in which the IR is updated, the operation can be done -- without audio artifacts in the convolution output. -- --
-- ares liveconv ain, ift, iplen, kupdate, kclear ---- -- csound doc: http://csound.com/docs/manual/liveconv.html liveconv :: Sig -> D -> D -> Sig -> Sig -> Sig -- | Morphs between multiple ftables as specified in a list. -- -- Uses an index into a table of ftable numbers to morph between adjacent -- tables in the list.This morphed function is written into the table -- referenced by iresfn on every k-cycle. -- --
-- ftmorf kftndx, iftfn, iresfn ---- -- csound doc: http://csound.com/docs/manual/ftmorf.html ftmorf :: Sig -> Tab -> Tab -> SE () -- | Low latency multichannel convolution, using a function table as -- impulse response source. -- -- Low latency multichannel convolution, using a function table as -- impulse response source. The algorithm is to split the impulse -- response to partitions of length determined by the iplen parameter, -- and delay and mix partitions so that the original, full length impulse -- response is reconstructed without gaps. The output delay (latency) is -- iplen samples, and does not depend on the control rate, unlike in the -- case of other convolve opcodes. -- --
-- a1[, a2[, a3[, ... a8]]] ftconv ain, ift, iplen[, iskipsamples \ -- [, iirlen[, iskipinit]]] ---- -- csound doc: http://csound.com/docs/manual/ftconv.html ftconv :: Tuple a => Sig -> D -> D -> a -- | A direct convolution opcode. -- --
-- ares dconv asig, isize, ifn ---- -- csound doc: http://csound.com/docs/manual/dconv.html dconv :: Sig -> D -> Tab -> Sig -- | Cross synthesis using FFT's. -- -- This is an implementation of cross synthesis using FFT's. -- --
-- ares cross2 ain1, ain2, isize, ioverlap, iwin, kbias ---- -- csound doc: http://csound.com/docs/manual/cross2.html cross2 :: Sig -> Sig -> D -> D -> D -> Sig -> Sig -- | Convolves a signal and an impulse response. -- -- Output is the convolution of signal ain and the impulse response -- contained in ifilcod. If more than one output signal is supplied, each -- will be convolved with the same impulse response. Note that it is -- considerably more efficient to use one instance of the operator when -- processing a mono input to create stereo, or quad, outputs. -- --
-- ar1 [, ar2] [, ar3] [, ar4] convolve ain, ifilcod [, ichannel] ---- -- csound doc: http://csound.com/docs/manual/convolve.html convolve :: Tuple a => Sig -> Str -> a -- | Adjusts the amplitude audio signal according to a root-mean-square -- value. -- --
-- ares gain asig, krms [, ihp] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/gain.html gain :: Sig -> Sig -> Sig -- | A dynamic compressor/expander. -- -- This opcode dynamically modifies a gain value applied to the input -- sound ain by comparing its power level to a given threshold level. The -- signal will be compressed/expanded with different factors regarding -- that it is over or under the threshold. -- --
-- ares dam asig, kthreshold, icomp1, icomp2, irtime, iftime ---- -- csound doc: http://csound.com/docs/manual/dam.html dam :: Sig -> Sig -> D -> D -> D -> D -> Sig -- | Compress, limit, expand, duck or gate an audio signal. -- -- This unit functions as an audio compressor, limiter, expander, or -- noise gate, using either soft-knee or hard-knee mapping, and with -- dynamically variable performance characteristics. It takes two audio -- input signals, aasig and acsig, the first of which is modified by a -- running analysis of the second. Both signals can be the same, or the -- first can be modified by a different controlling signal. -- --
-- ar compress2 aasig, acsig, kthresh, kloknee, khiknee, kratio, katt, krel, ilook ---- -- csound doc: http://csound.com/docs/manual/compress2.html compress2 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> Sig -- | Compress, limit, expand, duck or gate an audio signal. -- -- This unit functions as an audio compressor, limiter, expander, or -- noise gate, using either soft-knee or hard-knee mapping, and with -- dynamically variable performance characteristics. It takes two audio -- input signals, aasig and acsig, the first of which is modified by a -- running analysis of the second. Both signals can be the same, or the -- first can be modified by a different controlling signal. -- --
-- ar compress aasig, acsig, kthresh, kloknee, khiknee, kratio, katt, krel, ilook ---- -- csound doc: http://csound.com/docs/manual/compress.html compress :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> Sig -- | Clips a signal to a predefined limit. -- -- Clips an a-rate signal to a predefined limit, in a âsoftâ manner, -- using one of three methods. -- --
-- ares clip asig, imeth, ilimit [, iarg] ---- -- csound doc: http://csound.com/docs/manual/clip.html clip :: Sig -> D -> D -> Sig -- | Adjust one audio signal according to the values of another. -- -- The rms power of asig can be interrogated, set, or adjusted to match -- that of a comparator signal. -- --
-- ares balance asig, acomp [, ihp] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/balance.html balance :: Sig -> Sig -> Sig -- | Returns the length of an MP3 sound file. -- --
-- ir mp3len ifilcod ---- -- csound doc: http://csound.com/docs/manual/mp3len.html mp3len :: Str -> D -- | Checks that a file can be used. -- -- Returns 1 if the sound file is valid, or 0 if not. -- --
-- ir filevalid ifilcod ---- -- csound doc: http://csound.com/docs/manual/filevalid.html filevalid :: Str -> D -- | Returns the sample rate of a sound file. -- --
-- ir filesr ifilcod [, iallowraw] ---- -- csound doc: http://csound.com/docs/manual/filesr.html filesr :: Str -> D -- | Returns the peak absolute value of a sound file. -- --
-- ir filepeak ifilcod [, ichnl] ---- -- csound doc: http://csound.com/docs/manual/filepeak.html filepeak :: Str -> D -- | Returns the number of channels in a sound file. -- --
-- ir filenchnls ifilcod [, iallowraw] ---- -- csound doc: http://csound.com/docs/manual/filenchnls.html filenchnls :: Str -> D -- | Returns the length of a sound file. -- --
-- ir filelen ifilcod, [iallowraw] ---- -- csound doc: http://csound.com/docs/manual/filelen.html filelen :: Str -> D -- | Returns the number of bits in each sample in a sound file. -- --
-- ir filebit ifilcod [, iallowraw] ---- -- csound doc: http://csound.com/docs/manual/filebit.html filebit :: Str -> D -- | Prints at init-time using a printf() style syntax. -- --
-- prints "string" [, kval1] [, kval2] [...] ---- -- csound doc: http://csound.com/docs/manual/prints.html prints :: Str -> [Sig] -> SE () -- | Prints a new value every time a control variable changes using a -- printf() style syntax. -- --
-- printks2 "string", kval ---- -- csound doc: http://csound.com/docs/manual/printks2.html printks2 :: Str -> Sig -> SE () -- | Prints at k-rate using a printf() style syntax. -- --
-- printks "string", itime [, kval1] [, kval2] [...] ---- -- csound doc: http://csound.com/docs/manual/printks.html printks :: Str -> D -> [Sig] -> SE () -- | Prints a new value every time a control variable changes. -- --
-- printk2 kvar [, inumspaces] ---- -- csound doc: http://csound.com/docs/manual/printk2.html printk2 :: Sig -> SE () -- | Prints one k-rate value at specified intervals. -- --
-- printk itime, kval [, ispace] ---- -- csound doc: http://csound.com/docs/manual/printk.html printk :: D -> Sig -> SE () -- | printf-style formatted output -- -- printf and printf_i write formatted output, similarly to the C -- function printf(). printf_i runs at i-time only, while printf runs -- both at initialization and performance time. -- --
-- printf Sfmt, ktrig, [xarg1[, xarg2[, ... ]]] ---- -- csound doc: http://csound.com/docs/manual/printf.html printf :: Str -> Sig -> [Sig] -> SE () -- | printf-style formatted output -- -- printf and printf_i write formatted output, similarly to the C -- function printf(). printf_i runs at i-time only, while printf runs -- both at initialization and performance time. -- --
-- printf_i Sfmt, itrig, [iarg1[, iarg2[, ... ]]] ---- -- csound doc: http://csound.com/docs/manual/printf.html printf_i :: Str -> D -> [D] -> SE () -- | Displays the values init (i-rate) variables. -- -- These units will print orchestra init-values. -- --
-- print iarg [, iarg1] [, iarg2] [...] ---- -- csound doc: http://csound.com/docs/manual/print.html print' :: [D] -> SE () -- | Allows text to be displayed from instruments like sliders -- -- Allows text to be displayed from instruments like sliders etc. (only -- on Unix and Windows at present) -- --
-- flashtxt iwhich, String ---- -- csound doc: http://csound.com/docs/manual/flashtxt.html flashtxt :: D -> Str -> SE () -- | Displays the Fourier Transform of an audio or control signal. -- -- These units will print orchestra init-values, or produce graphic -- display of orchestra control signals and audio signals. Uses X11 -- windows if enabled, else (or if -g flag is set) displays are -- approximated in ASCII characters. -- --
-- dispfft xsig, iprd, iwsiz [, iwtyp] [, idbout] [, iwtflg] [,imin] [,imax] ---- -- csound doc: http://csound.com/docs/manual/dispfft.html dispfft :: Sig -> D -> D -> SE () -- | Retrieves variables from a user-defined opcode block, -- -- The xin and xout opcodes copy variables to and from the opcode -- definition, allowing communication with the calling instrument. -- --
-- xout xoutarg1 [, xoutarg2] ... [, xoutargN] ---- -- csound doc: http://csound.com/docs/manual/xout.html xout :: [Sig] -> SE () -- | Passes variables to a user-defined opcode block, -- -- The xin and xout opcodes copy variables to and from the opcode -- definition, allowing communication with the calling instrument. -- --
-- xinarg1 [, xinarg2] ... [xinargN] xin ---- -- csound doc: http://csound.com/docs/manual/xin.html xin :: Tuple a => a -- | Sets the local ksmps value in an instrument or user-defined opcode -- block -- -- Sets the local ksmps value in an instrument or user-defined opcode -- block. -- --
-- setksmps iksmps ---- -- csound doc: http://csound.com/docs/manual/setksmps.html setksmps :: D -> SE () -- | Writes data to the named software bus. -- -- Write to a channel of the named software bus. Implies declaring the -- channel with imod=2 (see also chn_k, chn_a, and chn_S). -- --
-- chnsetks Sval, Sname ---- -- csound doc: http://csound.com/docs/manual/chnset.html chnsetks :: Str -> Str -> SE () -- | Writes data to the named software bus. -- -- Write to a channel of the named software bus. Implies declaring the -- channel with imod=2 (see also chn_k, chn_a, and chn_S). -- --
-- chnset ival, Sname -- chnset kval, Sname -- chnset aval, Sname -- chnset Sval, Sname ---- -- csound doc: http://csound.com/docs/manual/chnset.html chnset :: D -> Str -> SE () -- | Query parameters of a channel. -- -- Query parameters of a channel (if it does not exist, all returned -- values are zero). -- --
-- itype, imode, ictltype, idflt, imin, imax chnparams Sname ---- -- csound doc: http://csound.com/docs/manual/chnparams.html chnparams :: Tuple a => Str -> a -- | Writes audio data to the named software bus, mixing to the previous -- output. -- -- Adds an audio signal to a channel of the named software bus. Implies -- declaring the channel with imode=2 (see also chn_a). -- --
-- chnmix aval, Sname ---- -- csound doc: http://csound.com/docs/manual/chnmix.html chnmix :: Sig -> Str -> SE () -- | Reads data from the software bus. -- -- Reads data from a channel of the inward named software bus. Implies -- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S). -- --
-- Sval chngetks Sname ---- -- csound doc: http://csound.com/docs/manual/chnget.html chngetks :: Str -> Str -- | Reads data from the software bus. -- -- Reads data from a channel of the inward named software bus. Implies -- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S). -- --
-- ival chnget Sname -- kval chnget Sname -- aval chnget Sname -- Sval chnget Sname ---- -- csound doc: http://csound.com/docs/manual/chnget.html chnget :: Str -> SE Str -- | Export a global variable as a channel of the bus. -- -- Export a global variable as a channel of the bus; the channel should -- not already exist, otherwise an init error occurs. This opcode is -- normally called from the orchestra header, and allows the host -- application to read or write orchestra variables directly, without -- having to use chnget or chnset to copy data. -- --
-- gival chnexport Sname, imode[, itype, idflt, imin, imax] -- gkval chnexport Sname, imode[, itype, idflt, imin, imax] -- gaval chnexport Sname, imode -- gSval chnexport Sname, imode ---- -- csound doc: http://csound.com/docs/manual/chnexport.html chnexport :: Str -> D -> Str -- | Clears an audio output channel of the named software bus. -- -- Clears an audio channel of the named software bus to zero. Implies -- declaring the channel with imode=2 (see also chn_a). -- --
-- chnclear Sname ---- -- csound doc: http://csound.com/docs/manual/chnclear.html chnclear :: Str -> SE () -- | Declare a channel of the named software bus. -- -- Declare a channel of the named software bus, with setting optional -- parameters in the case of a control channel. If the channel does not -- exist yet, it is created, with an inital value of zero or empty -- string. Otherwise, the type (control, audio, or string) of the -- existing channel must match the declaration, or an init error occurs. -- The input/output mode of an existing channel is updated so that it -- becomes the bitwise OR of the previous and the newly specified value. -- --
-- chn_S Sname, imode ---- -- csound doc: http://csound.com/docs/manual/chn.html chn_S :: Str -> D -> SE () -- | Declare a channel of the named software bus. -- -- Declare a channel of the named software bus, with setting optional -- parameters in the case of a control channel. If the channel does not -- exist yet, it is created, with an inital value of zero or empty -- string. Otherwise, the type (control, audio, or string) of the -- existing channel must match the declaration, or an init error occurs. -- The input/output mode of an existing channel is updated so that it -- becomes the bitwise OR of the previous and the newly specified value. -- --
-- chn_a Sname, imode ---- -- csound doc: http://csound.com/docs/manual/chn.html chn_a :: Str -> D -> SE () -- | Declare a channel of the named software bus. -- -- Declare a channel of the named software bus, with setting optional -- parameters in the case of a control channel. If the channel does not -- exist yet, it is created, with an inital value of zero or empty -- string. Otherwise, the type (control, audio, or string) of the -- existing channel must match the declaration, or an init error occurs. -- The input/output mode of an existing channel is updated so that it -- becomes the bitwise OR of the previous and the newly specified value. -- --
-- chn_k Sname, imode[, itype, idflt, imin, ima, ix, iy, iwidth, iheight, Sattributes] ---- -- csound doc: http://csound.com/docs/manual/chn.html chn_k :: Str -> D -> SE () -- | Send data to the outwards software bus -- -- Send data to a channel of the outward software bus. -- --
-- chano kval, kchan -- chano aval, kchan ---- -- csound doc: http://csound.com/docs/manual/chano.html chano :: Sig -> Sig -> SE () -- | Reads data from the software bus -- -- Reads data from a channel of the inward software bus. -- --
-- kval chani kchan -- aval chani kchan ---- -- csound doc: http://csound.com/docs/manual/chani.html chani :: Sig -> SE Sig -- | Deprecated. Writes audio output to a disk file. -- -- The usage of soundouts is discouraged. Please use fout instead. -- --
-- soundouts asigl, asigr, ifilcod [, iformat] ---- -- csound doc: http://csound.com/docs/manual/soundouts.html soundouts :: Sig -> Sig -> Str -> SE () -- | Deprecated. Writes audio output to a disk file. -- -- The usage of soundout is discouraged. Please use fout instead. -- --
-- soundout asig1, ifilcod [, iformat] ---- -- csound doc: http://csound.com/docs/manual/soundout.html soundout :: Sig -> Str -> SE () -- | Writes multi-channel audio data from a ZAK array to an external device -- or stream. -- --
-- outz ksig1 ---- -- csound doc: http://csound.com/docs/manual/outz.html outz :: Sig -> SE () -- | Writes 16-channel audio data to an external device or stream. -- --
-- outx asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8, \ -- asig9, asig10, asig11, asig12, asig13, asig14, asig15, asig16 ---- -- csound doc: http://csound.com/docs/manual/outx.html outx :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends an i-rate or k-rate signal or string to a user-defined channel. -- -- Sends an irate or k-rate signal or string to a user-defined channel. -- --
-- outvalue "channel name", ivalue -- outvalue "channel name", kvalue -- outvalue "channel name", "string" ---- -- csound doc: http://csound.com/docs/manual/outvalue.html outvalue :: Str -> D -> SE () -- | Writes samples to stereo channel 2 of an external device or stream. -- --
-- outs2 asig ---- -- csound doc: http://csound.com/docs/manual/outs2.html outs2 :: Sig -> SE () -- | Writes samples to stereo channel 1 of an external device or stream. -- --
-- outs1 asig ---- -- csound doc: http://csound.com/docs/manual/outs1.html outs1 :: Sig -> SE () -- | Writes stereo audio data to an external device or stream. -- --
-- outs asig1, asig2 ---- -- csound doc: http://csound.com/docs/manual/outs.html outs :: Sig -> Sig -> SE () -- | Allow output to a range of adjacent audio channels on the audio output -- device -- -- outrg outputs audio to a range of adjacent audio channels on the audio -- output device. -- --
-- outrg kstart, aout1 [,aout2, aout3, ..., aoutN] ---- -- csound doc: http://csound.com/docs/manual/outrg.html outrg :: Sig -> [Sig] -> SE () -- | Writes samples to quad channel 4 of an external device or stream. -- --
-- outq4 asig ---- -- csound doc: http://csound.com/docs/manual/outq4.html outq4 :: Sig -> SE () -- | Writes samples to quad channel 3 of an external device or stream. -- --
-- outq3 asig ---- -- csound doc: http://csound.com/docs/manual/outq3.html outq3 :: Sig -> SE () -- | Writes samples to quad channel 2 of an external device or stream. -- --
-- outq2 asig ---- -- csound doc: http://csound.com/docs/manual/outq2.html outq2 :: Sig -> SE () -- | Writes samples to quad channel 1 of an external device or stream. -- --
-- outq1 asig ---- -- csound doc: http://csound.com/docs/manual/outq1.html outq1 :: Sig -> SE () -- | Writes 4-channel audio data to an external device or stream. -- --
-- outq asig1, asig2, asig3, asig4 ---- -- csound doc: http://csound.com/docs/manual/outq.html outq :: Sig -> Sig -> Sig -> Sig -> SE () -- | Writes 8-channel audio data to an external device or stream. -- --
-- outo asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8 ---- -- csound doc: http://csound.com/docs/manual/outo.html outo :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Writes 6-channel audio data to an external device or stream. -- --
-- outh asig1, asig2, asig3, asig4, asig5, asig6 ---- -- csound doc: http://csound.com/docs/manual/outh.html outh :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Writes multi-channel audio data, with user-controllable channels, to -- an external device or stream. -- --
-- outch kchan1, asig1 [, kchan2] [, asig2] [...] ---- -- csound doc: http://csound.com/docs/manual/outch.html outch :: Sig -> [Sig] -> SE () -- | Writes audio data with an arbitrary number of channels to an external -- device or stream. -- --
-- outc asig1 [, asig2] [...] ---- -- csound doc: http://csound.com/docs/manual/outc.html outc :: [Sig] -> SE () -- | Writes 32-channel audio data to an external device or stream. -- --
-- out32 asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8, asig10, \ -- asig11, asig12, asig13, asig14, asig15, asig16, asig17, asig18, \ -- asig19, asig20, asig21, asig22, asig23, asig24, asig25, asig26, \ -- asig27, asig28, asig29, asig30, asig31, asig32 ---- -- csound doc: http://csound.com/docs/manual/out32.html out32 :: 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 -> SE () -- | Writes audio data to an external device or stream. -- -- Writes audio data to an external device or stream, either from audio -- variables or from an audio array. -- --
-- out asig1[, asig2,....] -- out aarray ---- -- csound doc: http://csound.com/docs/manual/out.html out :: Sig -> SE () -- | Returns the audio spout frame. -- -- Returns the audio spout frame (if active), otherwise it returns zero. -- --
-- aout1 [,aout2 ... aoutX] monitor -- aarra monitor ---- -- csound doc: http://csound.com/docs/manual/monitor.html monitor :: Tuple a => a -- | A MIDI delay opcode. -- --
-- mdelay kstatus, kchan, kd1, kd2, kdelay ---- -- csound doc: http://csound.com/docs/manual/mdelay.html mdelay :: Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Reads audio data from an external device or stream. -- -- Reads audio data from an external device or stream. Up to 24 channels -- may be read before v5.14, extended to 40 in later versions. -- --
-- ar1[, ar2[, ar3[, ... a24]]] soundin ifilcod [, iskptim] [, iformat] \ -- [, iskipinit] [, ibufsize] ---- -- csound doc: http://csound.com/docs/manual/soundin.html soundin :: Tuple a => Str -> a -- | Reads mono or stereo audio data from an external MP3 file. -- --
-- ar1, ar2 mp3in ifilcod[, iskptim, iformat, iskipinit, ibufsize] -- ar1 mp3in ifilcod[, iskptim, iformat, iskipinit, ibufsize] ---- -- csound doc: http://csound.com/docs/manual/mp3in.html mp3in :: Str -> (Sig, Sig) -- | Reads multi-channel audio samples into a ZAK array from an external -- device or stream. -- --
-- inz ksig1 ---- -- csound doc: http://csound.com/docs/manual/inz.html inz :: Sig -> SE () -- | Reads a 16-channel audio signal from an external device or stream. -- --
-- ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, \ -- ar13, ar14, ar15, ar16 inx ---- -- csound doc: http://csound.com/docs/manual/inx.html inx :: Tuple a => a -- | Reads a k-rate signal from a user-defined channel. -- -- Reads a k-rate or i-rate signal or string from a user-defined channel. -- --
-- ivalue invalue "channel name" -- kvalue invalue "channel name" -- Sname invalue "channel name" ---- -- csound doc: http://csound.com/docs/manual/invalue.html invalue :: Str -> Str -- | Reads stereo audio data from an external device or stream. -- --
-- ar1, ar2 ins ---- -- csound doc: http://csound.com/docs/manual/ins.html ins :: (Sig, Sig) -- | Allow input from a range of adjacent audio channels from the audio -- input device -- -- inrg reads audio from a range of adjacent audio channels from the -- audio input device. -- --
-- inrg kstart, ain1 [,ain2, ain3, ..., ainN] ---- -- csound doc: http://csound.com/docs/manual/inrg.html inrg :: Sig -> [Sig] -> SE () -- | Reads quad audio data from an external device or stream. -- --
-- ar1, ar2, ar3, a4 inq ---- -- csound doc: http://csound.com/docs/manual/inq.html inq :: (Sig, Sig, Sig, Sig) -- | Reads eight-channel audio data from an external device or stream. -- --
-- ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8 ino ---- -- csound doc: http://csound.com/docs/manual/ino.html ino :: Tuple a => a -- | Reads six-channel audio data from an external device or stream. -- --
-- ar1, ar2, ar3, ar4, ar5, ar6 inh ---- -- csound doc: http://csound.com/docs/manual/inh.html inh :: Tuple a => a -- | Reads from numbered channels in an external audio signal or stream. -- --
-- ain1[, ...] inch kchan1[,...] ---- -- csound doc: http://csound.com/docs/manual/inch.html inch :: Tuple a => [Sig] -> a -- | Reads a 32-channel audio signal from an external device or stream. -- --
-- ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14, \ -- ar15, ar16, ar17, ar18, ar19, ar20, ar21, ar22, ar23, ar24, ar25, ar26, \ -- ar27, ar28, ar29, ar30, ar31, ar32 in32 ---- -- csound doc: http://csound.com/docs/manual/in32.html in32 :: Tuple a => a -- | Reads mono audio data from an external device or stream. -- -- Reads audio data from an external device or stream. -- --
-- ar1 in -- aarray in ---- -- csound doc: http://csound.com/docs/manual/in.html in' :: Sig -- | Reads audio data from a file, and can alter its pitch using one of -- several available interpolation types, as well as convert the sample -- rate to match the orchestra sr setting. -- -- Reads audio data from a file, and can alter its pitch using one of -- several available interpolation types, as well as convert the sample -- rate to match the orchestra sr setting. diskin2 can also read -- multichannel files with any number of channels in the range 1 to 24 in -- versions before 5.14, and 40 after. -- --
-- a1[, a2[, ... aN]] diskin2 ifilcod[, kpitch[, iskiptim \ -- [, iwrap[, iformat[, iwsize[, ibufsize[, iskipinit]]]]]]] -- ar1[] diskin2 ifilcod[, kpitch[, iskiptim \ -- [, iwrap[, iformat[, iwsize[, ibufsize[, iskipinit]]]]]]] ---- -- csound doc: http://csound.com/docs/manual/diskin2.html diskin2 :: Tuple a => Str -> a -- | Reads audio data from an external device or stream and can alter its -- pitch. -- --
-- ar1 [, ar2 [, ar3 [, ... arN]]] diskin ifilcod[, kpitch[, iskiptim \ -- [, iwraparound[, iformat[, iskipinit]]]]] -- ar1[] diskin ifilcod[, kpitch[, iskiptim \ -- [, iwraparound[, iformat[, iskipinit]]]]] ---- -- csound doc: http://csound.com/docs/manual/diskin.html diskin :: Tuple a => Str -> a -- | Periodically reads four orchestra control-signal values from an -- external file. -- --
-- kr1, kr2, kr3, kr4 readk4 ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/readk4.html readk4 :: Str -> D -> D -> (Sig, Sig, Sig, Sig) -- | Periodically reads three orchestra control-signal values from an -- external file. -- --
-- kr1, kr2, kr3 readk3 ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/readk3.html readk3 :: Str -> D -> D -> (Sig, Sig, Sig) -- | Periodically reads two orchestra control-signal values from an -- external file. -- --
-- kr1, kr2 readk2 ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/readk2.html readk2 :: Str -> D -> D -> (Sig, Sig) -- | Periodically reads an orchestra control-signal value from an external -- file. -- -- Periodically reads an orchestra control-signal value from a named -- external file in a specific format. -- --
-- kres readk ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/readk.html readk :: Str -> D -> D -> Sig -- | Read a line of text from an external file. -- -- Read a line of text from an external file once on initialisation. -- --
-- Sres, iline readfi ifilname ---- -- csound doc: http://csound.com/docs/manual/readfi.html readfi :: Str -> (Str, D) -- | Read a line of text from an external file. -- -- Read a line of text from an external file once each k-cycle. -- --
-- Sres, kline readf ifilname ---- -- csound doc: http://csound.com/docs/manual/readf.html readf :: Str -> (Str, Sig) -- | Write signals and arrays to an hdf5 file. -- -- hdf5write writes N signals and arrays to a specified hdf5 file. -- --
-- hdf5write ifilename, xout1[, xout2, xout3, ..., xoutN] ---- -- csound doc: http://csound.com/docs/manual/hdf5write.html hdf5write :: Str -> Sig -> SE () -- | Read signals and arrays from an hdf5 file. -- -- hdf5read reads N signals and arrays from a specified hdf5 file. -- --
-- xout1[, xout2, xout3, ..., xoutN] hdf5read ifilename, ivariablename1[, ivariablename2, ivariablename3, ..., ivariablenameN] ---- -- csound doc: http://csound.com/docs/manual/hdf5read.html hdf5read :: Tuple a => Str -> D -> a -- | Similar to prints but prints to a file. -- --
-- fprints "filename", "string" [, ival1] [, ival2] [...] ---- -- csound doc: http://csound.com/docs/manual/fprints.html fprints :: Str -> Str -> [D] -> SE () -- | Similar to printks but prints to a file. -- --
-- fprintks "filename", "string", [, kval1] [, kval2] [...] ---- -- csound doc: http://csound.com/docs/manual/fprintks.html fprintks :: Str -> Str -> [Sig] -> SE () -- | Outputs k-rate signals of an arbitrary number of channels to a -- specified file, in raw (headerless) format. -- -- foutk outputs N k-rate signals to a specified file of N channels. -- --
-- foutk ifilename, iformat, kout1 [, kout2, kout3,....,koutN] ---- -- csound doc: http://csound.com/docs/manual/foutk.html foutk :: Str -> D -> [Sig] -> SE () -- | Outputs i-rate signals from an arbitrary number of channels to a -- specified file. -- -- foutir output N i-rate signals to a specified file of N channels. -- --
-- foutir ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN] ---- -- csound doc: http://csound.com/docs/manual/foutir.html foutir :: Str -> D -> D -> [D] -> SE () -- | Outputs i-rate signals of an arbitrary number of channels to a -- specified file. -- -- fouti output N i-rate signals to a specified file of N channels. -- --
-- fouti ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN] ---- -- csound doc: http://csound.com/docs/manual/fouti.html fouti :: Str -> D -> D -> [D] -> SE () -- | Outputs a-rate signals to an arbitrary number of channels. -- -- fout outputs N a-rate signals to a specified file of N channels. -- --
-- fout ifilename, iformat, aout1 [, aout2, aout3,...,aoutN] -- fout ifilename, iformat, array[] ---- -- csound doc: http://csound.com/docs/manual/fout.html fout :: Str -> D -> [Sig] -> SE () -- | Opens a file in a specific mode. -- -- fiopen can be used to open a file in one of the specified modes. -- --
-- ihandle fiopen ifilename, imode ---- -- csound doc: http://csound.com/docs/manual/fiopen.html fiopen :: Str -> D -> SE D -- | Read signals from a file at k-rate. -- --
-- fink ifilename, iskipframes, iformat, kin1 [, kin2] [, kin3] [,...] ---- -- csound doc: http://csound.com/docs/manual/fink.html fink :: Str -> D -> D -> [Sig] -> SE () -- | Read signals from a file at i-rate. -- --
-- fini ifilename, iskipframes, iformat, in1 [, in2] [, in3] [, ...] ---- -- csound doc: http://csound.com/docs/manual/fini.html fini :: Str -> D -> D -> [D] -> SE () -- | Read signals from a file at a-rate. -- --
-- fin ifilename, iskipframes, iformat, ain1 [, ain2] [, ain3] [,...] -- fin ifilename, iskipframes, iformat, arr[] ---- -- csound doc: http://csound.com/docs/manual/fin.html fin :: Str -> D -> D -> [Sig] -> SE () -- | Closes a previously opened file. -- -- ficlose can be used to close a file which was opened with fiopen. -- --
-- ficlose ihandle -- ficlose Sfilename ---- -- csound doc: http://csound.com/docs/manual/ficlose.html ficlose :: D -> SE () -- | Periodically writes four orchestra control-signal values to an -- external file. -- -- Periodically writes four orchestra control-signal values to a named -- external file in a specific format. -- --
-- dumpk4 ksig1, ksig2, ksig3, ksig4, ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/dumpk4.html dumpk4 :: Sig -> Sig -> Sig -> Sig -> Str -> D -> D -> SE () -- | Periodically writes three orchestra control-signal values to an -- external file. -- -- Periodically writes three orchestra control-signal values to a named -- external file in a specific format. -- --
-- dumpk3 ksig1, ksig2, ksig3, ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/dumpk3.html dumpk3 :: Sig -> Sig -> Sig -> Str -> D -> D -> SE () -- | Periodically writes two orchestra control-signal values to an external -- file. -- -- Periodically writes two orchestra control-signal values to a named -- external file in a specific format. -- --
-- dumpk2 ksig1, ksig2, ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/dumpk2.html dumpk2 :: Sig -> Sig -> Str -> D -> D -> SE () -- | Periodically writes an orchestra control-signal value to an external -- file. -- -- Periodically writes an orchestra control-signal value to a named -- external file in a specific format. -- --
-- dumpk ksig, ifilname, iformat, iprd ---- -- csound doc: http://csound.com/docs/manual/dumpk.html dumpk :: Sig -> Str -> D -> D -> SE () -- | Physical model of the plucked string. -- -- wgpluck2 is an implementation of the physical model of the plucked -- string, with control over the pluck point, the pickup point and the -- filter. Based on the Karplus-Strong algorithm. -- --
-- ares wgpluck2 iplk, kamp, icps, kpick, krefl ---- -- csound doc: http://csound.com/docs/manual/wgpluck2.html wgpluck2 :: D -> Sig -> D -> Sig -> Sig -> Sig -- | A high fidelity simulation of a plucked string. -- -- A high fidelity simulation of a plucked string, using interpolating -- delay-lines. -- --
-- ares wgpluck icps, iamp, kpick, iplk, idamp, ifilt, axcite ---- -- csound doc: http://csound.com/docs/manual/wgpluck.html wgpluck :: D -> D -> Sig -> D -> D -> D -> Sig -> Sig -- | Creates a tone similar to a flute. -- -- Audio output is a tone similar to a flute, using a physical model -- developed from Perry Cook, but re-coded for Csound. -- --
-- ares wgflute kamp, kfreq, kjet, iatt, -- idetk, kngain, kvibf, kvamp [, ifn] [, iminfreq] [, ijetrf] [, iendrf] ---- -- csound doc: http://csound.com/docs/manual/wgflute.html wgflute :: Sig -> Sig -> Sig -> D -> D -> Sig -> Sig -> Sig -> Sig -- | Creates a tone similar to a clarinet. -- -- Audio output is a tone similar to a clarinet, using a physical model -- developed from Perry Cook, but re-coded for Csound. -- --
-- ares wgclar kamp, kfreq, kstiff, \ -- iatt, idetk, kngain, kvibf, kvamp [, ifn] [, iminfreq] ---- -- csound doc: http://csound.com/docs/manual/wgclar.html wgclar :: Sig -> Sig -> Sig -> D -> D -> Sig -> Sig -> Sig -> Sig -- | Creates a tone related to a brass instrument. -- -- Audio output is a tone related to a brass instrument, using a physical -- model developed from Perry Cook, but re-coded for Csound. -- --
-- ares wgbrass kamp, kfreq, ktens, iatt, kvibf, kvamp \ -- [, ifn] [, iminfreq] ---- -- csound doc: http://csound.com/docs/manual/wgbrass.html wgbrass :: Sig -> Sig -> Sig -> D -> Sig -> Sig -> Sig -- | A physical model of a bowed bar. -- -- A physical model of a bowed bar, belonging to the Perry Cook family of -- waveguide instruments. -- --
-- ares wgbowedbar kamp, kfreq, kpos, kbowpres, kgain [, iconst] [, itvel] \ -- [, ibowpos] [, ilow] ---- -- csound doc: http://csound.com/docs/manual/wgbowedbar.html wgbowedbar :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Creates a tone similar to a bowed string. -- -- Audio output is a tone similar to a bowed string, using a physical -- model developed from Perry Cook, but re-coded for Csound. -- --
-- ares wgbow kamp, kfreq, kpres, krat, kvibf, kvamp \ -- [, ifn] [, iminfreq] ---- -- csound doc: http://csound.com/docs/manual/wgbow.html wgbow :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | A string resonator with variable fundamental frequency. -- -- An audio signal is modified by a string resonator with variable -- fundamental frequency. -- --
-- ares streson asig, kfr, kfdbgain ---- -- csound doc: http://csound.com/docs/manual/streson.html streson :: Sig -> Sig -> Sig -> Sig -- | Physical model of the plucked string. -- -- repluck is an implementation of the physical model of the plucked -- string. A user can control the pluck point, the pickup point, the -- filter, and an additional audio signal, axcite. axcite is used to -- excite the string. Based on the Karplus-Strong algorithm. -- --
-- ares repluck iplk, kamp, icps, kpick, krefl, axcite ---- -- csound doc: http://csound.com/docs/manual/repluck.html repluck :: D -> Sig -> D -> Sig -> Sig -> Sig -> Sig -- | Produces a naturally decaying plucked string or drum sound. -- -- Audio output is a naturally decaying plucked string or drum sound -- based on the Karplus-Strong algorithms. -- --
-- ares pluck kamp, kcps, icps, ifn, imeth [, iparm1] [, iparm2] ---- -- csound doc: http://csound.com/docs/manual/pluck.html pluck :: Sig -> Sig -> D -> Tab -> D -> Sig -- | A simple wave-terrain synthesis opcode. -- --
-- aout wterrain kamp, kpch, k_xcenter, k_ycenter, k_xradius, k_yradius, \ -- itabx, itaby ---- -- csound doc: http://csound.com/docs/manual/wterrain.html wterrain :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | Accesses table values by direct indexing with linear interpolation. -- --
-- ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://csound.com/docs/manual/tablei.html tablei :: SigOrD a => a -> Tab -> a -- | Accesses table values by direct indexing with cubic interpolation. -- --
-- ares table3 andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires table3 indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres table3 kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://csound.com/docs/manual/table3.html table3 :: SigOrD a => a -> Tab -> a -- | Accesses table values by direct indexing. -- --
-- ares table andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires table indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://csound.com/docs/manual/table.html table :: SigOrD a => a -> Tab -> a -- | Fast table opcodes. -- -- Fast table opcodes. Faster than table and tablew because don't allow -- wrap-around and limit and don't check index validity. Have been -- implemented in order to provide fast access to arrays. Support -- non-power of two tables (can be generated by any GEN function by -- giving a negative length value). -- --
-- tabw ksig, kndx, ifn [,ixmode] -- tabw asig, andx, ifn [,ixmode] ---- -- csound doc: http://csound.com/docs/manual/tab.html tabw :: Sig -> Sig -> Tab -> SE () -- | Fast table opcodes. -- -- Fast table opcodes. Faster than table and tablew because don't allow -- wrap-around and limit and don't check index validity. Have been -- implemented in order to provide fast access to arrays. Support -- non-power of two tables (can be generated by any GEN function by -- giving a negative length value). -- --
-- tabw_i isig, indx, ifn [,ixmode] ---- -- csound doc: http://csound.com/docs/manual/tab.html tabw_i :: D -> D -> Tab -> SE () -- | Fast table opcodes. -- -- Fast table opcodes. Faster than table and tablew because don't allow -- wrap-around and limit and don't check index validity. Have been -- implemented in order to provide fast access to arrays. Support -- non-power of two tables (can be generated by any GEN function by -- giving a negative length value). -- --
-- kr tab kndx, ifn[, ixmode] -- ar tab xndx, ifn[, ixmode] ---- -- csound doc: http://csound.com/docs/manual/tab.html tab :: Sig -> Tab -> Sig -- | Fast table opcodes. -- -- Fast table opcodes. Faster than table and tablew because don't allow -- wrap-around and limit and don't check index validity. Have been -- implemented in order to provide fast access to arrays. Support -- non-power of two tables (can be generated by any GEN function by -- giving a negative length value). -- --
-- ir tab_i indx, ifn[, ixmode] ---- -- csound doc: http://csound.com/docs/manual/tab.html tab_i :: D -> Tab -> D -- | Accesses table values by direct indexing with linear interpolation. -- --
-- ares ptablei andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires ptablei indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres ptablei kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://csound.com/docs/manual/ptablei.html ptablei :: Sig -> Tab -> Sig -- | Accesses table values by direct indexing with cubic interpolation. -- --
-- ares ptable3 andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires ptable3 indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres ptable3 kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://csound.com/docs/manual/ptable3.html ptable3 :: Sig -> Tab -> Sig -- | Accesses table values by direct indexing. -- --
-- ares ptable andx, ifn [, ixmode] [, ixoff] [, iwrap] -- ires ptable indx, ifn [, ixmode] [, ixoff] [, iwrap] -- kres ptable kndx, ifn [, ixmode] [, ixoff] [, iwrap] ---- -- csound doc: http://csound.com/docs/manual/ptable.html ptable :: Sig -> Tab -> Sig -- | Accesses table values by incremental sampling with linear -- interpolation. -- --
-- kres oscil1i idel, kamp, idur [, ifn] ---- -- csound doc: http://csound.com/docs/manual/oscil1i.html oscil1i :: D -> Sig -> D -> Sig -- | Accesses table values by incremental sampling. -- --
-- kres oscil1 idel, kamp, idur [, ifn] ---- -- csound doc: http://csound.com/docs/manual/oscil1.html oscil1 :: D -> Sig -> D -> Sig -- | STKWurley simulates a Wurlitzer electric piano FM synthesis -- instrument. -- -- STKWurley simulates a Wurlitzer electric piano FM synthesis -- instrument. It uses two simple FM Pairs summed together, also referred -- to as algorithm 5 of the TX81Z. -- --
-- asignal STKWurley ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKWurley.html stkWurley :: D -> D -> Sig -- | STKWhistle produces whistle sounds. -- -- STKWhistle produces (police) whistle sounds. It uses a hybrid -- physical/spectral model of a police whistle (a la Cook). -- --
-- asignal STKWhistle ifrequency, iamplitude, [kmod, kv1[, knoise, kv2[, kfipfreq, kv3[, kfipgain, kv4[, kvol, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKWhistle.html stkWhistle :: D -> D -> Sig -- | STKVoicForm is a four formant synthesis instrument. -- -- STKVoicForm is a four formant synthesis instrument. This instrument -- contains an excitation singing wavetable (looping wave with random and -- periodic vibrato, smoothing on frequency, etc.), excitation noise, and -- four sweepable complex resonances. Measured formant data is included, -- and enough data is there to support either parallel or cascade -- synthesis. In the floating point case cascade synthesis is the most -- natural so that's what you'll find here. -- --
-- asignal STKVoicForm ifrequency, iamplitude, [kmix, kv1[, ksel, kv2[, klfo, kv3[, klfodepth, kv4[, kloud, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKVoicForm.html stkVoicForm :: D -> D -> Sig -- | STKTubeBell is a tubular bell (orchestral chime) FM synthesis -- instrument. -- -- STKTubeBell is a tubular bell (orchestral chime) FM synthesis -- instrument. It uses two simple FM Pairs summed together, also referred -- to as algorithm 5 of the TX81Z. -- --
-- asignal STKTubeBell ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKTubeBell.html stkTubeBell :: D -> D -> Sig -- | STKStifKarp is a plucked stiff string instrument. -- -- STKStifKarp is a plucked stiff string instrument. It a simple plucked -- string algorithm (Karplus Strong) with enhancements, including string -- stiffness and pluck position controls. The stiffness is modeled with -- allpass filters. -- --
-- asignal STKStifKarp ifrequency, iamplitude, [kpos, kv1[, ksus, kv2[, kstretch, kv3]]] ---- -- csound doc: http://csound.com/docs/manual/STKStifKarp.html stkStifKarp :: D -> D -> Sig -- | STKSitar uses a plucked string physical model. -- -- STKSitar uses a plucked string physical model based on the -- Karplus-Strong algorithm. -- --
-- asignal STKSitar ifrequency, iamplitude ---- -- csound doc: http://csound.com/docs/manual/STKSitar.html stkSitar :: D -> D -> Sig -- | STKSimple is a wavetable/noise instrument. -- -- STKSimple is a wavetable/noise instrument. It combines a looped wave, -- a noise source, a biquad resonance filter, a one-pole filter, and an -- ADSR envelope to create some interesting sounds. -- --
-- asignal STKSimple ifrequency, iamplitude, [kpos, kv1[, kcross, kv2[, kenv, kv3[, kgain, kv4]]]] ---- -- csound doc: http://csound.com/docs/manual/STKSimple.html stkSimple :: D -> D -> Sig -- | STKShakers is an instrument that simulates environmental sounds or -- collisions of multiple independent sound producing objects. -- -- STKShakers are a set of PhISEM and PhOLIES instruments: PhISEM -- (Physically Informed Stochastic Event Modeling) is an algorithmic -- approach for simulating collisions of multiple independent sound -- producing objects. It can simulate a Maraca, Sekere, Cabasa, Bamboo -- Wind Chimes, Water Drops, Tambourine, Sleighbells, and a Guiro. On -- http://soundlab.cs.princeton.edu/research/controllers/shakers/ -- PhOLIES (Physically-Oriented Library of Imitated Environmental Sounds) -- there is a similar approach for the synthesis of environmental sounds. -- It simulates of breaking sticks, crunchy snow (or not), a wrench, -- sandpaper, and more.. -- --
-- asignal STKShakers ifrequency, iamplitude, [kenerg, kv1[, kdecay, kv2[, kshake, kv3[, knum, kv4[, kres, kv5[, kinstr, kv6]]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKShakers.html stkShakers :: D -> D -> Sig -- | STKSaxofony is a faux conical bore reed instrument. -- -- STKSaxofony is a faux conical bore reed instrument. This opcode uses a -- "hybrid" digital waveguide instrument that can generate a variety of -- wind-like sounds. It has also been referred to as the "blowed string" -- model. The waveguide section is essentially that of a string, with one -- rigid and one lossy termination. The non-linear function is a reed -- table. The string can be "blown" at any point between the -- terminations, though just as with strings, it is impossible to excite -- the system at either end. If the excitation is placed at the string -- mid-point, the sound is that of a clarinet. At points closer to the -- "bridge", the sound is closer to that of a saxophone. -- --
-- asignal STKSaxofony -- ifrequency, iamplitude, [kstiff, kv1[, kapert, kv2[, kblow, kv3[, -- knoise, kv4[, klfo, kv5[, klfodepth, kv6[, kbreath, kv7]]]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKSaxofony.html stkSaxofony :: D -> D -> Sig -- | STK Fender Rhodes-like electric piano FM synthesis instrument. -- --
-- asignal STKRhodey ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKRhodey.html stkRhodey :: D -> D -> Sig -- | STKResonate is a noise driven formant filter. -- -- STKResonate is a noise driven formant filter. This instrument contains -- a noise source, which excites a biquad resonance filter, with volume -- controlled by an ADSR. -- --
-- asignal STKResonate ifrequency, iamplitude, [kfreq, kv1[, kpole, kv2[, knotch, kv3[, kzero, kv4[, kenv, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKResonate.html stkResonate :: D -> D -> Sig -- | STKPlucked uses a plucked string physical model. -- -- STKPlucked uses a plucked string physical model based on the -- Karplus-Strong algorithm. -- --
-- asignal STKPlucked ifrequency, iamplitude ---- -- csound doc: http://csound.com/docs/manual/STKPlucked.html stkPlucked :: D -> D -> Sig -- | STKPercFlut is a percussive flute FM synthesis instrument. -- -- STKPercFlut is a percussive flute FM synthesis instrument. The -- instrument uses an algorithm like the algorithm 4 of the TX81Z. -- --
-- asignal STKPercFlut ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKPercFlut.html stkPercFlut :: D -> D -> Sig -- | STKMoog produces moog-like swept filter sounds. -- -- STKMoog produces moog-like swept filter sounds, using one attack wave, -- one looped wave, and an ADSR envelope and adds two sweepable formant -- filters. -- --
-- asignal STKMoog ifrequency, iamplitude, [kq, kv1[, krate, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKMoog.html stkMoog :: D -> D -> Sig -- | STKModalBar is a resonant bar instrument. -- -- This opcode is a resonant bar instrument.It has a number of different -- struck bar instruments. -- --
-- asignal STKModalBar ifrequency, iamplitude, [khard, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kmix, kv5[, kvol, kv6[, kinstr, kv7]]]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKModalBar.html stkModalBar :: D -> D -> Sig -- | STKMandolin produces mamdolin-like sounds. -- -- STKMandolin produces mamdolin-like sounds, using "commuted synthesis" -- techniques to model a mandolin instrument. -- --
-- asignal STKMandolin ifrequency, iamplitude, [kbody, kv1[, kpos, kv2[, ksus, kv3[, kdetune, kv4[, kmic, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKMandolin.html stkMandolin :: D -> D -> Sig -- | STKHevyMetl produces metal sounds. -- -- STKHevyMetl produces metal sounds, using FM synthesis. It uses 3 -- cascade operators with feedback modulation, also referred to as -- algorithm 3 of the TX81Z. -- --
-- asignal STKHevyMetl ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKHevyMetl.html stkHevyMetl :: D -> D -> Sig -- | STKFlute uses a simple flute physical model. -- -- STKFlute uses a simple flute physical model. The jet model uses a -- polynomial, a la Cook. -- --
-- asignal STKFlute ifrequency, iamplitude, [kjet, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKFlute.html stkFlute :: D -> D -> Sig -- | STKFMVoices is a singing FM synthesis instrument. -- -- STKFMVoices is a singing FM synthesis instrument. It has 3 carriers -- and a common modulator, also referred to as algorithm 6 of the TX81Z. -- --
-- asignal STKFMVoices ifrequency, iamplitude, [kvowel, kv1[, kspec, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKFMVoices.html stkFMVoices :: D -> D -> Sig -- | STKDrummer is a drum sampling synthesizer. -- -- STKDrummer is a drum sampling synthesizer using raw waves and one-pole -- filters, The drum rawwave files are sampled at 22050 Hz, but will be -- appropriately interpolated for other sample rates. -- --
-- asignal STKDrummer ifrequency, iamplitude ---- -- csound doc: http://csound.com/docs/manual/STKDrummer.html stkDrummer :: D -> D -> Sig -- | STKClarinet uses a simple clarinet physical model. -- --
-- asignal STKClarinet ifrequency, iamplitude, [kstiff, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKClarinet.html stkClarinet :: D -> D -> Sig -- | STKBrass is a simple brass instrument. -- -- STKBrass uses a simple brass instrument waveguide model, a la Cook. -- --
-- asignal STKBrass ifrequency, iamplitude, [klip, kv1[, kslide, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKBrass.html stkBrass :: D -> D -> Sig -- | STKBowed is a bowed string instrument. -- -- STKBowed is a bowed string instrument, using a waveguide model. -- --
-- asignal STKBowed ifrequency, iamplitude, [kpress, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKBowed.html stkBowed :: D -> D -> Sig -- | STK clarinet physical model with one register hole and one tonehole. -- -- This opcode is based on the clarinet model, with the addition of a -- two-port register hole and a three-port dynamic tonehole -- implementation. -- --
-- asignal STKBlowHole ifrequency, iamplitude, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKBlowHole.html stkBlowHole :: D -> D -> Sig -- | STKBlowBotl uses a helmholtz resonator (biquad filter) with a -- polynomial jet excitation. -- -- This opcode implements a helmholtz resonator (biquad filter) with a -- polynomial jet excitation (a la Cook). -- --
-- asignal STKBlowBotl ifrequency, iamplitude, [knoise, kv1[, klfo, kv2[, klfodepth, kv3[, kvol, kv4]]]] ---- -- csound doc: http://csound.com/docs/manual/STKBlowBotl.html stkBlowBotl :: D -> D -> Sig -- | STK Hammond-oid organ-like FM synthesis instrument. -- --
-- asignal STKBeeThree ifrequency, iamplitude, [kop4, kv1[, kop3, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKBeeThree.html stkBeeThree :: D -> D -> Sig -- | STKBandedWG uses banded waveguide techniques to model a variety of -- sounds. -- -- This opcode uses banded waveguide techniques to model a variety of -- sounds, including bowed bars, glasses, and bowls. -- --
-- asignal STKBandedWG ifrequency, iamplitude, [kpress, kv1[, kmot, kv2[, klfo, kv3[, klfodepth, kv4[, kvel, kv5[, kstrk, kv6[, kinstr, kv7]]]]]]] ---- -- csound doc: http://csound.com/docs/manual/STKBandedWG.html stkBandedWG :: D -> D -> Sig -- | Compute the waveform and the wavetable for use in scanned synthesis. -- -- Experimental version of scanu. Allows much larger matrices and is -- faster and smaller but removes some (unused?) flexibility. If liked, -- it will replace the older opcode as it is syntax compatible but -- extended. -- --
-- xscanu init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, \ -- kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id ---- -- csound doc: http://csound.com/docs/manual/xscanu.html xscanu :: D -> D -> Tab -> Tab -> Tab -> Tab -> Tab -> Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -> Sig -> Sig -> D -> D -> SE () -- | Allows the position and velocity of a node in a scanned process to be -- read. -- --
-- xscansmap kpos, kvel, iscan, kamp, kvamp [, iwhich] ---- -- csound doc: http://csound.com/docs/manual/xscansmap.html xscansmap :: Sig -> Sig -> D -> Sig -> Sig -> SE () -- | Fast scanned synthesis waveform and the wavetable generator. -- -- Experimental version of scans. Allows much larger matrices and is -- faster and smaller but removes some (unused?) flexibility. If liked, -- it will replace the older opcode as it is syntax compatible but -- extended. -- --
-- ares xscans kamp, kfreq, ifntraj, id [, iorder] ---- -- csound doc: http://csound.com/docs/manual/xscans.html xscans :: Sig -> Sig -> Tab -> D -> Sig -- | Allows the position and velocity of a node in a scanned process to be -- read. -- --
-- kpos, kvel xscanmap iscan, kamp, kvamp [, iwhich] ---- -- csound doc: http://csound.com/docs/manual/xscanmap.html xscanmap :: D -> Sig -> Sig -> (Sig, Sig) -- | Compute the waveform and the wavetable for use in scanned synthesis. -- --
-- scanu init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, \ -- kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id ---- -- csound doc: http://csound.com/docs/manual/scanu.html scanu :: D -> D -> Tab -> Tab -> Tab -> Tab -> Tab -> Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -> Sig -> Sig -> D -> D -> SE () -- | A simpler scanned synthesis implementation. -- -- A simpler scanned synthesis implementation. This is an implementation -- of a circular string scanned using external tables. This opcode will -- allow direct modification and reading of values with the table -- opcodes. -- --
-- aout scantable kamp, kpch, ipos, imass, istiff, idamp, ivel ---- -- csound doc: http://csound.com/docs/manual/scantable.html scantable :: Sig -> Sig -> D -> D -> D -> D -> D -> Sig -- | Generate audio output using scanned synthesis. -- --
-- ares scans kamp, kfreq, ifn, id [, iorder] ---- -- csound doc: http://csound.com/docs/manual/scans.html scans :: Sig -> Sig -> Tab -> D -> Sig -- | Copies from one table to another with a gain control. -- -- This is is a variant of tablecopy, copying from one table to another, -- starting at ipos, and with a gain control. The number of points copied -- is determined by the length of the source. Other points are not -- changed. This opcode can be used to âhitâ a string in the scanned -- synthesis code. -- --
-- scanhammer isrc, idst, ipos, imult ---- -- csound doc: http://csound.com/docs/manual/scanhammer.html scanhammer :: D -> D -> D -> D -> SE () -- | A simple time stretch by repeating cycles. -- --
-- ares waveset ain, krep [, ilen] ---- -- csound doc: http://csound.com/docs/manual/waveset.html waveset :: Sig -> Sig -> Sig -- | A sound looper with pitch control. -- -- This opcode records input audio and plays it back in a loop with -- user-defined duration and crossfade time. It also allows the pitch of -- the loop to be controlled, including reversed playback. -- --
-- asig, krec sndloop ain, kpitch, ktrig, idur, ifad ---- -- csound doc: http://csound.com/docs/manual/sndloop.html sndloop :: Sig -> Sig -> Sig -> D -> D -> (Sig, Sig) -- | Assigns an existing preset of a SoundFont2 (SF2) sample file to an -- index number. -- -- Assigns an existing preset of a previously loaded SoundFont2 (SF2) -- sample file to an index number. These opcodes allow management the -- sample-structure of SF2 files. In order to understand the usage of -- these opcodes, the user must have some knowledge of the SF2 format, so -- a brief description of this format can be found in the SoundFont2 File -- Format Appendix. -- --
-- ir sfpreset iprog, ibank, ifilhandle, ipreindex ---- -- csound doc: http://csound.com/docs/manual/sfpreset.html sfpreset :: D -> D -> Sf -> Sf -> D -- | Prints a list of all presets of a SoundFont2 (SF2) sample file. -- -- Prints a list of all presets of a previously loaded SoundFont2 (SF2) -- sample file. These opcodes allow management the sample-structure of -- SF2 files. In order to understand the usage of these opcodes, the user -- must have some knowledge of the SF2 format, so a brief description of -- this format can be found in the SoundFont2 File Format Appendix. -- --
-- sfplist ifilhandle ---- -- csound doc: http://csound.com/docs/manual/sfplist.html sfplist :: Sf -> SE () -- | Plays a SoundFont2 (SF2) sample preset, generating a mono sound. -- -- Plays a SoundFont2 (SF2) sample preset, generating a mono sound. These -- opcodes allow management the sample-structure of SF2 files. In order -- to understand the usage of these opcodes, the user must have some -- knowledge of the SF2 format, so a brief description of this format can -- be found in the SoundFont2 File Format Appendix. -- --
-- ares sfplaym ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv] ---- -- csound doc: http://csound.com/docs/manual/sfplaym.html sfplaym :: D -> D -> Sig -> Sig -> Sf -> Sig -- | Plays a SoundFont2 (SF2) sample preset, generating a mono sound with -- cubic interpolation. -- -- Plays a SoundFont2 (SF2) sample preset, generating a mono sound with -- cubic interpolation. These opcodes allow management the -- sample-structure of SF2 files. In order to understand the usage of -- these opcodes, the user must have some knowledge of the SF2 format, so -- a brief description of this format can be found in the SoundFont2 File -- Format Appendix. -- --
-- ares sfplay3m ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv] ---- -- csound doc: http://csound.com/docs/manual/sfplay3m.html sfplay3m :: D -> D -> Sig -> Sig -> Sf -> Sig -- | Plays a SoundFont2 (SF2) sample preset, generating a stereo sound with -- cubic interpolation. -- -- Plays a SoundFont2 (SF2) sample preset, generating a stereo sound with -- cubic interpolation. These opcodes allow management the -- sample-structure of SF2 files. In order to understand the usage of -- these opcodes, the user must have some knowledge of the SF2 format, so -- a brief description of this format can be found in the SoundFont2 File -- Format Appendix. -- --
-- ar1, ar2 sfplay3 ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv] ---- -- csound doc: http://csound.com/docs/manual/sfplay3.html sfplay3 :: D -> D -> Sig -> Sig -> Sf -> (Sig, Sig) -- | Plays a SoundFont2 (SF2) sample preset, generating a stereo sound. -- -- Plays a SoundFont2 (SF2) sample preset, generating a stereo sound. -- These opcodes allow management the sample-structure of SF2 files. In -- order to understand the usage of these opcodes, the user must have -- some knowledge of the SF2 format, so a brief description of this -- format can be found in the SoundFont2 File Format Appendix. -- --
-- ar1, ar2 sfplay ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv] ---- -- csound doc: http://csound.com/docs/manual/sfplay.html sfplay :: D -> D -> Sig -> Sig -> Sf -> (Sig, Sig) -- | Assigns all presets of a SoundFont2 (SF2) sample file to a sequence of -- progressive index numbers. -- -- Assigns all presets of a previously loaded SoundFont2 (SF2) sample -- file to a sequence of progressive index numbers. These opcodes allow -- management the sample-structure of SF2 files. In order to understand -- the usage of these opcodes, the user must have some knowledge of the -- SF2 format, so a brief description of this format can be found in the -- SoundFont2 File Format Appendix. -- --
-- sfpassign istartindex, ifilhandle[, imsgs] ---- -- csound doc: http://csound.com/docs/manual/sfpassign.html sfpassign :: D -> Sf -> SE () -- | Plays a SoundFont2 (SF2) sample preset, generating a stereo sound, -- with user-defined time-varying crossfade looping. -- -- Plays a SoundFont2 (SF2) sample preset, generating a stereo sound, -- similarly to sfplay. Unlike that opcode, though, it ignores the -- looping points set in the SF2 file and substitutes them for a -- user-defined crossfade loop. It is a cross between sfplay and -- flooper2. -- --
-- ar1, ar2 sflooper ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade \ -- [, istart, imode, ifenv, iskip] ---- -- csound doc: http://csound.com/docs/manual/sflooper.html sflooper :: D -> D -> Sig -> Sig -> Sf -> Sig -> Sig -> Sig -> (Sig, Sig) -- | Loads an entire SoundFont2 (SF2) sample file into memory. -- -- Loads an entire SoundFont2 (SF2) sample file into memory. These -- opcodes allow management the sample-structure of SF2 files. In order -- to understand the usage of these opcodes, the user must have some -- knowledge of the SF2 format, so a brief description of this format can -- be found in the SoundFont2 File Format Appendix. -- --
-- ir sfload "filename" ---- -- csound doc: http://csound.com/docs/manual/sfload.html sfload :: Str -> D -- | Plays a SoundFont2 (SF2) sample instrument, generating a mono sound. -- -- Plays a SoundFont2 (SF2) sample instrument, generating a mono sound. -- These opcodes allow management the sample-structure of SF2 files. In -- order to understand the usage of these opcodes, the user must have -- some knowledge of the SF2 format, so a brief description of this -- format can be found in the SoundFont2 File Format Appendix. -- --
-- ares sfinstrm ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \ -- [, iflag] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/sfinstrm.html sfinstrm :: D -> D -> Sig -> Sig -> D -> Sf -> Sig -- | Plays a SoundFont2 (SF2) sample instrument, generating a mono sound -- with cubic interpolation. -- -- Plays a SoundFont2 (SF2) sample instrument, generating a mono sound -- with cubic interpolation. These opcodes allow management the -- sample-structure of SF2 files. In order to understand the usage of -- these opcodes, the user must have some knowledge of the SF2 format, so -- a brief description of this format can be found in the SoundFont2 File -- Format Appendix. -- --
-- ares sfinstr3m ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \ -- [, iflag] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/sfinstr3m.html sfinstr3m :: D -> D -> Sig -> Sig -> D -> Sf -> Sig -- | Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound -- with cubic interpolation. -- -- Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound -- with cubic interpolation. These opcodes allow management the -- sample-structure of SF2 files. In order to understand the usage of -- these opcodes, the user must have some knowledge of the SF2 format, so -- a brief description of this format can be found in the SoundFont2 File -- Format Appendix. -- --
-- ar1, ar2 sfinstr3 ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \ -- [, iflag] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/sfinstr3.html sfinstr3 :: D -> D -> Sig -> Sig -> D -> Sf -> (Sig, Sig) -- | Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound. -- -- Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound. -- These opcodes allow management the sample-structure of SF2 files. In -- order to understand the usage of these opcodes, the user must have -- some knowledge of the SF2 format, so a brief description of this -- format can be found in the SoundFont2 File Format Appendix. -- --
-- ar1, ar2 sfinstr ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \ -- [, iflag] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/sfinstr.html sfinstr :: D -> D -> Sig -> Sig -> D -> Sf -> (Sig, Sig) -- | Prints a list of all instruments of a previously loaded SoundFont2 -- (SF2) file. -- -- Prints a list of all instruments of a previously loaded SoundFont2 -- (SF2) sample file. These opcodes allow management the sample-structure -- of SF2 files. In order to understand the usage of these opcodes, the -- user must have some knowledge of the SF2 format, so a brief -- description of this format can be found in the SoundFont2 File Format -- Appendix. -- --
-- sfilist ifilhandle ---- -- csound doc: http://csound.com/docs/manual/sfilist.html sfilist :: Sf -> SE () -- | Read stereo sampled sound from a table with looping and high -- precision. -- -- lposcilsa2 reads stereo sampled sound from a table with looping and -- high precision. -- --
-- ar1, ar2 lposcilsa2 aamp, kfreqratio, kloop, kend, ift [,iphs] ---- -- csound doc: http://csound.com/docs/manual/lposcilsa2.html lposcilsa2 :: Sig -> Sig -> Sig -> Sig -> D -> (Sig, Sig) -- | Read stereo sampled sound from a table with looping and high -- precision. -- -- lposcilsa reads stereo sampled sound from a table with looping and -- high precision. -- --
-- ar1, ar2 lposcilsa aamp, kfreqratio, kloop, kend, ift [,iphs] ---- -- csound doc: http://csound.com/docs/manual/lposcilsa.html lposcilsa :: Sig -> Sig -> Sig -> Sig -> D -> (Sig, Sig) -- | Read sampled sound from a table with looping and high precision. -- -- lposcila reads sampled sound from a table with looping and high -- precision. -- --
-- ar lposcila aamp, kfreqratio, kloop, kend, ift [,iphs] ---- -- csound doc: http://csound.com/docs/manual/lposcila.html lposcila :: Sig -> Sig -> Sig -> Sig -> D -> Sig -- | Read sampled sound from a table with high precision and cubic -- interpolation. -- -- Read sampled sound (mono or stereo) from a table, with looping, and -- high precision. lposcil3 uses cubic interpolation. -- --
-- ares lposcil3 kamp, kfreqratio, kloop, kend, ifn [, iphs] ---- -- csound doc: http://csound.com/docs/manual/lposcil3.html lposcil3 :: Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Read sampled sound from a table with looping and high precision. -- -- Read sampled sound (mono or stereo) from a table, with looping, and -- high precision. -- --
-- ares lposcil kamp, kfreqratio, kloop, kend, ifn [, iphs] ---- -- csound doc: http://csound.com/docs/manual/lposcil.html lposcil :: Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Generates a table index for sample playback -- -- This opcode can be used to generate table index for sample playback -- (e.g. tablexkt). -- --
-- ares lphasor xtrns [, ilps] [, ilpe] [, imode] [, istrt] [, istor] ---- -- csound doc: http://csound.com/docs/manual/lphasor.html lphasor :: Sig -> Sig -- | Read multi-channel sampled sound from a table. -- -- Read sampled sound (up to 16 channels) from a table, with optional -- sustain and release looping. -- --
-- ar1 [, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14, \ -- ar15, ar16] loscilx xamp, kcps, ifn \ -- [, iwsize, ibas, istrt, imod, ibeg, iend] ---- -- csound doc: http://csound.com/docs/manual/loscilx.html loscilx :: Tuple a => Sig -> Sig -> Tab -> a -- | Read sampled sound from a table using cubic interpolation. -- -- Read sampled sound (mono or stereo) from a table, with optional -- sustain and release looping, using cubic interpolation. -- --
-- ar1 [,ar2] loscil3 xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1] \ -- [, imod2] [, ibeg2] [, iend2] ---- -- csound doc: http://csound.com/docs/manual/loscil3.html loscil3 :: Tuple a => Sig -> Sig -> Tab -> a -- | Read sampled sound from a table. -- -- Read sampled sound (mono or stereo) from a table, with optional -- sustain and release looping. -- --
-- ar1 [,ar2] loscil xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1] \ -- [, imod2] [, ibeg2] [, iend2] ---- -- csound doc: http://csound.com/docs/manual/loscil.html loscil :: Tuple a => Sig -> Sig -> Tab -> a -- | Set interpolation method for channel in Fluid Engine -- -- Set interpolation method for channel in Fluid Engine. Lower order -- interpolation methods will render faster at lower fidelity while -- higher order interpolation methods will render slower at higher -- fidelity. Default interpolation for a channel is 4th order -- interpolation. -- --
-- fluidSetInterpMethod ienginenum, ichannelnum, iInterpMethod ---- -- csound doc: -- http://csound.com/docs/manual/fluidSetInterpMethod.html fluidSetInterpMethod :: D -> D -> D -> SE () -- | Assigns a preset from a SoundFont to a channel on a fluidEngine. -- --
-- fluidProgramSelect ienginenum, ichannelnum, isfnum, ibanknum, ipresetnum ---- -- csound doc: -- http://csound.com/docs/manual/fluidProgramSelect.html fluidProgramSelect :: D -> D -> Tab -> D -> D -> SE () -- | Outputs sound from a given fluidEngine -- -- Outputs the sound from a fluidEngine. -- --
-- aleft, aright fluidOut ienginenum ---- -- csound doc: http://csound.com/docs/manual/fluidOut.html fluidOut :: D -> (Sig, Sig) -- | Plays a note on a channel in a fluidSynth engine. -- -- Plays a note at imidikey pitch and imidivel velocity on ichannelnum -- channel of number ienginenum fluidEngine. -- --
-- fluidNote ienginenum, ichannelnum, imidikey, imidivel ---- -- csound doc: http://csound.com/docs/manual/fluidNote.html fluidNote :: D -> D -> D -> D -> SE () -- | Loads a SoundFont into a fluidEngine, optionally listing SoundFont -- contents. -- -- Loads a SoundFont into an instance of a fluidEngine, optionally -- listing banks and presets for SoundFont. -- --
-- isfnum fluidLoad soundfont, ienginenum[, ilistpresets] ---- -- csound doc: http://csound.com/docs/manual/fluidLoad.html fluidLoad :: D -> D -> Tab -- | Instantiates a fluidsynth engine. -- -- Instantiates a fluidsynth engine, and returns ienginenum to identify -- the engine. ienginenum is passed to other other opcodes for loading -- and playing SoundFonts and gathering the generated sound. -- --
-- ienginenum fluidEngine [iReverbEnabled] [, iChorusEnabled] [,iNumChannels] [, iPolyphony] ---- -- csound doc: http://csound.com/docs/manual/fluidEngine.html fluidEngine :: D -- | Sends MIDI note on, note off, and other messages to a SoundFont -- preset. -- -- The fluid opcodes provide a simple Csound opcode wrapper around Peter -- Hanappe's Fluidsynth SoundFont2 synthesizer. This implementation -- accepts any MIDI note on, note off, controller, pitch bend, or program -- change message at k-rate. Maximum polyphony is 4096 simultaneously -- sounding voices. Any number of SoundFonts may be loaded and played -- simultaneously. -- --
-- fluidControl ienginenum, kstatus, kchannel, kdata1, kdata2 ---- -- csound doc: http://csound.com/docs/manual/fluidControl.html fluidControl :: D -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends a MIDI controller data message to fluid. -- -- Sends a MIDI controller data (MIDI controller number and value to use) -- message to a fluid engine by number on the user specified MIDI channel -- number. -- --
-- fluidCCk iEngineNumber, iChannelNumber, iControllerNumber, kValue ---- -- csound doc: http://csound.com/docs/manual/fluidCCk.html fluidCCk :: D -> D -> D -> Sig -> SE () -- | Sends a MIDI controller data message to fluid. -- -- Sends a MIDI controller data (MIDI controller number and value to use) -- message to a fluid engine by number on the user specified MIDI channel -- number. -- --
-- fluidCCi iEngineNumber, iChannelNumber, iControllerNumber, iValue ---- -- csound doc: http://csound.com/docs/manual/fluidCCi.html fluidCCi :: D -> D -> D -> D -> SE () -- | Collects all audio from all Fluidsynth engines in a performance -- --
-- aleft, aright fluidAllOut ---- -- csound doc: http://csound.com/docs/manual/fluidAllOut.html fluidAllOut :: (Sig, Sig) -- | Function-table-based crossfading looper. -- -- This opcode implements a crossfading looper with variable loop -- parameters and three looping modes, optionally using a table for its -- crossfade shape. It accepts non-power-of-two tables for its source -- sounds, such as deferred-allocation GEN01 tables, with one or two -- channels. -- --
-- asig1[,asig2] flooper2 kamp, kpitch, kloopstart, kloopend, kcrossfade, ifn \ -- [, istart, imode, ifenv, iskip] ---- -- csound doc: http://csound.com/docs/manual/flooper2.html flooper2 :: Tuple a => Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> a -- | Function-table-based crossfading looper. -- -- This opcode reads audio from a function table and plays it back in a -- loop with user-defined start time, duration and crossfade time. It -- also allows the pitch of the loop to be controlled, including reversed -- playback. It accepts non-power-of-two tables, such as -- deferred-allocation GEN01 tables, with one or two channels. -- --
-- asig1[, asig2] flooper kamp, kpitch, istart, idur, ifad, ifn ---- -- csound doc: http://csound.com/docs/manual/flooper.html flooper :: Tuple a => Sig -> Sig -> D -> D -> D -> Tab -> a -- | Generates breakbeat-style cut-ups of a stereo audio stream. -- -- The BreakBeat Cutter automatically generates cut-ups of a source audio -- stream in the style of drum and bass/jungle breakbeat manipulations. -- There are two versions, for mono (bbcutm) or stereo (bbcuts) sources. -- Whilst originally based on breakbeat cutting, the opcode can be -- applied to any type of source audio. -- --
-- a1,a2 bbcuts asource1, asource2, ibps, isubdiv, ibarlength, iphrasebars, \ -- inumrepeats [, istutterspeed] [, istutterchance] [, ienvchoice] ---- -- csound doc: http://csound.com/docs/manual/bbcuts.html bbcuts :: Sig -> Sig -> D -> D -> D -> D -> D -> (Sig, Sig) -- | Generates breakbeat-style cut-ups of a mono audio stream. -- -- The BreakBeat Cutter automatically generates cut-ups of a source audio -- stream in the style of drum and bass/jungle breakbeat manipulations. -- There are two versions, for mono (bbcutm) or stereo (bbcuts) sources. -- Whilst originally based on breakbeat cutting, the opcode can be -- applied to any type of source audio. -- --
-- a1 bbcutm asource, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats \ -- [, istutterspeed] [, istutterchance] [, ienvchoice ] ---- -- csound doc: http://csound.com/docs/manual/bbcutm.html bbcutm :: Sig -> D -> D -> D -> D -> D -> Sig -- | Weibull distribution random number generator (positive values only). -- -- Weibull distribution random number generator (positive values only). -- This is an x-class noise generator -- --
-- ares weibull ksigma, ktau -- ires weibull ksigma, ktau -- kres weibull ksigma, ktau ---- -- csound doc: http://csound.com/docs/manual/weibull.html weibull :: SigOrD a => a -> a -> SE a -- | truly random opcodes with controllable range. -- -- Truly random opcodes with controllable range. These units are for -- Unix-like systems only and use devurandom to construct Csound -- random values -- --
-- ax urandom [imin, imax] -- ix urandom [imin, imax] -- kx urandom [imin, imax] ---- -- csound doc: http://csound.com/docs/manual/urandom.html urandom :: SigOrD a => SE a -- | Uniform distribution random number generator (positive values only). -- -- Uniform distribution random number generator (positive values only). -- This is an x-class noise generator. -- --
-- ares unirand krange -- ires unirand krange -- kres unirand krange ---- -- csound doc: http://csound.com/docs/manual/unirand.html unirand :: SigOrD a => a -> SE a -- | Triangular distribution random number generator -- -- Triangular distribution random number generator. This is an x-class -- noise generator. -- --
-- ares trirand krange -- ires trirand krange -- kres trirand krange ---- -- csound doc: http://csound.com/docs/manual/trirand.html trirand :: SigOrD a => a -> SE a -- | Generates a controlled pseudo-random number series between min and max -- values according to a trigger. -- -- Generates a controlled pseudo-random number series between min and max -- values at k-rate whenever the trigger parameter is different to 0. -- --
-- kout trandom ktrig, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/trandom.html trandom :: Sig -> Sig -> Sig -> SE Sig -- | Sets the global seed value. -- -- Sets the global seed value for all x-class noise generators, as well -- as other opcodes that use a random call, such as grain. -- --
-- seed ival ---- -- csound doc: http://csound.com/docs/manual/seed.html seed :: D -> SE () -- | Generate random spline curves. -- --
-- ares rspline xrangeMin, xrangeMax, kcpsMin, kcpsMax -- kres rspline krangeMin, krangeMax, kcpsMin, kcpsMax ---- -- csound doc: http://csound.com/docs/manual/rspline.html rspline :: Sig -> Sig -> Sig -> Sig -> SE Sig -- | 31-bit bipolar random opcodes with controllable distribution. -- -- 31-bit bipolar random opcodes with controllable distribution. These -- units are portable, i.e. using the same seed value will generate the -- same random sequence on all systems. The distribution of generated -- random numbers can be varied at k-rate. -- --
-- ax rnd31 kscl, krpow [, iseed] -- ix rnd31 iscl, irpow [, iseed] -- kx rnd31 kscl, krpow [, iseed] ---- -- csound doc: http://csound.com/docs/manual/rnd31.html rnd31 :: SigOrD a => a -> a -> SE a -- | Generates a user-controlled random number series with interpolation -- between each new number. -- --
-- ares randomi kmin, kmax, xcps [,imode] [,ifirstval] -- kres randomi kmin, kmax, kcps [,imode] [,ifirstval] ---- -- csound doc: http://csound.com/docs/manual/randomi.html randomi :: Sig -> Sig -> Sig -> SE Sig -- | Generates random numbers with a user-defined limit and holds them for -- a period of time. -- --
-- ares randomh kmin, kmax, xcps [,imode] [,ifirstval] -- kres randomh kmin, kmax, kcps [,imode] [,ifirstval] ---- -- csound doc: http://csound.com/docs/manual/randomh.html randomh :: Sig -> Sig -> Sig -> SE Sig -- | Generates a controlled pseudo-random number series between min and max -- values. -- -- Generates is a controlled pseudo-random number series between min and -- max values. -- --
-- ares random kmin, kmax -- ires random imin, imax -- kres random kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/random.html random :: SigOrD a => a -> a -> SE a -- | Generates a controlled random number series with interpolation between -- each new number. -- --
-- ares randi xamp, xcps [, iseed] [, isize] [, ioffset] -- kres randi kamp, kcps [, iseed] [, isize] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/randi.html randi :: Sig -> Sig -> SE Sig -- | Generates random numbers and holds them for a period of time. -- --
-- ares randh xamp, xcps [, iseed] [, isize] [, ioffset] -- kres randh kamp, kcps [, iseed] [, isize] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/randh.html randh :: Sig -> Sig -> SE Sig -- | Generates a controlled random number series. -- -- Output is a controlled random number series between -amp and +amp -- --
-- ares rand xamp [, iseed] [, isel] [, ioffset] -- kres rand xamp [, iseed] [, isel] [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/rand.html rand :: Sig -> SE Sig -- | Poisson distribution random number generator (positive values only). -- -- Poisson distribution random number generator (positive values only). -- This is an x-class noise generator. -- --
-- ares poisson klambda -- ires poisson klambda -- kres poisson klambda ---- -- csound doc: http://csound.com/docs/manual/poisson.html poisson :: SigOrD a => a -> SE a -- | Generates approximate pink noise. -- -- Generates approximate pink noise (-3dB/oct response) by one of two -- different methods: -- --
-- ares pinkish xin [, imethod] [, inumbands] [, iseed] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/pinkish.html pinkish :: Sig -> SE Sig -- | Generates pink noise. -- -- Generates pink noise (-3dB/oct response) by the New Shade of Pink -- algorithm of Stefan Stenzel. -- --
-- ares pinker ---- -- csound doc: http://csound.com/docs/manual/pinker.html pinker :: SE Sig -- | Cauchy distribution random number generator (positive values only). -- -- Cauchy distribution random number generator (positive values only). -- This is an x-class noise generator. -- --
-- ares pcauchy kalpha -- ires pcauchy kalpha -- kres pcauchy kalpha ---- -- csound doc: http://csound.com/docs/manual/pcauchy.html pcauchy :: SigOrD a => a -> SE a -- | A white noise generator with an IIR lowpass filter. -- --
-- ares noise xamp, kbeta ---- -- csound doc: http://csound.com/docs/manual/noise.html noise :: Sig -> Sig -> SE Sig -- | Linear distribution random number generator (positive values only). -- -- Linear distribution random number generator (positive values only). -- This is an x-class noise generator. -- --
-- ares linrand krange -- ires linrand krange -- kres linrand krange ---- -- csound doc: http://csound.com/docs/manual/linrand.html linrand :: SigOrD a => a -> SE a -- | A jitter-spline generator. -- --
-- ares jspline xamp, kcpsMin, kcpsMax -- kres jspline kamp, kcpsMin, kcpsMax ---- -- csound doc: http://csound.com/docs/manual/jspline.html jspline :: Sig -> Sig -> Sig -> SE Sig -- | Generates a segmented line with user-controllable random segments. -- --
-- kout jitter2 ktotamp, kamp1, kcps1, -- kamp2, kcps2, kamp3, kcps3[ , iopt] ---- -- csound doc: http://csound.com/docs/manual/jitter2.html jitter2 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE Sig -- | Generates a segmented line whose segments are randomly generated. -- --
-- kout jitter kamp, kcpsMin, kcpsMax ---- -- csound doc: http://csound.com/docs/manual/jitter.html jitter :: Sig -> Sig -> Sig -> SE Sig -- | Reads the global seed value. -- -- Returns the global seed value used for all x-class noise generators. -- --
-- ians getseed -- kans getseed ---- -- csound doc: http://csound.com/docs/manual/getseed.html getseed :: SE Sig -- | Random impulses around a certain frequency. -- -- Generates random impulses around a certain frequency. -- --
-- ares gausstrig kamp, kcps, kdev [, imode] [, ifrst1] -- kres gausstrig kamp, kcps, kdev [, imode] [, ifrst1] ---- -- csound doc: http://csound.com/docs/manual/gausstrig.html gausstrig :: Sig -> Sig -> Sig -> SE Sig -- | Gaussian distribution random number generator with interpolation. -- -- Gaussian distribution random number generator with controlled -- interpolation between values. This is an x-class noise generator. -- --
-- ares gaussi krange, xamp, xcps -- ires gaussi krange, xamp, xcps -- kres gaussi krange, xamp, xcps ---- -- csound doc: http://csound.com/docs/manual/gaussi.html gaussi :: SigOrD a => a -> a -> a -> SE a -- | Gaussian distribution random number generator. -- -- Gaussian distribution random number generator. This is an x-class -- noise generator. -- --
-- ares gauss krange -- ires gauss krange -- kres gauss krange ---- -- csound doc: http://csound.com/docs/manual/gauss.html gauss :: Sig -> SE Sig -- | A fractal noise generator. -- -- A fractal noise generator implemented as a white noise filtered by a -- cascade of 15 first-order filters. -- --
-- ares fractalnoise kamp, kbeta ---- -- csound doc: http://csound.com/docs/manual/fractalnoise.html fractalnoise :: Sig -> Sig -> SE Sig -- | Exponential distribution random number generator with interpolation -- (positive values only). -- -- Exponential distribution random number generator with controlled -- interpolation between values (positive values only). This is an -- x-class noise generator. -- --
-- ares exprandi klambda, xamp, xcps -- ires exprandi klambda, xamp, xcps -- kres exprandi klambda, xamp, xcps ---- -- csound doc: http://csound.com/docs/manual/exprandi.html exprandi :: SigOrD a => a -> a -> a -> SE a -- | Exponential distribution random number generator (positive values -- only). -- -- Exponential distribution random number generator (positive values -- only). This is an x-class noise generator. -- --
-- ares exprand klambda -- ires exprand klambda -- kres exprand klambda ---- -- csound doc: http://csound.com/docs/manual/exprand.html exprand :: SigOrD a => a -> SE a -- | Random impulses. -- -- Generates random impulses from -1 to 1. -- --
-- ares dust2 kamp, kdensity -- kres dust2 kamp, kdensity ---- -- csound doc: http://csound.com/docs/manual/dust2.html dust2 :: Sig -> Sig -> SE Sig -- | Cauchy distribution random number generator with interpolation. -- -- Cauchy distribution random number generator with controlled -- interpolation between values. This is an x-class noise generator. -- --
-- ares cauchyi klambda, xamp, xcps -- ires cauchyi klambda, xamp, xcps -- kres cauchyi klambda, xamp, xcps ---- -- csound doc: http://csound.com/docs/manual/cauchyi.html cauchyi :: SigOrD a => a -> a -> a -> SE a -- | Cauchy distribution random number generator. -- -- Cauchy distribution random number generator. This is an x-class noise -- generator. -- --
-- ares cauchy kalpha -- ires cauchy kalpha -- kres cauchy kalpha ---- -- csound doc: http://csound.com/docs/manual/cauchy.html cauchy :: SigOrD a => a -> SE a -- | Exponential distribution random number generator. -- -- Exponential distribution random number generator. This is an x-class -- noise generator. -- --
-- ares bexprnd krange -- ires bexprnd krange -- kres bexprnd krange ---- -- csound doc: http://csound.com/docs/manual/bexprnd.html bexprnd :: SigOrD a => a -> SE a -- | Beta distribution random number generator (positive values only). -- -- Beta distribution random number generator (positive values only). This -- is an x-class noise generator. -- --
-- ares betarand krange, kalpha, kbeta -- ires betarand krange, kalpha, kbeta -- kres betarand krange, kalpha, kbeta ---- -- csound doc: http://csound.com/docs/manual/betarand.html betarand :: SigOrD a => a -> a -> a -> SE a -- | Produces a normalized moving phase value with sync input and output. -- -- Produces a moving phase value between zero and one and an extra -- impulse output ("sync out") whenever its phase value crosses or is -- reset to zero. The phase can be reset at any time by an impulse on the -- "sync in" parameter. -- --
-- aphase, asyncout syncphasor xcps, asyncin, [, iphs] ---- -- csound doc: http://csound.com/docs/manual/syncphasor.html syncphasor :: Sig -> Sig -> (Sig, Sig) -- | A resettable linear ramp between two levels -- -- A resettable linear ramp between two levels. Port of Supercollider's -- Phasor. -- --
-- aindex sc_phasor xtrig, xrate, kstart, kend [, kresetPos] -- kindex sc_phasor xtrig, xrate, kstart, kend [, kresetPos] ---- -- csound doc: http://csound.com/docs/manual/sc_phasor.html sc_phasor :: Sig -> Sig -> Sig -> Sig -> Sig -- | Produce an arbitrary number of normalized moving phase values. -- -- Produce an arbitrary number of normalized moving phase values, -- accessable by an index. -- --
-- ares phasorbnk xcps, kndx, icnt [, iphs] -- kres phasorbnk kcps, kndx, icnt [, iphs] ---- -- csound doc: http://csound.com/docs/manual/phasorbnk.html phasorbnk :: Sig -> Sig -> D -> Sig -- | Produce a normalized moving phase value. -- --
-- ares phasor xcps [, iphs] -- kres phasor kcps [, iphs] ---- -- csound doc: http://csound.com/docs/manual/phasor.html phasor :: Sig -> Sig -- | An emulation of a human voice. -- --
-- ares voice kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn ---- -- csound doc: http://csound.com/docs/manual/voice.html voice :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig -- | Physical model related to the striking of a metal block. -- -- Audio output is a tone related to the striking of a metal block as -- found in a vibraphone. The method is a physical model developed from -- Perry Cook, but re-coded for Csound. -- --
-- ares vibes kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec ---- -- csound doc: http://csound.com/docs/manual/vibes.html vibes :: Sig -> Sig -> D -> D -> D -> Sig -> Sig -> Tab -> D -> Sig -- | Semi-physical model of a tambourine sound. -- -- tambourine is a semi-physical model of a tambourine sound. It is one -- of the PhISEM percussion opcodes. PhISEM (Physically Informed -- Stochastic Event Modeling) is an algorithmic approach for simulating -- collisions of multiple independent sound producing objects. -- --
-- ares tambourine kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \ -- [, ifreq1] [, ifreq2] ---- -- csound doc: http://csound.com/docs/manual/tambourine.html tambourine :: Sig -> D -> Sig -- | Semi-physical model of a stick sound. -- -- stix is a semi-physical model of a stick sound. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares stix iamp, idettack [, inum] [, idamp] [, imaxshake] ---- -- csound doc: http://csound.com/docs/manual/stix.html stix :: D -> D -> Sig -- | Semi-physical model of a sleighbell sound. -- -- sleighbells is a semi-physical model of a sleighbell sound. It is one -- of the PhISEM percussion opcodes. PhISEM (Physically Informed -- Stochastic Event Modeling) is an algorithmic approach for simulating -- collisions of multiple independent sound producing objects. -- --
-- ares sleighbells kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \ -- [, ifreq1] [, ifreq2] ---- -- csound doc: http://csound.com/docs/manual/sleighbells.html sleighbells :: Sig -> D -> Sig -- | Sounds like the shaking of a maraca or similar gourd instrument. -- -- Audio output is a tone related to the shaking of a maraca or similar -- gourd instrument. The method is a physically inspired model developed -- from Perry Cook, but re-coded for Csound. -- --
-- ares shaker kamp, kfreq, kbeans, kdamp, ktimes [, idecay] ---- -- csound doc: http://csound.com/docs/manual/shaker.html shaker :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Semi-physical model of a sekere sound. -- -- sekere is a semi-physical model of a sekere sound. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares sekere iamp, idettack [, inum] [, idamp] [, imaxshake] ---- -- csound doc: http://csound.com/docs/manual/sekere.html sekere :: D -> D -> Sig -- | Semi-physical model of a sandpaper sound. -- -- sandpaper is a semi-physical model of a sandpaper sound. It is one of -- the PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares sandpaper iamp, idettack [, inum] [, idamp] [, imaxshake] ---- -- csound doc: http://csound.com/docs/manual/sandpaper.html sandpaper :: D -> D -> Sig -- | Creates a tone similar to a piano string prepared in a Cageian -- fashion. -- -- Audio output is a tone similar to a piano string, prepared with a -- number of rubbers and rattles. The method uses a physical model -- developed from solving the partial differential equation. -- --
-- ares prepiano ifreq, iNS, iD, iK, \ -- iT30,iB, kbcl, kbcr, imass, ihvfreq, iinit, ipos, ivel, isfreq, \ -- isspread[, irattles, irubbers] -- al,ar prepiano ifreq, iNS, iD, iK, \ -- iT30,iB, kbcl, kbcr, imass, ihvfreq, iinit, ipos, ivel, isfreq, \ -- isspread[, irattles, irubbers] ---- -- csound doc: http://csound.com/docs/manual/prepiano.html prepiano :: D -> D -> D -> D -> D -> D -> Sig -> Sig -> D -> D -> D -> D -> D -> D -> D -> (Sig, Sig) -- | Simulates a planet orbiting in a binary star system. -- -- planet simulates a planet orbiting in a binary star system. The -- outputs are the x, y and z coordinates of the orbiting planet. It is -- possible for the planet to achieve escape velocity by a close -- encounter with a star. This makes this system somewhat unstable. -- --
-- ax, ay, az planet kmass1, kmass2, ksep, ix, iy, iz, ivx, ivy, ivz, idelta \ -- [, ifriction] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/planet.html planet :: Sig -> Sig -> Sig -> D -> D -> D -> D -> D -> D -> D -> (Sig, Sig, Sig) -- | An emulation of a mini-Moog synthesizer. -- --
-- ares moog kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn ---- -- csound doc: http://csound.com/docs/manual/moog.html moog :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Tab -> Sig -- | Physical model related to the striking of a wooden block. -- -- Audio output is a tone related to the striking of a wooden block as -- found in a marimba. The method is a physical model developed from -- Perry Cook but re-coded for Csound. -- --
-- ares marimba kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec \ -- [, idoubles] [, itriples] ---- -- csound doc: http://csound.com/docs/manual/marimba.html marimba :: Sig -> Sig -> D -> D -> D -> Sig -> Sig -> Tab -> D -> Sig -- | An emulation of a mandolin. -- --
-- ares mandol kamp, kfreq, kpluck, kdetune, kgain, ksize \ -- [, ifn] [, iminfreq] ---- -- csound doc: http://csound.com/docs/manual/mandol.html mandol :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Mandelbrot set -- -- Returns the number of iterations corresponding to a given point of -- complex plane by applying the Mandelbrot set formula. -- --
-- kiter, koutrig mandel ktrig, kx, ky, kmaxIter ---- -- csound doc: http://csound.com/docs/manual/mandel.html mandel :: Sig -> Sig -> Sig -> Sig -> (Sig, Sig) -- | Implements the Lorenz system of equations. -- -- Implements the Lorenz system of equations. The Lorenz system is a -- chaotic-dynamic system which was originally used to simulate the -- motion of a particle in convection currents and simplified weather -- systems. Small differences in initial conditions rapidly lead to -- diverging values. This is sometimes expressed as the butterfly effect. -- If a butterfly flaps its wings in Australia, it will have an effect on -- the weather in Alaska. This system is one of the milestones in the -- development of chaos theory. It is useful as a chaotic audio source or -- as a low frequency modulation source. -- --
-- ax, ay, az lorenz ksv, krv, kbv, kh, ix, iy, iz, iskip [, iskipinit] ---- -- csound doc: http://csound.com/docs/manual/lorenz.html lorenz :: Sig -> Sig -> Sig -> Sig -> D -> D -> D -> D -> (Sig, Sig, Sig) -- | Semi-physical model of a guiro sound. -- -- guiro is a semi-physical model of a guiro sound. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares guiro kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] [, ifreq1] ---- -- csound doc: http://csound.com/docs/manual/guiro.html guiro :: Sig -> D -> Sig -- | Audio output is a tone related to the striking of a cow bell or -- similar. -- -- Audio output is a tone related to the striking of a cow bell or -- similar. The method is a physical model developed from Perry Cook, but -- re-coded for Csound. -- --
-- ares gogobel kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivfn ---- -- csound doc: http://csound.com/docs/manual/gogobel.html gogobel :: Sig -> Sig -> D -> D -> D -> Sig -> Sig -> Tab -> Sig -- | Variation of the dynamic stochastic approach to waveform synthesis -- conceived by Iannis Xenakis. -- -- gendyx (gendy eXtended) is an implementation of the Génération -- Dynamique Stochastique (GENDYN), a dynamic stochastic approach to -- waveform synthesis conceived by Iannis Xenakis, using curves instead -- of segments. -- --
-- ares gendyx kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \ -- kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum] -- kres gendyx kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \ -- kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum] ---- -- csound doc: http://csound.com/docs/manual/gendyx.html gendyx :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Dynamic stochastic approach to waveform synthesis using cubic -- interpolation. -- -- Implementation with cubic interpolation of the Génération Dynamique -- Stochastique (GENDYN), a dynamic stochastic approach to waveform -- synthesis conceived by Iannis Xenakis. -- --
-- ares gendyc kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \ -- kampscl, kdurscl [, initcps] [, knum] -- kres gendyc kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \ -- kampscl, kdurscl [, initcps] [, knum] ---- -- csound doc: http://csound.com/docs/manual/gendyc.html gendyc :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Dynamic stochastic approach to waveform synthesis conceived by Iannis -- Xenakis. -- -- Implementation of the Génération Dynamique Stochastique (GENDYN), a -- dynamic stochastic approach to waveform synthesis conceived by Iannis -- Xenakis. -- --
-- ares gendy kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \ -- kampscl, kdurscl [, initcps] [, knum] -- kres gendy kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \ -- kampscl, kdurscl [, initcps] [, knum] ---- -- csound doc: http://csound.com/docs/manual/gendy.html gendy :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Semi-physical model of a water drop. -- -- dripwater is a semi-physical model of a water drop. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares dripwater kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \ -- [, ifreq1] [, ifreq2] ---- -- csound doc: http://csound.com/docs/manual/dripwater.html dripwater :: Sig -> D -> Sig -- | Semi-physical model of a crunch sound. -- -- crunch is a semi-physical model of a crunch sound. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares crunch iamp, idettack [, inum] [, idamp] [, imaxshake] ---- -- csound doc: http://csound.com/docs/manual/crunch.html crunch :: D -> D -> Sig -- | Simulates Chua's oscillator, an LRC oscillator with an active -- resistor, proved capable of bifurcation and chaotic attractors, with -- k-rate control of circuit elements. -- --
-- aI3, aV2, aV1 chuap kL, kR0, kC1, kG, kGa, kGb, kE, kC2, iI3, iV2, iV1, ktime_step ---- -- csound doc: http://csound.com/docs/manual/chuap.html chuap :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> D -> Sig -> (Sig, Sig, Sig) -- | Semi-physical model of a cabasa sound. -- -- cabasa is a semi-physical model of a cabasa sound. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares cabasa iamp, idettack [, inum] [, idamp] [, imaxshake] ---- -- csound doc: http://csound.com/docs/manual/cabasa.html cabasa :: D -> D -> Sig -- | Creates a tone similar to a struck metal bar. -- -- Audio output is a tone similar to a struck metal bar, using a physical -- model developed from solving the partial differential equation. There -- are controls over the boundary conditions as well as the bar -- characteristics. -- --
-- ares barmodel kbcL, kbcR, iK, ib, kscan, iT30, ipos, ivel, iwid ---- -- csound doc: http://csound.com/docs/manual/barmodel.html barmodel :: Sig -> Sig -> D -> D -> Sig -> D -> D -> D -> D -> Sig -- | Semi-physical model of a bamboo sound. -- -- bamboo is a semi-physical model of a bamboo sound. It is one of the -- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic -- Event Modeling) is an algorithmic approach for simulating collisions -- of multiple independent sound producing objects. -- --
-- ares bamboo kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \ -- [, ifreq1] [, ifreq2] ---- -- csound doc: http://csound.com/docs/manual/bamboo.html bamboo :: Sig -> D -> Sig -- | Calculates the classical ADSR envelope. -- -- Calculates the classical ADSR envelope -- --
-- ares xadsr iatt, idec, islev, irel [, idel] -- kres xadsr iatt, idec, islev, irel [, idel] ---- -- csound doc: http://csound.com/docs/manual/xadsr.html xadsr :: D -> D -> D -> D -> Sig -- | Calculates the classical ADSR envelope using the expsegr mechanism. -- --
-- ares mxadsr iatt, idec, islev, irel [, idel] [, ireltim] -- kres mxadsr iatt, idec, islev, irel [, idel] [, ireltim] ---- -- csound doc: http://csound.com/docs/manual/mxadsr.html mxadsr :: D -> D -> D -> D -> Sig -- | Calculates the classical ADSR envelope using the linsegr mechanism. -- --
-- ares madsr iatt, idec, islev, irel [, idel] [, ireltim] -- kres madsr iatt, idec, islev, irel [, idel] [, ireltim] ---- -- csound doc: http://csound.com/docs/manual/madsr.html madsr :: D -> D -> D -> D -> Sig -- | The linen opcode extended with a final release segment. -- -- linenr -- same as linen except that the final segment is entered only -- on sensing a MIDI note release. The note is then extended by the decay -- time. -- --
-- ares linenr xamp, irise, idec, iatdec -- kres linenr kamp, irise, idec, iatdec ---- -- csound doc: http://csound.com/docs/manual/linenr.html linenr :: Sig -> D -> D -> D -> Sig -- | Applies a straight line rise and decay pattern to an input amp signal. -- -- linen -- apply a straight line rise and decay pattern to an input amp -- signal. -- --
-- ares linen xamp, irise, idur, idec -- kres linen kamp, irise, idur, idec ---- -- csound doc: http://csound.com/docs/manual/linen.html linen :: Sig -> D -> D -> D -> Sig -- | The envlpx opcode with a final release segment. -- -- envlpxr is the same as envlpx except that the final segment is entered -- only on sensing a MIDI note release. The note is then extended by the -- decay time. -- --
-- ares envlpxr xamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind] -- kres envlpxr kamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind] ---- -- csound doc: http://csound.com/docs/manual/envlpxr.html envlpxr :: Sig -> D -> D -> Tab -> D -> D -> Sig -- | Applies an envelope consisting of 3 segments. -- -- envlpx -- apply an envelope consisting of 3 segments: -- --
-- ares envlpx xamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod] -- kres envlpx kamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod] ---- -- csound doc: http://csound.com/docs/manual/envlpx.html envlpx :: Sig -> D -> D -> D -> Tab -> D -> D -> Sig -- | Calculates the classical ADSR envelope using linear segments. -- --
-- ares adsr iatt, idec, islev, irel [, idel] -- kres adsr iatt, idec, islev, irel [, idel] ---- -- csound doc: http://csound.com/docs/manual/adsr.html adsr :: D -> D -> D -> D -> Sig -- | 2D linear interpolation -- -- 2D linear interpolation between 4 points at (0,0), (1,0), (0,1), (1,1) -- --
-- kout xyscale kx, ky, k00, k10, k01, k11 ---- -- csound doc: http://csound.com/docs/manual/xyscale.html xyscale :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Constructs a user-definable envelope with extended release segment. -- -- Constructs a user-definable envelope. It is the same as transeg, with -- an extended release segment. -- --
-- ares transegr ia, idur, itype, ib [, idur2] [, itype] [, ic] ... -- kres transegr ia, idur, itype, ib [, idur2] [, itype] [, ic] ... ---- -- csound doc: http://csound.com/docs/manual/transegr.html transegr :: [D] -> D -> D -> D -> Sig -- | Constructs a user-definable envelope in absolute time. -- --
-- ares transegb ia, itim, itype, ib [, itim2] [, itype] [, ic] ... -- kres transegb ia, itim, itype, ib [, itim2] [, itype] [, ic] ... ---- -- csound doc: http://csound.com/docs/manual/transegb.html transegb :: [D] -> Sig -- | Constructs a user-definable envelope. -- --
-- ares transeg ia, idur, itype, ib [, idur2] [, itype] [, ic] ... -- kres transeg ia, idur, itype, ib [, idur2] [, itype] [, ic] ... ---- -- csound doc: http://csound.com/docs/manual/transeg.html transeg :: [D] -> Sig -- | Arbitrary signal scaling. -- -- Scales incoming value to user-definable range. Similar to scale object -- found in popular dataflow languages. -- --
-- kscl scale kinput, kmax, kmin ---- -- csound doc: http://csound.com/docs/manual/scale.html scale :: Sig -> Sig -> Sig -> Sig -- | Control signals based on held segments. -- -- Generate control signal consisiting of held segments delimited by two -- or more specified points. The entire envelope can be looped at -- time-variant rate. Each segment coordinate can also be varied at -- k-rate. -- --
-- ksig lpsholdp kphase, kvalue0, ktime0 [, kvalue1] [, ktime1] \ -- [, kvalue2] [, ktime2] [...] ---- -- csound doc: http://csound.com/docs/manual/lpsholdp.html lpsholdp :: Sig -> Sig -> [Sig] -> Sig -- | Generate control signal consisting of exponential or linear segments -- delimited by two or more specified points. -- -- Generate control signal consisting of controllable exponential -- segments or linear segments delimited by two or more specified points. -- The entire envelope is looped at kfreq rate. Each parameter can be -- varied at k-rate. -- --
-- ksig looptseg kfreq, ktrig, iphase, kvalue0, ktype0, ktime0, [, kvalue1] [,ktype1] [, ktime1] \ -- [, kvalue2] [,ktype2] [, ktime2] [...] [, kvalueN] [,ktypeN] [, ktimeN] ---- -- csound doc: http://csound.com/docs/manual/looptseg.html looptseg :: Sig -> Sig -> [Sig] -> Sig -- | Control signals based on linear segments. -- -- Generate control signal consisiting of linear segments delimited by -- two or more specified points. The entire envelope can be looped at -- time-variant rate. Each segment coordinate can also be varied at -- k-rate. -- --
-- ksig loopsegp kphase, kvalue0, kdur0, kvalue1 \ -- [, kdur1, ... , kdurN-1, kvalueN] ---- -- csound doc: http://csound.com/docs/manual/loopsegp.html loopsegp :: Sig -> [Sig] -> Sig -- | This opcode implements a formula for generating a normalised -- logarithmic curve in range 0 - 1. It is based on the Max / MSP work of -- Eric Singer (c) 1994. -- -- Generates a logarithmic curve in range 0 to 1 of arbitrary steepness. -- Steepness index equal to or lower than 1.0 will result in Not-a-Number -- errors and cause unstable behavior. -- --
-- kout logcurve kindex, ksteepness ---- -- csound doc: http://csound.com/docs/manual/logcurve.html logcurve :: Sig -> Sig -> Sig -- | Trace a series of line segments between specified points including a -- release segment. -- --
-- ares linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz -- kres linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz ---- -- csound doc: http://csound.com/docs/manual/linsegr.html linsegr :: [D] -> D -> D -> Sig -- | Trace a series of line segments between specified absolute points. -- --
-- ares linsegb ia, itim1, ib [, itim2] [, ic] [...] -- kres linsegb ia, itim1, ib [, itim2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/linsegb.html linsegb :: [D] -> Sig -- | Trace a series of line segments between specified points. -- --
-- ares linseg ia, idur1, ib [, idur2] [, ic] [...] -- kres linseg ia, idur1, ib [, idur2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/linseg.html linseg :: [D] -> Sig -- | Linear to linear interpolation -- -- Maps a linear range of values to another linear range of values. -- --
-- kout linlin kin, ksrclo, ksrchi, kdstlo, kdsthi ---- -- csound doc: http://csound.com/docs/manual/linlin.html linlin :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | An implementation of a logarithmic gain curve which is similar to the -- gainslider~ object from Cycling 74 Max / MSP. -- -- This opcode is intended for use to multiply by an audio signal to give -- a console mixer like feel. There is no bounds in the source code so -- you can for example give higher than 127 values for extra amplitude -- but possibly clipped audio. -- --
-- kout gainslider kindex ---- -- csound doc: http://csound.com/docs/manual/gainslider.html gainslider :: Sig -> Sig -- | Trace a series of exponential segments between specified points -- including a release segment. -- --
-- ares expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz -- kres expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz ---- -- csound doc: http://csound.com/docs/manual/expsegr.html expsegr :: [D] -> D -> D -> Sig -- | An exponential segment generator operating at a-rate with absolute -- times. -- -- An exponential segment generator operating at a-rate. This unit is -- almost identical to expsegb, but more precise when defining segments -- with very short durations (i.e., in a percussive attack phase) at -- audio rate. -- --
-- ares expsegba ia, itim1, ib [, itim2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/expsegba.html expsegba :: D -> D -> D -> Sig -- | Trace a series of exponential segments between specified absolute -- points. -- --
-- ares expsegb ia, itim1, ib [, itim2] [, ic] [...] -- kres expsegb ia, itim1, ib [, itim2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/expsegb.html expsegb :: [D] -> Sig -- | An exponential segment generator operating at a-rate. -- -- An exponential segment generator operating at a-rate. This unit is -- almost identical to expseg, but more precise when defining segments -- with very short durations (i.e., in a percussive attack phase) at -- audio rate. -- --
-- ares expsega ia, idur1, ib [, idur2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/expsega.html expsega :: [D] -> Sig -- | Trace a series of exponential segments between specified points. -- --
-- ares expseg ia, idur1, ib [, idur2] [, ic] [...] -- kres expseg ia, idur1, ib [, idur2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/expseg.html expseg :: [D] -> Sig -- | Trace an exponential curve between specified points. -- --
-- ares expon ia, idur, ib -- kres expon ia, idur, ib ---- -- csound doc: http://csound.com/docs/manual/expon.html expon :: D -> D -> D -> Sig -- | This opcode implements a formula for generating a normalised -- exponential curve in range 0 - 1. It is based on the Max / MSP work of -- Eric Singer (c) 1994. -- -- Generates an exponential curve in range 0 to 1 of arbitrary steepness. -- Steepness index equal to or lower than 1.0 will result in Not-a-Number -- errors and cause unstable behavior. -- --
-- kout expcurve kindex, ksteepness ---- -- csound doc: http://csound.com/docs/manual/expcurve.html expcurve :: Sig -> Sig -> Sig -- | Trace a series of line segments between specified points with cosine -- interpolation, including a release segment. -- --
-- ares cossegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz -- kres cossegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz ---- -- csound doc: http://csound.com/docs/manual/cossegr.html cossegr :: [D] -> D -> D -> Sig -- | Trace a series of line segments between specified absolute points with -- cosine interpolation. -- --
-- ares cossegb ia, itim1, ib [, itim2] [, ic] [...] -- kres cossegb ia, itim1, ib [, itim2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/cossegb.html cossegb :: [D] -> Sig -- | Trace a series of line segments between specified points with cosine -- interpolation. -- --
-- ares cosseg ia, idur1, ib [, idur2] [, ic] [...] -- kres cosseg ia, idur1, ib [, idur2] [, ic] [...] ---- -- csound doc: http://csound.com/docs/manual/cosseg.html cosseg :: [D] -> Sig -- | Break point function with linear interpolation -- -- Break-point function with linear interpolation. Useful when defining a -- table with GEN27 and scaling the x value would be overkill. -- --
-- ky bpf kx, kx1, ky1, kx2, ..., kxn, kyn ---- -- csound doc: http://csound.com/docs/manual/bpf.html bpf :: Sig -> Sig -> Sig -> [Sig] -> Sig -- | Allows three-dimensional Hyper Vectorial Synthesis (HVS) controlled by -- externally-updated k-variables. -- -- hvs3 allows three-dimensional Hyper Vectorial Synthesis (HVS) -- controlled by externally-updated k-variables. -- --
-- hvs3 kx, ky, kz, inumParms, inumPointsX, inumPointsY, inumPointsZ, iOutTab, iPositionsTab, iSnapTab [, iConfigTab] ---- -- csound doc: http://csound.com/docs/manual/hvs3.html hvs3 :: Sig -> Sig -> Sig -> D -> D -> D -> D -> D -> D -> D -> SE () -- | Allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled by -- externally-updated k-variables. -- -- hvs2 allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled -- by externally-updated k-variables. -- --
-- hvs2 kx, ky, inumParms, inumPointsX, inumPointsY, iOutTab, iPositionsTab, iSnapTab [, iConfigTab] ---- -- csound doc: http://csound.com/docs/manual/hvs2.html hvs2 :: Sig -> Sig -> D -> D -> D -> D -> D -> D -> SE () -- | Allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled by -- externally-updated k-variables. -- -- hvs1 allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled -- by externally-updated k-variables. -- --
-- hvs1 kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab] ---- -- csound doc: http://csound.com/docs/manual/hvs1.html hvs1 :: Sig -> D -> D -> D -> D -> D -> SE () -- | Simple vocal simulation based on glottal pulses with formant -- characteristics. -- -- This opcode produces a simple vocal simulation based on glottal pulses -- with formant characteristics. Output is a series of sound events, -- where each event is composed of a burst of squared sine pulses -- followed by silence. The VOSIM (VOcal SIMulation) synthesis method was -- developed by Kaegi and Tempelaars in the 1970's. -- --
-- ar vosim kamp, kFund, kForm, kDecay, kPulseCount, kPulseFactor, ifn [, iskip] ---- -- csound doc: http://csound.com/docs/manual/vosim.html vosim :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Synchronous granular synthesis. -- -- syncloop is a variation on syncgrain, which implements synchronous -- granular synthesis. syncloop adds loop start and end points and an -- optional start position. Loop start and end control grain start -- positions, so the actual grains can go beyond the loop points (if the -- loop points are not at the extremes of the table), enabling seamless -- crossfading. For more information on the granular synthesis process, -- check the syncgrain manual page. -- --
-- asig syncloop kamp, kfreq, kpitch, kgrsize, kprate, klstart, \ -- klend, ifun1, ifun2, iolaps[,istart, iskip] ---- -- csound doc: http://csound.com/docs/manual/syncloop.html syncloop :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> D -> Sig -- | Outputs partikkel's grain scheduler clock pulse and phase to -- synchronize several instances of the partikkel opcode to the same -- clock source. -- -- partikkelsync is an opcode for outputting partikkel's grain scheduler -- clock pulse and phase. partikkelsync's output can be used to -- synchronize other instances of the partikkel opcode to the same clock. -- --
-- async [,aphase] partikkelsync iopcode_id ---- -- csound doc: http://csound.com/docs/manual/partikkelsync.html partikkelsync :: Tuple a => D -> a -- | Set mask index for a specific mask parameter of a running partikkel -- instance. -- -- partikkelset is an opcode for setting the partikkel mask index for a -- specific parameter. Used together with partikkelget, it can be used to -- synchronize partikkel masking between several running instances of the -- partikkel opcode. It can also be used to set the internal mask index -- basaed on other processes, for example to create more complex masking -- patterns than is available with the regular grain masking system. -- --
-- partikkelset kparameterindex, kmaskindex, iopcode_id ---- -- csound doc: http://csound.com/docs/manual/partikkelset.html partikkelset :: Sig -> Sig -> D -> SE () -- | Get mask index for a specific mask parameter of a running partikkel -- instance. -- -- partikkelget is an opcode for outputting partikkel mask index for a -- specific parameter. Used together with partikkelset, it can be used to -- synchronize partikkel masking between several running instances of the -- partikkel opcode. It can also be used to control other processes based -- on the internal mask index, for example to create more complex masking -- patterns than is available with the regular grain masking system. -- --
-- kindex partikkelget kparameterindex, iopcode_id ---- -- csound doc: http://csound.com/docs/manual/partikkelget.html partikkelget :: Sig -> D -> Sig -- | Generate granular synthesis textures with more user control. -- -- Generate granular synthesis textures. grain2 is simpler to use but -- grain3 offers more control. -- --
-- ares grain3 kcps, kphs, kfmd, kpmd, kgdur, kdens, imaxovr, kfn, iwfn, \ -- kfrpow, kprpow [, iseed] [, imode] ---- -- csound doc: http://csound.com/docs/manual/grain3.html grain3 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> Tab -> Tab -> Sig -> Sig -> Sig -- | Easy-to-use granular synthesis texture generator. -- -- Generate granular synthesis textures. grain2 is simpler to use, but -- grain3 offers more control. -- --
-- ares grain2 kcps, kfmd, kgdur, iovrlp, kfn, iwfn [, irpow] \ -- [, iseed] [, imode] ---- -- csound doc: http://csound.com/docs/manual/grain2.html grain2 :: Sig -> Sig -> Sig -> D -> Tab -> Tab -> Sig -- | Generates granular synthesis textures. -- --
-- ares grain xamp, xpitch, xdens, kampoff, kpitchoff, kgdur, igfn, \ -- iwfn, imgdur [, igrnd] ---- -- csound doc: http://csound.com/docs/manual/grain.html grain :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> D -> Sig -- | Audio output is a succession of grains derived from data in a stored -- function table -- -- Audio output is a succession of grains derived from data in a stored -- function table ifna. The local envelope of these grains and their -- timing is based on the model of fof synthesis and permits detailed -- control of the granular synthesis. -- --
-- ares fog xamp, xdens, xtrans, aspd, koct, kband, kris, kdur, kdec, \ -- iolaps, ifna, ifnb, itotdur [, iphs] [, itmode] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/fog.html fog :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> Tab -> Tab -> D -> Sig -- | Produces sinusoid bursts useful for formant and granular synthesis. -- -- Audio output is a succession of sinusoid bursts initiated at frequency -- xfund with a spectral peak at xform. For xfund above 25 Hz these -- bursts produce a speech-like formant with spectral characteristics -- determined by the k-input parameters. For lower fundamentals this -- generator provides a special form of granular synthesis. -- --
-- ares fof xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps, \ -- ifna, ifnb, itotdur [, iphs] [, ifmode] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/fof.html fof :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> Tab -> Tab -> D -> Sig -- | Synchronous granular synthesis, using a soundfile as source. -- -- diskgrain implements synchronous granular synthesis. The source sound -- for the grains is obtained by reading a soundfile containing the -- samples of the source waveform. -- --
-- asig diskgrain Sfname, kamp, kfreq, kpitch, kgrsize, kprate, \ -- ifun, iolaps [,imaxgrsize , ioffset] ---- -- csound doc: http://csound.com/docs/manual/diskgrain.html diskgrain :: Str -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -- | Basic frequency modulated oscillator with linear interpolation. -- --
-- ares foscili xamp, kcps, xcar, xmod, kndx, ifn [, iphs] ---- -- csound doc: http://csound.com/docs/manual/foscili.html foscili :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | A basic frequency modulated oscillator. -- --
-- ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs] ---- -- csound doc: http://csound.com/docs/manual/foscil.html foscil :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Uses FM synthesis to create a Wurlitzer electric piano sound. -- -- Uses FM synthesis to create a Wurlitzer electric piano sound. It comes -- from a family of FM sounds, all using 4 basic oscillators and various -- architectures, as used in the TX81Z synthesizer. -- --
-- ares fmwurlie kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \ -- ifn4, ivfn ---- -- csound doc: http://csound.com/docs/manual/fmwurlie.html fmwurlie :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Tab -> Tab -> Tab -> Sig -- | FM Singing Voice Synthesis -- --
-- ares fmvoice kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate[, ifn1, \ -- ifn2, ifn3, ifn4, ivibfn] ---- -- csound doc: http://csound.com/docs/manual/fmvoice.html fmvoice :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Uses FM synthesis to create a Fender Rhodes electric piano sound. -- -- Uses FM synthesis to create a Fender Rhodes electric piano sound. It -- comes from a family of FM sounds, all using 4 basic oscillators and -- various architectures, as used in the TX81Z synthesizer. -- --
-- ares fmrhode kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \ -- ifn3, ifn4, ivfn ---- -- csound doc: http://csound.com/docs/manual/fmrhode.html fmrhode :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Tab -> Tab -> Tab -> Sig -- | Uses FM synthesis to create a percussive flute sound. -- -- Uses FM synthesis to create a percussive flute sound. It comes from a -- family of FM sounds, all using 4 basic oscillators and various -- architectures, as used in the TX81Z synthesizer. -- --
-- ares fmpercfl kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, \ -- ifn3, ifn4, ivfn] ---- -- csound doc: http://csound.com/docs/manual/fmpercfl.html fmpercfl :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Uses FM synthesis to create a âHeavy Metalâ sound. -- -- Uses FM synthesis to create a âHeavy Metalâ sound. It comes from a -- family of FM sounds, all using 4 basic oscillators and various -- architectures, as used in the TX81Z synthesizer. -- --
-- ares fmmetal kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \ -- ifn4, ivfn ---- -- csound doc: http://csound.com/docs/manual/fmmetal.html fmmetal :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Tab -> Tab -> Tab -> Sig -- | Uses FM synthesis to create a tublar bell sound. -- -- Uses FM synthesis to create a tublar bell sound. It comes from a -- family of FM sounds, all using 4 basic oscillators and various -- architectures, as used in the TX81Z synthesizer. -- --
-- ares fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \ -- ifn4, ivfn, isus] ---- -- csound doc: http://csound.com/docs/manual/fmbell.html fmbell :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Uses FM synthesis to create a Hammond B3 organ sound. -- -- Uses FM synthesis to create a Hammond B3 organ sound. It comes from a -- family of FM sounds, all using 4 basic oscillators and various -- architectures, as used in the TX81Z synthesizer. -- --
-- ares fmb3 kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \ -- ifn4, ivfn] ---- -- csound doc: http://csound.com/docs/manual/fmb3.html fmb3 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Two mutually frequency and/or phase modulated oscillators. -- -- Two oscillators, mutually frequency and/or phase modulated by each -- other. -- --
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] ---- -- csound doc: http://csound.com/docs/manual/crossfm.html crossfmpmi :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> (Sig, Sig) -- | Two mutually frequency and/or phase modulated oscillators. -- -- Two oscillators, mutually frequency and/or phase modulated by each -- other. -- --
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] ---- -- csound doc: http://csound.com/docs/manual/crossfm.html crossfmpm :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> (Sig, Sig) -- | Two mutually frequency and/or phase modulated oscillators. -- -- Two oscillators, mutually frequency and/or phase modulated by each -- other. -- --
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] ---- -- csound doc: http://csound.com/docs/manual/crossfm.html crosspmi :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> (Sig, Sig) -- | Two mutually frequency and/or phase modulated oscillators. -- -- Two oscillators, mutually frequency and/or phase modulated by each -- other. -- --
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] ---- -- csound doc: http://csound.com/docs/manual/crossfm.html crosspm :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> (Sig, Sig) -- | Two mutually frequency and/or phase modulated oscillators. -- -- Two oscillators, mutually frequency and/or phase modulated by each -- other. -- --
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] ---- -- csound doc: http://csound.com/docs/manual/crossfm.html crossfmi :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> (Sig, Sig) -- | Two mutually frequency and/or phase modulated oscillators. -- -- Two oscillators, mutually frequency and/or phase modulated by each -- other. -- --
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] ---- -- csound doc: http://csound.com/docs/manual/crossfm.html crossfm :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> (Sig, Sig) -- | Calculates tables for use by vco2 opcode. -- -- vco2init calculates tables for use by vco2 opcode. Optionally, it is -- also possible to access these tables as standard Csound function -- tables. In this case, vco2ft can be used to find the correct table -- number for a given oscillator frequency. -- --
-- ifn vco2init iwave [, ibasfn] [, ipmul] [, iminsiz] [, imaxsiz] [, isrcft] ---- -- csound doc: http://csound.com/docs/manual/vco2init.html vco2init :: D -> SE Tab -- | Returns a table number at i-time for a given oscillator frequency and -- wavform. -- -- vco2ift is the same as vco2ft, but works at i-time. It is suitable for -- use with opcodes that expect an i-rate table number (for example, -- oscili). -- --
-- ifn vco2ift icps, iwave [, inyx] ---- -- csound doc: http://csound.com/docs/manual/vco2ift.html vco2ift :: D -> D -> Tab -- | Returns a table number at k-time for a given oscillator frequency and -- wavform. -- -- vco2ft returns the function table number to be used for generating the -- specified waveform at a given frequency. This function table number -- can be used by any Csound opcode that generates a signal by reading -- function tables (like oscilikt). The tables must be calculated by -- vco2init before vco2ft is called and shared as Csound ftables -- (ibasfn). -- --
-- kfn vco2ft kcps, iwave [, inyx] ---- -- csound doc: http://csound.com/docs/manual/vco2ft.html vco2ft :: Sig -> D -> Tab -- | Implementation of a band-limited oscillator using pre-calculated -- tables. -- -- vco2 is similar to vco. But the implementation uses pre-calculated -- tables of band-limited waveforms (see also GEN30) rather than -- integrating impulses. This opcode can be faster than vco (especially -- if a low control-rate is used) and also allows better sound quality. -- Additionally, there are more waveforms and oscillator phase can be -- modulated at k-rate. The disadvantage is increased memory usage. For -- more details about vco2 tables, see also vco2init and vco2ft. -- --
-- ares vco2 kamp, kcps [, imode] [, kpw] [, kphs] [, inyx] ---- -- csound doc: http://csound.com/docs/manual/vco2.html vco2 :: Sig -> Sig -> Sig -- | Implementation of a band limited, analog modeled oscillator. -- -- Implementation of a band limited, analog modeled oscillator, based on -- integration of band limited impulses. vco can be used to simulate a -- variety of analog wave forms. -- --
-- ares vco xamp, xcps, iwave, kpw [, ifn] [, imaxd] [, ileak] [, inyx] \ -- [, iphs] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/vco.html vco :: Sig -> Sig -> D -> Sig -> Sig -- | A mostly bandlimited shape-shifting square-pulse-saw-sinewave -- oscillator with hardsync. -- -- This oscillator generates a variable shape waveform that can morph -- freely between classical shapes sine, square, pulse and saw. The shape -- is controlled by two interacting values: clip (squareness) and "skew" -- (symmetry). All shapes use a minimum number of samples per transition -- (ie, the sharp end of a saw or a pulse uses minimum N samples), this -- makes output bandlimited. At higher frequency, the minimum sweep rate -- takes over, so over a certain pitch all shapes "degrade" to sinewave. -- The minimum sweep rate is i-time configurable. Hardsync (a very quick -- sweep to phase=0) is supported, and a sync signal is output once per -- cycle. -- --
-- aout [, asyncout] squinewave acps, aClip, aSkew [, asyncin] [, iMinSweep] [, iphase] ---- -- csound doc: http://csound.com/docs/manual/squinewave.html squinewave :: Tuple a => Sig -> Sig -> Sig -> a -- | Generates a set of impulses. -- -- Generates a set of impulses of amplitude kamp separated by kintvl -- seconds (or samples if kintvl is negative). The first impulse is -- generated after a delay of ioffset seconds. -- --
-- ares mpulse kamp, kintvl [, ioffset] ---- -- csound doc: http://csound.com/docs/manual/mpulse.html mpulse :: Sig -> Sig -> Sig -- | Output is a set of harmonically related cosine partials. -- --
-- ares gbuzz xamp, xcps, knh, klh, kmul, ifn [, iphs] ---- -- csound doc: http://csound.com/docs/manual/gbuzz.html gbuzz :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Output is a set of harmonically related sine partials. -- --
-- ares buzz xamp, xcps, knh, ifn [, iphs] ---- -- csound doc: http://csound.com/docs/manual/buzz.html buzz :: Sig -> Sig -> Sig -> Tab -> Sig -- | Generates a natural-sounding user-controllable vibrato. -- --
-- kout vibrato kAverageAmp, kAverageFreq, kRandAmountAmp, kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, ifn [, iphs ---- -- csound doc: http://csound.com/docs/manual/vibrato.html vibrato :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Easier-to-use user-controllable vibrato. -- --
-- kout vibr kAverageAmp, kAverageFreq, ifn ---- -- csound doc: http://csound.com/docs/manual/vibr.html vibr :: Sig -> Sig -> Tab -> Sig -- | High precision oscillator with cubic interpolation. -- --
-- ares poscil3 aamp, acps [, ifn, iphs] -- ares poscil3 aamp, kcps [, ifn, iphs] -- ares poscil3 kamp, acps [, ifn, iphs] -- ares poscil3 kamp, kcps [, ifn, iphs] -- ires poscil3 kamp, kcps [, ifn, iphs] -- kres poscil3 kamp, kcps [, ifn, iphs] ---- -- csound doc: http://csound.com/docs/manual/poscil3.html poscil3 :: Sig -> Sig -> Tab -> Sig -- | High precision oscillator. -- --
-- ares poscil aamp, acps [, ifn, iphs] -- ares poscil aamp, kcps [, ifn, iphs] -- ares poscil kamp, acps [, ifn, iphs] -- ares poscil kamp, kcps [, ifn, iphs] -- ires poscil kamp, kcps [, ifn, iphs] -- kres poscil kamp, kcps [, ifn, iphs] ---- -- csound doc: http://csound.com/docs/manual/poscil.html poscil :: Sig -> Sig -> Tab -> Sig -- | A simple, fast sine oscillator -- -- Simple, fast sine oscillator, that uses only one multiply, and two add -- operations to generate one sample of output, and does not require a -- function table. -- --
-- ares oscils iamp, icps, iphs [, iflg] ---- -- csound doc: http://csound.com/docs/manual/oscils.html oscils :: D -> D -> D -> Sig -- | Accesses table values at a user-defined frequency. -- -- Accesses table values at a user-defined frequency. This opcode can -- also be written as oscilx. -- --
-- ares osciln kamp, ifrq, ifn, itimes ---- -- csound doc: http://csound.com/docs/manual/osciln.html osciln :: Sig -> D -> Tab -> D -> Sig -- | A linearly interpolated oscillator with sync status that allows -- changing the table number at k-rate. -- -- oscilikts is the same as oscilikt. Except it has a sync input that can -- be used to re-initialize the oscillator to a k-rate phase value. It is -- slower than oscilikt and osciliktp. -- --
-- ares oscilikts xamp, xcps, kfn, async, kphs [, istor] ---- -- csound doc: http://csound.com/docs/manual/oscilikts.html oscilikts :: Sig -> Sig -> Tab -> Sig -> Sig -> Sig -- | A linearly interpolated oscillator that allows allows phase -- modulation. -- -- osciliktp allows phase modulation (which is actually implemented as -- k-rate frequency modulation, by differentiating phase input). The -- disadvantage is that there is no amplitude control, and frequency can -- be varied only at the control-rate. This opcode can be faster or -- slower than oscilikt, depending on the control-rate. -- --
-- ares osciliktp kcps, kfn, kphs [, istor] ---- -- csound doc: http://csound.com/docs/manual/osciliktp.html osciliktp :: Sig -> Tab -> Sig -> Sig -- | A linearly interpolated oscillator that allows changing the table -- number at k-rate. -- -- oscilikt is very similar to oscili, but allows changing the table -- number at k-rate. It is slightly slower than oscili (especially with -- high control rate), although also more accurate as it uses a 31-bit -- phase accumulator, as opposed to the 24-bit one used by oscili. -- --
-- ares oscilikt xamp, xcps, kfn [, iphs] [, istor] -- kres oscilikt kamp, kcps, kfn [, iphs] [, istor] ---- -- csound doc: http://csound.com/docs/manual/oscilikt.html oscilikt :: Sig -> Sig -> Tab -> Sig -- | A simple oscillator with linear interpolation. -- -- oscili reads table ifn sequentially and repeatedly at a frequency -- xcps. The amplitude is scaled by xamp. Linear interpolation is applied -- for table look up from internal phase values. -- --
-- ares oscili xamp, xcps[, ifn, iphs] -- kres oscili kamp, kcps[, ifn, iphs] ---- -- csound doc: http://csound.com/docs/manual/oscili.html oscili :: Sig -> Sig -> Tab -> Sig -- | A simple oscillator with cubic interpolation. -- -- oscil3 reads table ifn sequentially and repeatedly at a frequency -- xcps. The amplitude is scaled by xamp. Cubic interpolation is applied -- for table look up from internal phase values. -- --
-- ares oscil3 xamp, xcps [, ifn, iphs] -- kres oscil3 kamp, kcps [, ifn, iphs] ---- -- csound doc: http://csound.com/docs/manual/oscil3.html oscil3 :: Sig -> Sig -> Tab -> Sig -- | A simple oscillator. -- -- oscil reads table ifn sequentially and repeatedly at a frequency xcps. -- The amplitude is scaled by xamp. -- --
-- ares oscil xamp, xcps [, ifn, iphs] -- kres oscil kamp, kcps [, ifn, iphs] ---- -- csound doc: http://csound.com/docs/manual/oscil.html oscil :: Sig -> Sig -> Tab -> Sig -- | Mixes the output of any number of oscillators. -- -- This unit generator mixes the output of any number of oscillators. The -- frequency, phase, and amplitude of each oscillator can be modulated by -- two LFOs (all oscillators have a separate set of LFOs, with different -- phase and frequency); additionally, the output of each oscillator can -- be filtered through an optional parametric equalizer (also controlled -- by the LFOs). This opcode is most useful for rendering ensemble -- (strings, choir, etc.) instruments. -- --
-- ares oscbnk kcps, kamd, kfmd, kpmd, iovrlap, iseed, kl1minf, kl1maxf, \ -- kl2minf, kl2maxf, ilfomode, keqminf, keqmaxf, keqminl, keqmaxl, \ -- keqminq, keqmaxq, ieqmode, kfn [, il1fn] [, il2fn] [, ieqffn] \ -- [, ieqlfn] [, ieqqfn] [, itabl] [, ioutfn] ---- -- csound doc: http://csound.com/docs/manual/oscbnk.html oscbnk :: Sig -> Sig -> Sig -> Sig -> D -> D -> Sig -> Sig -> Sig -> Sig -> D -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> D -> Tab -> Sig -- | An oscillator which takes tonality and brightness as arguments. -- -- An oscillator which takes tonality and brightness as arguments, -- relative to a base frequency. -- --
-- ares hsboscil kamp, ktone, kbrite, ibasfreq, iwfn, ioctfn \ -- [, ioctcnt] [, iphs] ---- -- csound doc: http://csound.com/docs/manual/hsboscil.html hsboscil :: Sig -> Sig -> Sig -> D -> Tab -> Tab -> Sig -- | Performs additive synthesis with an arbitrary number of partials -not -- necessarily harmonic- with interpolation. -- -- Performs additive synthesis with an arbitrary number of partials, not -- necessarily harmonic. (see adsynt for detailed manual) -- --
-- ar adsynt2 kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs] ---- -- csound doc: http://csound.com/docs/manual/adsynt2.html adsynt2 :: Sig -> Sig -> Tab -> Tab -> Tab -> D -> Sig -- | Performs additive synthesis with an arbitrary number of partials, not -- necessarily harmonic. -- --
-- ares adsynt kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs] ---- -- csound doc: http://csound.com/docs/manual/adsynt.html adsynt :: Sig -> Sig -> Tab -> Tab -> Tab -> D -> Sig -- | Output is an additive set of individually controlled sinusoids, using -- an oscillator bank. -- --
-- ares adsyn kamod, kfmod, ksmod, ifilcod ---- -- csound doc: http://csound.com/docs/manual/adsyn.html adsyn :: Sig -> Sig -> Sig -> Str -> Sig -- | Sends an arate array signal out from an instrument to a named port. -- --
-- outletv Sname, array ---- -- csound doc: http://csound.com/docs/manual/outletv.html outletv :: Str -> Sig -> SE () -- | Sends a krate signal out from an instrument to a named port. -- --
-- outletkid Sname, SinstanceID, ksignal ---- -- csound doc: http://csound.com/docs/manual/outletkid.html outletkid :: Str -> Str -> Sig -> SE () -- | Sends a krate signal out from an instrument to a named port. -- --
-- outletk Sname, ksignal ---- -- csound doc: http://csound.com/docs/manual/outletk.html outletk :: Str -> Sig -> SE () -- | Sends a frate signal (fsig) out from an instrument to a named port. -- --
-- outletf Sname, fsignal ---- -- csound doc: http://csound.com/docs/manual/outletf.html outletf :: Str -> Spec -> SE () -- | Sends an arate signal out from an instrument to a named port. -- --
-- outleta Sname, asignal ---- -- csound doc: http://csound.com/docs/manual/outleta.html outleta :: Str -> Sig -> SE () -- | Receives an arate array signal into an instrument through a named -- port. -- --
-- array inletv Sname ---- -- csound doc: http://csound.com/docs/manual/inletv.html inletv :: Str -> Sig -- | Receives a krate signal into an instrument from a named port. -- --
-- ksignal inletkid Sname, SinstanceID ---- -- csound doc: http://csound.com/docs/manual/inletkid.html inletkid :: Str -> Str -> Sig -- | Receives a krate signal into an instrument from a named port. -- --
-- ksignal inletk Sname ---- -- csound doc: http://csound.com/docs/manual/inletk.html inletk :: Str -> Sig -- | Receives an frate signal (fsig) into an instrument from a named port. -- --
-- fsignal inletf Sname ---- -- csound doc: http://csound.com/docs/manual/inletf.html inletf :: Str -> Spec -- | Receives an arate signal into an instrument through a named port. -- --
-- asignal inleta Sname ---- -- csound doc: http://csound.com/docs/manual/inleta.html inleta :: Str -> Sig -- | Generate a function table from within an instrument definition, -- without duplication of data. -- -- Enables the creation of function tables entirely inside instrument -- definitions, without any duplication of data. -- --
-- ifno ftgenonce ip1, ip2dummy, isize, igen, iarga, iargb, ... ---- -- csound doc: http://csound.com/docs/manual/ftgenonce.html ftgenonce :: D -> D -> D -> D -> D -> [D] -> SE Tab -- | Write data to a serial port. -- -- Write data to a serial port for arduino. -- --
-- serialWrite_i iPort, iByte -- serialWrite_i iPort, SBytes ---- -- csound doc: http://csound.com/docs/manual/serialWrite_i.html serialWrite_i :: D -> D -> SE () -- | Write data to a serial port. -- -- Write data to a serial port for arduino. -- --
-- serialWrite iPort, iByte -- serialWrite iPort, kByte -- serialWrite iPort, SBytes ---- -- csound doc: http://csound.com/docs/manual/serialWrite.html serialWrite :: D -> D -> SE () -- | Read data from a serial port. -- -- Read data from a serial port for arduino. -- --
-- kByte serialRead iPort ---- -- csound doc: http://csound.com/docs/manual/serialRead.html serialRead :: D -> Sig -- | Print data from a serial port. -- -- Print to the screen any bytes (up to 32k) in the input buffer. Note -- that these bytes will be cleared from the buffer. use this opcode -- mainly for debugging messages. If you want to mix debugging and other -- communication messages over the same port, you will need to manually -- parse the data with the serialRead opcode. -- --
-- serialPrint iPort ---- -- csound doc: http://csound.com/docs/manual/serialPrint.html serialPrint :: D -> SE () -- | Flush data from a serial port. -- -- Flush to the screen any bytes (up to 32k) in the input buffer. Note -- that these bytes will be cleared from the buffer. use this opcode -- mainly for debugging messages. If you want to mix debugging and other -- communication messages over the same port, you will need to manually -- parse the data with the serialRead opcode. -- --
-- serialFlush iPort ---- -- csound doc: http://csound.com/docs/manual/serialFlush.html serialFlush :: D -> SE () -- | Close a serial port. -- -- Close a serial port for arduino. -- --
-- serialEnd iPort ---- -- csound doc: http://csound.com/docs/manual/serialEnd.html serialEnd :: D -> SE () -- | Open a serial port. -- -- Open a serial port for arduino. -- --
-- iPort serialBegin SPortName [, ibaudRate] ---- -- csound doc: http://csound.com/docs/manual/serialBegin.html serialBegin :: Str -> SE D -- | An opcode which can be used to implement a remote midi orchestra. This -- opcode will send midi events from a source machine to one destination. -- -- With the midremot and midglobal opcodes you are able to perform -- instruments on remote machines and control them from a master machine. -- The remote opcodes are implemented using the master/client model. All -- the machines involved contain the same orchestra but only the master -- machine contains the information of the midi score. During the -- performance the master machine sends the midi events to the clients. -- The midremot opcode will send events from a source machine to one -- destination if you want to send events to many destinations -- (broadcast) use the midglobal opcode instead. These two opcodes can be -- used in combination. -- --
-- midremot idestination, isource, instrnum [,instrnum...] ---- -- csound doc: http://csound.com/docs/manual/midremot.html midremot :: D -> D -> D -> SE () -- | An opcode which can be used to implement a remote midi orchestra. This -- opcode will broadcast the midi events to all the machines involved in -- the remote concert. -- -- With the midremot and midglobal opcodes you are able to perform -- instruments on remote machines and control them from a master machine. -- The remote opcodes are implemented using the master/client model. All -- the machines involved contain the same orchestra but only the master -- machine contains the information of the midi score. During the -- performance the master machine sends the midi events to the clients. -- The midglobal opcode sends the events to all the machines involved in -- the remote concert. These machines are determined by the midremot -- definitions made above the midglobal command. To send events to only -- one machine use midremot. -- --
-- midglobal isource, instrnum [,instrnum...] ---- -- csound doc: http://csound.com/docs/manual/midglobal.html midglobal :: D -> D -> SE () -- | An opcode which can be used to implement a remote orchestra. This -- opcode will send note events from a source machine to one destination. -- -- With the insremot and insglobal opcodes you are able to perform -- instruments on remote machines and control them from a master machine. -- The remote opcodes are implemented using the master/client model. All -- the machines involved contain the same orchestra but only the master -- machine contains the information of the score. During the performance -- the master machine sends the note events to the clients. The insremot -- opcode will send events from a source machine to one destination if -- you want to send events to many destinations (broadcast) use the -- insglobal opcode instead. These two opcodes can be used in -- combination. -- --
-- insremot idestination, isource, instrnum [,instrnum...] ---- -- csound doc: http://csound.com/docs/manual/insremot.html insremot :: D -> D -> D -> SE () -- | An opcode which can be used to implement a remote orchestra. This -- opcode will send note events from a source machine to many -- destinations. -- -- With the insremot and insglobal opcodes you are able to perform -- instruments on remote machines and control them from a master machine. -- The remote opcodes are implemented using the master/client model. All -- the machines involved contain the same orchestra but only the master -- machine contains the information of the score. During the performance -- the master machine sends the note events to the clients. The insglobal -- opcode sends the events to all the machines involved in the remote -- concert. These machines are determined by the insremot definitions -- made above the insglobal command. To send events to only one machine -- use insremot. -- --
-- insglobal isource, instrnum [,instrnum...] ---- -- csound doc: http://csound.com/docs/manual/insglobal.html insglobal :: D -> D -> SE () -- | Send system real-time messages to the MIDI OUT port. -- --
-- mrtmsg imsgtype ---- -- csound doc: http://csound.com/docs/manual/mrtmsg.html mrtmsg :: D -> SE () -- | Sends a MIDI CLOCK message. -- --
-- mclock ifreq ---- -- csound doc: http://csound.com/docs/manual/mclock.html mclock :: D -> SE () -- | Gets a MIDI program change value. -- -- midiprogramchange is designed to simplify writing instruments that can -- be used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midiprogramchange xprogram ---- -- csound doc: -- http://csound.com/docs/manual/midiprogramchange.html midiprogramchange :: Sig -> SE () -- | Gets a MIDI polyphonic aftertouch value. -- -- midipolyaftertouch is designed to simplify writing instruments that -- can be used interchangeably for either score or MIDI input, and to -- make it easier to adapt instruments originally written for score input -- to work with MIDI input. -- --
-- midipolyaftertouch xpolyaftertouch, xcontrollervalue [, ilow] [, ihigh] ---- -- csound doc: -- http://csound.com/docs/manual/midipolyaftertouch.html midipolyaftertouch :: Sig -> Sig -> SE () -- | Gets a MIDI pitchbend value. -- -- midipitchbend is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midipitchbend xpitchbend [, ilow] [, ihigh] ---- -- csound doc: http://csound.com/docs/manual/midipitchbend.html midipitchbend :: Sig -> SE () -- | Gets a MIDI note number as a pitch-class value. -- -- midinoteonpch is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midinoteonpch xpch, xvelocity ---- -- csound doc: http://csound.com/docs/manual/midinoteonpch.html midinoteonpch :: Sig -> Sig -> SE () -- | Gets a MIDI note number value as octave-point-decimal value. -- -- midinoteonoct is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midinoteonoct xoct, xvelocity ---- -- csound doc: http://csound.com/docs/manual/midinoteonoct.html midinoteonoct :: Sig -> Sig -> SE () -- | Gets a MIDI note number value. -- -- midinoteonkey is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midinoteonkey xkey, xvelocity ---- -- csound doc: http://csound.com/docs/manual/midinoteonkey.html midinoteonkey :: Sig -> Sig -> SE () -- | Gets a MIDI note number as a cycles-per-second frequency. -- -- midinoteoncps is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midinoteoncps xcps, xvelocity ---- -- csound doc: http://csound.com/docs/manual/midinoteoncps.html midinoteoncps :: Sig -> Sig -> SE () -- | Gets a MIDI noteoff value. -- -- midinoteoff is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midinoteoff xkey, xvelocity ---- -- csound doc: http://csound.com/docs/manual/midinoteoff.html midinoteoff :: Sig -> Sig -> SE () -- | Changes values, depending on MIDI activation. -- -- mididefault is designed to simplify writing instruments that can be -- used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- mididefault xdefault, xvalue ---- -- csound doc: http://csound.com/docs/manual/mididefault.html mididefault :: Sig -> Sig -> SE () -- | Gets a MIDI control change value. -- -- midicontrolchange is designed to simplify writing instruments that can -- be used interchangeably for either score or MIDI input, and to make it -- easier to adapt instruments originally written for score input to work -- with MIDI input. -- --
-- midicontrolchange xcontroller, xcontrollervalue [, ilow] [, ihigh] ---- -- csound doc: -- http://csound.com/docs/manual/midicontrolchange.html midicontrolchange :: Sig -> Sig -> SE () -- | Returns the MIDI channel number from which the note was activated. -- -- midichn returns the MIDI channel number (1 - 16) from which the note -- was activated. In the case of score notes, it returns 0. -- --
-- ichn midichn ---- -- csound doc: http://csound.com/docs/manual/midichn.html midichn :: D -- | Gets a MIDI channel's aftertouch value. -- -- midichannelaftertouch is designed to simplify writing instruments that -- can be used interchangeably for either score or MIDI input, and to -- make it easier to adapt instruments originally written for score input -- to work with MIDI input. -- --
-- midichannelaftertouch xchannelaftertouch [, ilow] [, ihigh] ---- -- csound doc: -- http://csound.com/docs/manual/midichannelaftertouch.html midichannelaftertouch :: Sig -> SE () -- | Sends a noteon and a noteoff MIDI message both with the same channel, -- number and velocity. -- --
-- noteondur2 ichn, inum, ivel, idur ---- -- csound doc: http://csound.com/docs/manual/noteondur2.html noteondur2 :: D -> D -> D -> D -> SE () -- | Sends a noteon and a noteoff MIDI message both with the same channel, -- number and velocity. -- --
-- noteondur ichn, inum, ivel, idur ---- -- csound doc: http://csound.com/docs/manual/noteondur.html noteondur :: D -> D -> D -> D -> SE () -- | Send a noteon message to the MIDI OUT port. -- --
-- noteon ichn, inum, ivel ---- -- csound doc: http://csound.com/docs/manual/noteon.html noteon :: D -> D -> D -> SE () -- | Send a noteoff message to the MIDI OUT port. -- --
-- noteoff ichn, inum, ivel ---- -- csound doc: http://csound.com/docs/manual/noteoff.html noteoff :: D -> D -> D -> SE () -- | Sends a stream of the MIDI notes. -- --
-- moscil kchn, knum, kvel, kdur, kpause ---- -- csound doc: http://csound.com/docs/manual/moscil.html moscil :: Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends noteon and noteoff messages to the MIDI OUT port. -- -- Sends noteon and noteoff messages to the MIDI OUT port when triggered -- by a value different than zero. -- --
-- midion2 kchn, knum, kvel, ktrig ---- -- csound doc: http://csound.com/docs/manual/midion2.html midion2 :: Sig -> Sig -> Sig -> Sig -> SE () -- | Generates MIDI note messages at k-rate. -- --
-- midion kchn, knum, kvel ---- -- csound doc: http://csound.com/docs/manual/midion.html midion :: Sig -> Sig -> Sig -> SE () -- | Extend the duration of real-time generated events. -- -- Extend the duration of real-time generated events and handle their -- extra life (Usually for usage along with release instead of linenr, -- linsegr, etc). -- --
-- xtratim iextradur ---- -- csound doc: http://csound.com/docs/manual/xtratim.html xtratim :: D -> SE () -- | Indicates whether a note is in its âreleaseâ stage. -- -- Provides a way of knowing when a note off message for the current note -- is received. Only a noteoff message with the same MIDI note number as -- the one which triggered the note will be reported by release. -- --
-- kflag release ---- -- csound doc: http://csound.com/docs/manual/release.html release :: Sig -- | Sends a generic MIDI message to the MIDI OUT port. -- --
-- midiout_i istatus, ichan, idata1, idata2 ---- -- csound doc: http://csound.com/docs/manual/midiout_i.html midiout_i :: D -> D -> D -> D -> SE () -- | Sends a generic MIDI message to the MIDI OUT port. -- --
-- midiout kstatus, kchan, kdata1, kdata2 ---- -- csound doc: http://csound.com/docs/manual/midiout.html midiout :: Sig -> Sig -> Sig -> Sig -> SE () -- | Returns a generic MIDI message received by the MIDI IN port. -- -- Returns a generic MIDI message received by the MIDI IN port -- --
-- kstatus, kchan, kdata1, kdata2 midiin ---- -- csound doc: http://csound.com/docs/manual/midiin.html midiin :: (Sig, Sig, Sig, Sig) -- | Get the note number of the current MIDI event and modify it by the -- current pitch-bend value, express it in pitch-class units. -- --
-- ipch pchmidib [irange] -- kpch pchmidib [irange] ---- -- csound doc: http://csound.com/docs/manual/pchmidib.html pchmidib :: Msg -> Sig -- | Get the note number of the current MIDI event, expressed in -- pitch-class units. -- --
-- ipch pchmidi ---- -- csound doc: http://csound.com/docs/manual/pchmidi.html pchmidi :: Msg -> D -- | Get the note number of the current MIDI event and modify it by the -- current pitch-bend value, express it in octave-point-decimal. -- --
-- ioct octmidib [irange] -- koct octmidib [irange] ---- -- csound doc: http://csound.com/docs/manual/octmidib.html octmidib :: Msg -> Sig -- | Get the note number, in octave-point-decimal units, of the current -- MIDI event. -- --
-- ioct octmidi ---- -- csound doc: http://csound.com/docs/manual/octmidi.html octmidi :: Msg -> D -- | Get a MIDI note number (allows customized micro-tuning scales). -- -- This unit is similar to cpsmidi, but allows fully customized -- micro-tuning scales. -- --
-- icps cpstmid ifn ---- -- csound doc: http://csound.com/docs/manual/cpstmid.html cpstmid :: Msg -> Tab -> D -- | Get the note number of the current MIDI event and modify it by the -- current pitch-bend value, express it in cycles-per-second. -- --
-- icps cpsmidib [irange] -- kcps cpsmidib [irange] ---- -- csound doc: http://csound.com/docs/manual/cpsmidib.html cpsmidib :: Msg -> Sig -- | Get the note number of the current MIDI event, expressed in -- cycles-per-second. -- --
-- icps cpsmidi ---- -- csound doc: http://csound.com/docs/manual/cpsmidi.html cpsmidi :: Msg -> D -- | Musically map MIDI velocity to peak amplitude within a specified -- dynamic range in decibels. -- --
-- iamplitude ampmidid ivelocity, idecibels -- kamplitude ampmidid kvelocity, idecibels ---- -- csound doc: http://csound.com/docs/manual/ampmidid.html ampmidid :: D -> D -> Sig -- | Get the velocity of the current MIDI event. -- --
-- iamp ampmidi iscal [, ifn] ---- -- csound doc: http://csound.com/docs/manual/ampmidi.html ampmidi :: Msg -> D -> D -- | Sends MIDI program change messages at k-rate. -- --
-- outkpc kchn, kprog, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/outkpc.html outkpc :: Sig -> Sig -> Sig -> Sig -> SE () -- | Sends MIDI pitch-bend messages at k-rate. -- --
-- outkpb kchn, kvalue, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/outkpb.html outkpb :: Sig -> Sig -> Sig -> Sig -> SE () -- | Sends polyphonic MIDI aftertouch messages at k-rate. -- --
-- outkpat kchn, knotenum, kvalue, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/outkpat.html outkpat :: Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends 14-bit MIDI controller output at k-rate. -- --
-- outkc14 kchn, kmsb, klsb, kvalue, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/outkc14.html outkc14 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends MIDI controller messages at k-rate. -- --
-- outkc kchn, knum, kvalue, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/outkc.html outkc :: Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends MIDI aftertouch messages at k-rate. -- --
-- outkat kchn, kvalue, kmin, kmax ---- -- csound doc: http://csound.com/docs/manual/outkat.html outkat :: Sig -> Sig -> Sig -> Sig -> SE () -- | Sends MIDI program change messages at i-rate -- --
-- outipc ichn, iprog, imin, imax ---- -- csound doc: http://csound.com/docs/manual/outipc.html outipc :: D -> D -> D -> D -> SE () -- | Sends MIDI pitch-bend messages at i-rate. -- --
-- outipb ichn, ivalue, imin, imax ---- -- csound doc: http://csound.com/docs/manual/outipb.html outipb :: D -> D -> D -> D -> SE () -- | Sends polyphonic MIDI aftertouch messages at i-rate. -- --
-- outipat ichn, inotenum, ivalue, imin, imax ---- -- csound doc: http://csound.com/docs/manual/outipat.html outipat :: D -> D -> D -> D -> D -> SE () -- | Sends 14-bit MIDI controller output at i-rate. -- --
-- outic14 ichn, imsb, ilsb, ivalue, imin, imax ---- -- csound doc: http://csound.com/docs/manual/outic14.html outic14 :: D -> D -> D -> D -> D -> D -> SE () -- | Sends MIDI controller output at i-rate. -- --
-- outic ichn, inum, ivalue, imin, imax ---- -- csound doc: http://csound.com/docs/manual/outic.html outic :: D -> D -> D -> D -> D -> SE () -- | Sends MIDI aftertouch messages at i-rate. -- --
-- outiat ichn, ivalue, imin, imax ---- -- csound doc: http://csound.com/docs/manual/outiat.html outiat :: D -> D -> D -> D -> SE () -- | Sends a Non-Registered Parameter Number to the MIDI OUT port. -- -- Sends a NPRN (Non-Registered Parameter Number) message to the MIDI OUT -- port each time one of the input arguments changes. -- --
-- nrpn kchan, kparmnum, kparmvalue ---- -- csound doc: http://csound.com/docs/manual/nrpn.html nrpn :: Sig -> Sig -> Sig -> SE () -- | Get the velocity from a MIDI event. -- --
-- ival veloc [ilow] [, ihigh] ---- -- csound doc: http://csound.com/docs/manual/veloc.html veloc :: Msg -> D -- | Returns the polyphonic after-touch pressure of the selected note -- number. -- -- polyaft returns the polyphonic pressure of the selected note number, -- optionally mapped to an user-specified range. -- --
-- ires polyaft inote [, ilow] [, ihigh] -- kres polyaft inote [, ilow] [, ihigh] ---- -- csound doc: http://csound.com/docs/manual/polyaft.html polyaft :: D -> Sig -- | Assigns an instrument number to a specified MIDI program. -- -- Assigns an instrument number to a specified (or all) MIDI program(s). -- --
-- pgmassign ipgm, inst[, ichn] -- pgmassign ipgm, "insname"[, ichn] ---- -- csound doc: http://csound.com/docs/manual/pgmassign.html pgmassign :: D -> D -> SE () -- | Get the current pitch-bend value for this channel. -- --
-- ibend pchbend [imin] [, imax] -- kbend pchbend [imin] [, imax] ---- -- csound doc: http://csound.com/docs/manual/pchbend.html pchbend :: Msg -> Sig -- | Get a note number from a MIDI event. -- --
-- ival notnum ---- -- csound doc: http://csound.com/docs/manual/notnum.html notnum :: Msg -> D -- | Get the current value (0-127) of a specified MIDI controller. -- --
-- ival midictrl inum [, imin] [, imax] -- kval midictrl inum [, imin] [, imax] ---- -- csound doc: http://csound.com/docs/manual/midictrl.html midictrl :: D -> Sig -- | Allows a floating-point 7-bit MIDI signal scaled with a minimum and a -- maximum range. -- --
-- idest midic7 ictlno, imin, imax [, ifn] -- kdest midic7 ictlno, kmin, kmax [, ifn] ---- -- csound doc: http://csound.com/docs/manual/midic7.html midic7 :: D -> D -> D -> Sig -- | Allows a floating-point 21-bit MIDI signal scaled with a minimum and a -- maximum range. -- --
-- idest midic21 ictlno1, ictlno2, ictlno3, imin, imax [, ifn] -- kdest midic21 ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn] ---- -- csound doc: http://csound.com/docs/manual/midic21.html midic21 :: D -> D -> D -> D -> D -> Sig -- | Allows a floating-point 14-bit MIDI signal scaled with a minimum and a -- maximum range. -- --
-- idest midic14 ictlno1, ictlno2, imin, imax [, ifn] -- kdest midic14 ictlno1, ictlno2, kmin, kmax [, ifn] ---- -- csound doc: http://csound.com/docs/manual/midic14.html midic14 :: D -> D -> D -> D -> Sig -- | Assigns a MIDI channel number to a Csound instrument. -- --
-- massign ichnl, insnum[, ireset] -- massign ichnl, "insname"[, ireset] ---- -- csound doc: http://csound.com/docs/manual/massign.html massign :: D -> D -> SE () -- | Initializes the controllers used to create a 21-bit MIDI value. -- --
-- initc21 ichan, ictlno1, ictlno2, ictlno3, ivalue ---- -- csound doc: http://csound.com/docs/manual/initc21.html initc21 :: D -> D -> D -> D -> D -> SE () -- | Initializes the controllers used to create a 14-bit MIDI value. -- --
-- initc14 ichan, ictlno1, ictlno2, ivalue ---- -- csound doc: http://csound.com/docs/manual/initc14.html initc14 :: D -> D -> D -> D -> SE () -- | Sets the initial values for a set of MIDI controllers. -- --
-- ctrlinit ichnl, ictlno1, ival1 [, ictlno2] [, ival2] [, ictlno3] \ -- [, ival3] [,...ival32] ---- -- csound doc: http://csound.com/docs/manual/ctrlinit.html ctrlinit :: [D] -> SE () -- | Allows a floating-point 21-bit MIDI signal scaled with a minimum and a -- maximum range. -- --
-- idest ctrl21 ichan, ictlno1, ictlno2, ictlno3, imin, imax [, ifn] -- kdest ctrl21 ichan, ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn] ---- -- csound doc: http://csound.com/docs/manual/ctrl21.html ctrl21 :: D -> D -> D -> D -> D -> D -> Sig -- | Allows a floating-point 14-bit MIDI signal scaled with a minimum and a -- maximum range. -- --
-- idest ctrl14 ichan, ictlno1, ictlno2, imin, imax [, ifn] -- kdest ctrl14 ichan, ictlno1, ictlno2, kmin, kmax [, ifn] ---- -- csound doc: http://csound.com/docs/manual/ctrl14.html ctrl14 :: D -> D -> D -> D -> D -> Sig -- | Get the current value of a MIDI channel controller. -- -- Get the current value of a controller and optionally map it onto -- specified range. -- --
-- ival chanctrl ichnl, ictlno [, ilow] [, ihigh] -- kval chanctrl ichnl, ictlno [, ilow] [, ihigh] ---- -- csound doc: http://csound.com/docs/manual/chanctrl.html chanctrl :: D -> D -> Sig -- | Get the current after-touch value for this channel. -- --
-- kaft aftouch [imin] [, imax] ---- -- csound doc: http://csound.com/docs/manual/aftouch.html aftouch :: Sig -- | Loads parameter banks to a VST plugin. -- -- vstprogset sets one of the programs in an .fxb bank. -- --
-- vstprogset instance, kprogram ---- -- csound doc: http://csound.com/docs/manual/vstprogset.html vstprogset :: D -> Sig -> SE () -- | Used for parameter comunication to and from a VST plugin. -- -- vstparamset and vstparamget are used for parameter comunication to and -- from a VST plugin. -- --
-- kvalue vstparamget instance, kparam ---- -- csound doc: http://csound.com/docs/manual/vstparamset.html vstparamget :: D -> Sig -> Sig -- | Used for parameter comunication to and from a VST plugin. -- -- vstparamset and vstparamget are used for parameter comunication to and -- from a VST plugin. -- --
-- vstparamset instance, kparam, kvalue ---- -- csound doc: http://csound.com/docs/manual/vstparamset.html vstparamset :: D -> Sig -> Sig -> SE () -- | Sends a MIDI note with definite duration to a VST plugin. -- -- vstnote sends a MIDI note with definite duration to a VST plugin. -- --
-- vstnote instance, kchan, knote, kveloc, kdur -- ---- -- csound doc: http://csound.com/docs/manual/vstnote.html vstnote :: D -> Sig -> Sig -> Sig -> Sig -> SE () -- | Sends MIDI information to a VST plugin. -- -- vstmidiout is used for sending MIDI information to a VST plugin. -- --
-- vstmidiout instance, kstatus, kchan, kdata1, kdata2 ---- -- csound doc: http://csound.com/docs/manual/vstmidiout.html vstmidiout :: D -> Sig -> Sig -> Sig -> Sig -> SE () -- | Load a VST plugin into memory for use with the other vst4cs opcodes. -- -- vstinit is used to load a VST plugin into memory for use with the -- other vst4cs opcodes. Both VST effects and instruments (synthesizers) -- can be used. -- --
-- instance vstinit ilibrarypath [,iverbose] ---- -- csound doc: http://csound.com/docs/manual/vstinit.html vstinit :: D -> SE D -- | Displays the parameters and the programs of a VST plugin. -- -- vstinfo displays the parameters and the programs of a VST plugin. -- --
-- vstinfo instance ---- -- csound doc: http://csound.com/docs/manual/vstinfo.html vstinfo :: D -> SE () -- | Opens the GUI editor window for a VST plugin. -- -- vstedit opens the custom GUI editor window for a VST plugin. Note that -- not all VST plugins have custom GUI editors. It may be necessary to -- use the --displays command-line option to ensure that Csound handles -- events from the editor window and displays it properly. -- --
-- vstedit instance ---- -- csound doc: http://csound.com/docs/manual/vstedit.html vstedit :: D -> SE () -- | Loads parameter banks to a VST plugin. -- -- vstbankload is used for loading parameter banks to a VST plugin. -- --
-- vstbankload instance, ipath ---- -- csound doc: http://csound.com/docs/manual/vstbankload.html vstbankload :: D -> D -> SE () -- | VST audio output. -- -- vstaudio and vstaudiog are used for sending and receiving audio from a -- VST plugin. -- --
-- aout1,aout2 vstaudiog instance, [ain1, ain2] ---- -- csound doc: http://csound.com/docs/manual/vstaudio.html vstaudiog :: D -> (Sig, Sig) -- | VST audio output. -- -- vstaudio and vstaudiog are used for sending and receiving audio from a -- VST plugin. -- --
-- aout1,aout2 vstaudio instance, [ain1, ain2] ---- -- csound doc: http://csound.com/docs/manual/vstaudio.html vstaudio :: D -> (Sig, Sig) -- | Lists all available DSSI and LADSPA plugins. -- -- dssilist checks the variables DSSI_PATH and LADSPA_PATH and lists all -- plugins available in all plugin libraries there. -- --
-- dssilist ---- -- csound doc: http://csound.com/docs/manual/dssilist.html dssilist :: SE () -- | Loads a DSSI or LADSPA plugin. -- -- dssiinit is used to load a DSSI or LADSPA plugin into memory for use -- with the other dssi4cs opcodes. Both LADSPA effects and DSSI -- instruments can be used. -- --
-- ihandle dssiinit ilibraryname, iplugindex [, iverbose] ---- -- csound doc: http://csound.com/docs/manual/dssiinit.html dssiinit :: D -> D -> SE D -- | Send control information to a LADSPA or DSSI plugin. -- -- dssictls sends control values to a plugin's control port -- --
-- dssictls ihandle, iport, kvalue, ktrigger ---- -- csound doc: http://csound.com/docs/manual/dssictls.html dssictls :: D -> D -> Sig -> Sig -> SE () -- | Processes audio using a LADSPA or DSSI plugin. -- -- dssiaudio generates audio by processing an input signal through a -- LADSPA plugin. -- --
-- [aout1, aout2, ..., aout9] dssiaudio ihandle, [ain1, ain2, ..., ain9] ---- -- csound doc: http://csound.com/docs/manual/dssiaudio.html dssiaudio :: Tuple a => D -> [Sig] -> a -- | Activates or deactivates a DSSI or LADSPA plugin. -- -- dssiactivate is used to activate or deactivate a DSSI or LADSPA -- plugin. It calles the plugin's activate() and deactivate() functions -- if they are provided. -- --
-- dssiactivate ihandle, ktoggle ---- -- csound doc: http://csound.com/docs/manual/dssiactivate.html dssiactivate :: D -> Sig -> SE () -- | Converts a pitch-class value into cycles-per-second (Hz) for equal -- divisions of any interval. -- -- Converts a pitch-class value into cycles-per-second (Hz) for equal -- divisions of any interval. There is a restriction of no more than 100 -- equal divisions. -- --
-- icps cpsxpch ipch, iequal, irepeat, ibase ---- -- csound doc: http://csound.com/docs/manual/cpsxpch.html cpsxpch :: D -> D -> D -> D -> D -- | Returns micro-tuning values at init-rate. -- --
-- icps cpstuni index, ifn ---- -- csound doc: http://csound.com/docs/manual/cpstuni.html cpstuni :: D -> Tab -> D -- | Returns micro-tuning values at k-rate. -- --
-- kcps cpstun ktrig, kindex, kfn ---- -- csound doc: http://csound.com/docs/manual/cpstun.html cpstun :: Sig -> Sig -> Tab -> Sig -- | Converts a pitch-class value into cycles-per-second (Hz) for equal -- divisions of the octave. -- --
-- icps cps2pch ipch, iequal ---- -- csound doc: http://csound.com/docs/manual/cps2pch.html cps2pch :: D -> D -> D -- | Calculates a factor to raise/lower a frequency by a given amount of -- semitones. -- --
-- semitone (x) ---- -- csound doc: http://csound.com/docs/manual/semitone.html semitone :: SigOrD a => a -> a -- | Convert pch to midi note number -- -- Convert pch to midi note number. pch representation has the form -- Octave.pitchclass, pitchclass being a number between 00 and 12. -- --
-- imidi pchtom ipch -- kmidi pchtom kpch ---- -- csound doc: http://csound.com/docs/manual/pchtom.html pchtom :: D -> Sig -- | Converts an octave-point-decimal value to pitch-class. -- --
-- pchoct (oct) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/pchoct.html pchoct :: SigOrD a => a -> a -- | Converts a Midi note number value to octave point pitch-class units. -- --
-- pchmidinn (MidiNoteNumber) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/pchmidinn.html pchmidinn :: SigOrD a => a -> a -- | Converts a pitch-class value to octave-point-decimal. -- --
-- octpch (pch) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/octpch.html octpch :: SigOrD a => a -> a -- | Converts a Midi note number value to octave-point-decimal. -- --
-- octmidinn (MidiNoteNumber) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/octmidinn.html octmidinn :: SigOrD a => a -> a -- | Converts a cycles-per-second value to octave-point-decimal. -- --
-- octcps (cps) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/octcps.html octcps :: SigOrD a => a -> a -- | Calculates a factor to raise/lower a frequency by a given amount of -- octaves. -- --
-- octave (x) ---- -- csound doc: http://csound.com/docs/manual/octave.html octave :: SigOrD a => a -> a -- | Convert note name to midi note number -- -- Convert note name to midi note number. It allows note name to include -- microtones or a deviation in cents. -- --
-- kmidi ntom Snote -- imidi ntom Snote ---- -- csound doc: http://csound.com/docs/manual/ntom.html ntom :: Str -> D -- | Convert midi note number to string note name -- -- Convert midi note number to string note name, with an accuracy of 1 -- cent. -- --
-- Snote mton kmidi -- Snote mton imidi ---- -- csound doc: http://csound.com/docs/manual/mton.html mton :: Sig -> Str -- | Convert a midi to frequency -- -- Convert a midi note number value to cycles per second, taking global -- value of A4 into account. -- --
-- ifreq mtof imidi -- kfreq mtof kmidi ---- -- csound doc: http://csound.com/docs/manual/mtof.html mtof :: D -> Sig -- | Convert frequency to midi -- -- Convert frequency to midi note number, taking global value of A4 into -- account. -- --
-- imidi ftom ifreq -- kmidi ftom kfreq ---- -- csound doc: http://csound.com/docs/manual/ftom.html ftom :: D -> Sig -- | Converts a pitch-class value to cycles-per-second. -- --
-- cpspch (pch) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/cpspch.html cpspch :: SigOrD a => a -> a -- | Converts an octave-point-decimal value to cycles-per-second. -- --
-- cpsoct (oct) (no rate restriction) ---- -- csound doc: http://csound.com/docs/manual/cpsoct.html cpsoct :: SigOrD a => a -> a -- | Converts a Midi note number value to cycles-per-second. -- --
-- cpsmidinn (MidiNoteNumber) (init- or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/cpsmidinn.html cpsmidinn :: SigOrD a => a -> a -- | Calculates a factor to raise/lower a frequency by a given amount of -- cents. -- --
-- cent (x) ---- -- csound doc: http://csound.com/docs/manual/cent.html cent :: SigOrD a => a -> a -- | Listen for all OSC messages at a given port. -- -- On each k-cycle looks to see if an OSC message has been received at a -- given port and copies its contents to a string array. All messages are -- copied. If a bundle of messages is received, the output array will -- contain all of the messages in it. -- --
-- Smess[],klen OSCraw iport ---- -- csound doc: http://csound.com/docs/manual/OSCraw.html oscRaw :: Tuple a => D -> a -- | Sends data to other processes using the low-level UDP or TCP protocols -- -- Transmits data directly using the UDP (socksend and socksends) or TCP -- (stsend) protocol onto a network. The data is not subject to any -- encoding or special routing. The socksends opcode send a stereo signal -- interleaved. -- --
-- stsend asig, Sipaddr, iport ---- -- csound doc: http://csound.com/docs/manual/socksend.html stsend :: Sig -> Str -> D -> SE () -- | Sends data to other processes using the low-level UDP or TCP protocols -- -- Transmits data directly using the UDP (socksend and socksends) or TCP -- (stsend) protocol onto a network. The data is not subject to any -- encoding or special routing. The socksends opcode send a stereo signal -- interleaved. -- --
-- socksends asigl, asigr, Sipaddr, iport, -- ilength ---- -- csound doc: http://csound.com/docs/manual/socksend.html socksends :: Sig -> Sig -> Str -> D -> D -> SE () -- | Sends data to other processes using the low-level UDP or TCP protocols -- -- Transmits data directly using the UDP (socksend and socksends) or TCP -- (stsend) protocol onto a network. The data is not subject to any -- encoding or special routing. The socksends opcode send a stereo signal -- interleaved. -- --
-- socksend asig, Sipaddr, iport, ilength -- socksend ksig, Sipaddr, iport, ilength ---- -- csound doc: http://csound.com/docs/manual/socksend.html socksend :: Sig -> Str -> D -> D -> SE () -- | Receives data from other processes using the low-level UDP or TCP -- protocols -- -- Receives directly using the UDP (sockrecv and sockrecvs) or TCP -- (strecv) protocol onto a network. The data is not subject to any -- encoding or special routing. The sockrecvs opcode receives a stereo -- signal interleaved. -- --
-- asig strecv Sipaddr, iport ---- -- csound doc: http://csound.com/docs/manual/sockrecv.html strecv :: Str -> D -> Sig -- | Receives data from other processes using the low-level UDP or TCP -- protocols -- -- Receives directly using the UDP (sockrecv and sockrecvs) or TCP -- (strecv) protocol onto a network. The data is not subject to any -- encoding or special routing. The sockrecvs opcode receives a stereo -- signal interleaved. -- --
-- asigl, asigr sockrecvs iport, ilength ---- -- csound doc: http://csound.com/docs/manual/sockrecv.html sockrecvs :: D -> D -> (Sig, Sig) -- | Receives data from other processes using the low-level UDP or TCP -- protocols -- -- Receives directly using the UDP (sockrecv and sockrecvs) or TCP -- (strecv) protocol onto a network. The data is not subject to any -- encoding or special routing. The sockrecvs opcode receives a stereo -- signal interleaved. -- --
-- asig sockrecv iport, ilength -- ksig sockrecv iport, ilength ---- -- csound doc: http://csound.com/docs/manual/sockrecv.html sockrecv :: D -> D -> Sig -- | Defines the port for use with the remote system. -- -- Defines the port for use with the insremot, midremot, insglobal and -- midglobal opcodes. -- --
-- remoteport iportnum ---- -- csound doc: http://csound.com/docs/manual/remoteport.html remoteport :: D -> SE () -- | Sets the level of a send to a buss. -- -- Sets the level at which signals from the send are added to the buss. -- This opcode, because all parameters are irate, may be used in the -- orchestra header. The actual sending of the signal to the buss is -- performed by the MixerSend opcode. -- --
-- MixerSetLevel_i isend, ibuss, igain ---- -- csound doc: http://csound.com/docs/manual/MixerSetLevel_i.html mixerSetLevel_i :: D -> D -> D -> SE () -- | Sets the level of a send to a buss. -- -- Sets the level at which signals from the send are added to the buss. -- The actual sending of the signal to the buss is performed by the -- MixerSend opcode. -- --
-- MixerSetLevel isend, ibuss, kgain ---- -- csound doc: http://csound.com/docs/manual/MixerSetLevel.html mixerSetLevel :: D -> D -> Sig -> SE () -- | Mixes an arate signal into a channel of a buss. -- --
-- MixerSend asignal, isend, ibuss, ichannel ---- -- csound doc: http://csound.com/docs/manual/MixerSend.html mixerSend :: Sig -> D -> D -> D -> SE () -- | Receives an arate signal from a channel of a buss. -- -- Receives an arate signal that has been mixed onto a channel of a buss. -- --
-- asignal MixerReceive ibuss, ichannel ---- -- csound doc: http://csound.com/docs/manual/MixerReceive.html mixerReceive :: D -> D -> SE Sig -- | Gets the level of a send to a buss. -- -- Gets the level at which signals from the send are being added to the -- buss. The actual sending of the signal to the buss is performed by the -- MixerSend opcode. -- --
-- kgain MixerGetLevel isend, ibuss ---- -- csound doc: http://csound.com/docs/manual/MixerGetLevel.html mixerGetLevel :: D -> D -> SE Sig -- | Resets all channels of a buss to 0. -- --
-- MixerClear ---- -- csound doc: http://csound.com/docs/manual/MixerClear.html mixerClear :: SE () -- | shuffles the content of a function table so that each element of the -- source table is put into a different random position. -- -- This opcode can be used in order to shuffle the content of function -- tables into a random order but without loosing any of the elements. -- Imagine shuffling a deck of cards. Each element of the table is copied -- to a different random position. If that position was already chosen -- before then the next free position is chosen. The length of the table -- remains the same. -- --
-- tableshufflei itablenum ---- -- csound doc: http://csound.com/docs/manual/tableshuffle.html tableshufflei :: D -> SE () -- | shuffles the content of a function table so that each element of the -- source table is put into a different random position. -- -- This opcode can be used in order to shuffle the content of function -- tables into a random order but without loosing any of the elements. -- Imagine shuffling a deck of cards. Each element of the table is copied -- to a different random position. If that position was already chosen -- before then the next free position is chosen. The length of the table -- remains the same. -- --
-- tableshuffle ktablenum ---- -- csound doc: http://csound.com/docs/manual/tableshuffle.html tableshuffle :: Sig -> SE () -- | Call an external program via the system call -- -- system and system_i call any external command understood by the -- operating system, similarly to the C function system(). system_i runs -- at i-time only, while system runs both at initialization and -- performance time. -- --
-- kres system ktrig, Scmd, [knowait] ---- -- csound doc: http://csound.com/docs/manual/system.html system :: Sig -> Str -> Sig -- | Call an external program via the system call -- -- system and system_i call any external command understood by the -- operating system, similarly to the C function system(). system_i runs -- at i-time only, while system runs both at initialization and -- performance time. -- --
-- ires system_i itrig, Scmd, [inowait] ---- -- csound doc: http://csound.com/docs/manual/system.html system_i :: D -> Str -> D -- | Select sample value based on audio-rate comparisons. -- -- Select sample value from three based on audio-rate comparisons of two -- signals. -- --
-- aout select a1, a2, aless, aequal, amore ---- -- csound doc: http://csound.com/docs/manual/select.html select :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -- | Asks the underlying operating system for the current directory name as -- a string. -- -- pwd call the operating system to determine the current directory -- (folder). pwd runs at i-time only. -- --
-- Sres pwd ---- -- csound doc: http://csound.com/docs/manual/pwd.html pwd :: Str -- | Modulation matrix opcode with optimizations for sparse matrices. -- -- The opcode can be used to let a large number of k-rate modulator -- variables modulate a large number of k-rate parameter variables, with -- arbitrary scaling of each modulator-to-parameter connection. Csound -- ftables are used to hold both the input (parameter) variables, the -- modulator variables, and the scaling coefficients. Output variables -- are written to another Csound ftable. -- --
-- modmatrix iresfn, isrcmodfn, isrcparmfn, imodscale, inum_mod, \\ -- inum_parm, kupdate ---- -- csound doc: http://csound.com/docs/manual/modmatrix.html modmatrix :: Tab -> Tab -> Tab -> D -> D -> D -> Sig -> SE () -- | returns the length of a Farey Sequence. -- -- This opcode can be used in conjunction with GENfarey. It calculates -- the length of Farey Sequence Fn. Its length is given by: |Fn| = 1 + -- SUM over n phi(m) where phi(m) is Euler's totient function, which -- gives the number of integers ⤠m that are coprime to m. -- --
-- ifl fareyleni ifn ---- -- csound doc: http://csound.com/docs/manual/fareyleni.html fareyleni :: Tab -> D -- | returns the length of a Farey Sequence. -- -- This opcode can be used in conjunction with GENfarey. It calculates -- the length of Farey Sequence Fn. Its length is given by: |Fn| = 1 + -- SUM over n phi(m) where phi(m) is Euler's totient function, which -- gives the number of integers ⤠m that are coprime to m. -- --
-- kfl fareylen kfn ---- -- csound doc: http://csound.com/docs/manual/fareylen.html fareylen :: Tab -> Sig -- | Reads a directory and outputs to a string array a list of file names. -- -- Reads a directory for files and passes them to a string array. Users -- can set the file type by passing a file extension as a string. -- --
-- SFiles[] directory SDirectory[, SExtention] ---- -- csound doc: http://csound.com/docs/manual/directory.html directory :: Str -> Str -- | Returns an arctangent. -- -- Returns the arctangent of iyix, kykx, or ay/ax. -- --
-- ares taninv2 ay, ax -- ires taninv2 iy, ix -- kres taninv2 ky, kx -- ... taninv2 (ky, kx)... (no rate restriction) ---- -- csound doc: http://csound.com/docs/manual/taninv2.html taninv2 :: SigOrD a => a -> a -> a -- | Sums any number of a-rate signals, or array elements. -- --
-- ares sum asig1 [, asig2] [, asig3] [...] -- kres sum karr -- ires sum iarr ---- -- csound doc: http://csound.com/docs/manual/sum.html sum' :: [Sig] -> Sig -- | Multiplies any number of a-rate signals. -- --
-- ares product asig1, asig2 [, asig3] [...] ---- -- csound doc: http://csound.com/docs/manual/product.html product' :: [Sig] -> Sig -- | Computes one argument to the power of another argument. -- -- Computes xarg to the power of kpow (or ipow) and scales the result by -- inorm. -- --
-- ares pow aarg, kpow [, inorm] -- ires pow iarg, ipow [, inorm] -- kres pow karg, kpow [, -- inorm] -- ires[] pow iarg[], ipow[] -- kres[] pow karg[], kpow[] -- ires[] pow iarg[], ipow -- kres[] pow karg[], kpow ---- -- csound doc: http://csound.com/docs/manual/pow.html pow :: Sig -> Sig -> Sig -- | Efficiently evaluates a polynomial of arbitrary order. -- -- The polynomial opcode calculates a polynomial with a single a-rate -- input variable. The polynomial is a sum of any number of terms in the -- form kn*x^n where kn is the nth coefficient of the expression. These -- coefficients are k-rate values. -- --
-- aout polynomial ain, k0 [, k1 [, k2 [...]]] ---- -- csound doc: http://csound.com/docs/manual/polynomial.html polynomial :: Sig -> [Sig] -> Sig -- | Multiply and accumulate a-rate signals only. -- --
-- ares maca asig1 , asig2 [, asig3] [, asig4] [, asig5] [...] ---- -- csound doc: http://csound.com/docs/manual/maca.html maca :: [Sig] -> Sig -- | Multiplies and accumulates a- and k-rate signals. -- --
-- ares mac ksig1, asig1 [, ksig2] [, asig2] [, ksig3] [, asig3] [...] ---- -- csound doc: http://csound.com/docs/manual/mac.html mac :: [Sig] -> Sig -- | Safely divides two numbers. -- --
-- ares divz xa, xb, ksubst -- ires divz ia, ib, isubst -- kres divz ka, kb, ksubst -- ... divz (ka, kb, ksubst)... (no rate restriction) ---- -- csound doc: http://csound.com/docs/manual/divz.html divz :: SigOrD a => a -> a -> a -- | Returns a random number in a unipolar range at the rate given by the -- input argument. -- --
-- rnd (x) (init- or control-rate only) ---- -- csound doc: http://csound.com/docs/manual/rnd.html rnd :: SigOrD a => a -> SE a -- | Returns a random number in a bi-polar range. -- --
-- birnd (x) (init- or control-rate only) ---- -- csound doc: http://csound.com/docs/manual/birnd.html birnd :: SigOrD a => a -> SE a -- | Returns the decibel equivalent of the raw amplitude x, relative to -- full scale amplitude. -- -- Returns the decibel equivalent of the raw amplitude x, relative to -- full scale amplitude. Full scale is assumed to be 16 bit. New is -- Csound version 4.10. -- --
-- dbfsamp (x) (init-rate or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/dbfsamp.html dbfsamp :: SigOrD a => a -> a -- | Returns the decibel equivalent of the raw amplitude x. -- --
-- dbamp (x) (init-rate or control-rate args only) ---- -- csound doc: http://csound.com/docs/manual/dbamp.html dbamp :: SigOrD a => a -> a -- | Returns the amplitude equivalent (in 16-bit signed integer scale) of -- the full scale decibel (dB FS) value x. -- -- Returns the amplitude equivalent of the full scale decibel (dB FS) -- value x. The logarithmic full scale decibel values will be converted -- to linear 16-bit signed integer values from â32,768 to +32,767. -- --
-- ampdbfs (x) (no rate restriction) ---- -- csound doc: http://csound.com/docs/manual/ampdbfs.html ampdbfs :: SigOrD a => a -> a -- | Returns the amplitude equivalent of the decibel value x. -- -- Returns the amplitude equivalent of the decibel value x. Thus: -- --
-- ampdb (x) (no rate restriction) ---- -- csound doc: http://csound.com/docs/manual/ampdb.html ampdb :: SigOrD a => a -> a -- | Accumulates audio signals. -- -- vincr increments one audio variable with another signal, i.e. it -- accumulates output. -- --
-- vincr accum, aincr ---- -- csound doc: http://csound.com/docs/manual/vincr.html vincr :: Sig -> Sig -> SE () -- | Zeroes a list of audio signals. -- -- clear zeroes a list of audio signals. -- --
-- clear avar1 [, avar2] [, avar3] [...] ---- -- csound doc: http://csound.com/docs/manual/clear.html clear :: [Sig] -> SE () -- | Control the Jack transport. -- -- Starts, stops, or repositions the Jack transport. This is useful, -- e.g., for starting an external sequencer playing to send MIDI messages -- to Csound. -- --
-- JackoTransport kcommand, [kposition] ---- -- csound doc: http://csound.com/docs/manual/JackoTransport.html jackoTransport :: Sig -> SE () -- | Enables or disables all Jack ports. -- -- In the orchestra header, after all Jack connections have been created, -- enables or disables all Jack input and output opcodes inside this -- instance of Csound to read or write data. -- --
-- JackoOn [iactive] ---- -- csound doc: http://csound.com/docs/manual/JackoOn.html jackoOn :: SE () -- | Sends a MIDI channel message to a Jack port. -- -- Sends a MIDI channel message to a Jack MIDI output port inside this -- instance of Csound, and in turn to its connected external Jack MIDI -- input port. -- --
-- JackoNoteOut ScsoundPortName, kstatus, kchannel, kdata1[, kdata2] ---- -- csound doc: http://csound.com/docs/manual/JackoNoteOut.html jackoNoteOut :: Str -> Sig -> Sig -> Sig -> SE () -- | Creates a MIDI connection from Csound to a Jack port. -- -- In the orchestra header, creates a connection from a Jack MIDI output -- port inside this instance of Csound to an external Jack MIDI input -- port. -- --
-- JackoMidiOutConnect ScsoundPortName, SexternalPortName ---- -- csound doc: -- http://csound.com/docs/manual/JackoMidiOutConnect.html jackoMidiOutConnect :: Str -> Str -> SE () -- | Sends a MIDI channel message to a Jack port. -- -- Sends a MIDI channel message to a Jack MIDI output port inside this -- instance of Csound, and in turn to its connected external Jack MIDI -- input port. -- --
-- JackoMidiOut ScsoundPortName, kstatus, kchannel, kdata1[, kdata2] ---- -- csound doc: http://csound.com/docs/manual/JackoMidiOut.html jackoMidiOut :: Str -> Sig -> Sig -> Sig -> SE () -- | Creates a MIDI connection from a Jack port to Csound. -- -- In the orchestra header, creates a MIDI connection from an external -- Jack MIDI output port to this instance of Csound. -- --
-- JackoMidiInConnect SexternalPortName, ScsoundPortName ---- -- csound doc: -- http://csound.com/docs/manual/JackoMidiInConnect.html jackoMidiInConnect :: Str -> Str -> SE () -- | Initializes Csound as a Jack client. -- -- Initializes this instance of Csound as a Jack client. -- --
-- JackoInit ServerName, SclientName ---- -- csound doc: http://csound.com/docs/manual/JackoInit.html jackoInit :: Str -> Str -> SE () -- | Creates an audio connection from Csound to a Jack port. -- -- In the orchestra header, creates an audio connection from a Jack audio -- output port inside this instance of Csound to an external Jack audio -- input port. -- --
-- JackoAudioOutConnect ScsoundPortName, SexternalPortName ---- -- csound doc: -- http://csound.com/docs/manual/JackoAudioOutConnect.html jackoAudioOutConnect :: Str -> Str -> SE () -- | Sends an audio signal to a Jack port. -- -- Sends an audio signal to an internal Jack audio output port, and in -- turn to its connected external Jack audio input port. -- --
-- JackoAudioOut ScsoundPortName, asignal ---- -- csound doc: http://csound.com/docs/manual/JackoAudioOut.html jackoAudioOut :: Str -> Sig -> SE () -- | Creates an audio connection from a Jack port to Csound. -- -- In the orchestra header, creates an audio connection from an external -- Jack audio output port to a Jack audio input port inside this instance -- of Csound. -- --
-- JackoAudioInConnect SexternalPortName, ScsoundPortName ---- -- csound doc: -- http://csound.com/docs/manual/JackoAudioInConnect.html jackoAudioInConnect :: Str -> Str -> SE () -- | Receives an audio signal from a Jack port. -- -- Receives an audio signal from a Jack audio input port inside this -- instance of Csound, which in turn has received the signal from its -- connected external Jack audio output port. -- --
-- asignal JackoAudioIn ScsoundPortName ---- -- csound doc: http://csound.com/docs/manual/JackoAudioIn.html jackoAudioIn :: Str -> SE Sig -- | Read absolute time in seconds. -- -- Read absolute time, in seconds, since the start of the performance. -- --
-- ires times -- kres times ---- -- csound doc: http://csound.com/docs/manual/times.html times :: SE Sig -- | Read absolute time in k-rate cycles. -- -- Read absolute time, in k-rate cycles, since the start of the -- performance. -- --
-- ires timek -- kres timek ---- -- csound doc: http://csound.com/docs/manual/timek.html timek :: SE Sig -- | Read absolute time in seconds. -- -- Read absolute time, in seconds, since the start of an instance of an -- instrument. -- --
-- kres timeinsts ---- -- csound doc: http://csound.com/docs/manual/timeinsts.html timeinsts :: Sig -- | Read absolute time in k-rate cycles. -- -- Read absolute time, in k-rate cycles, since the start of an instance -- of an instrument. Called at both i-time as well as k-time. -- --
-- kres timeinstk ---- -- csound doc: http://csound.com/docs/manual/timeinstk.html timeinstk :: Sig -- | Read the real time clock from the operating system. -- -- Read the real-time clock from the operating system. -- --
-- ires rtclock -- kres rtclock ---- -- csound doc: http://csound.com/docs/manual/rtclock.html rtclock :: Sig -- | Reads the value of an internal clock. -- --
-- ir readclock inum ---- -- csound doc: http://csound.com/docs/manual/readclock.html readclock :: D -> D -- | Returns as a string the date and time specified. -- --
-- Sir dates [ itime] ---- -- csound doc: http://csound.com/docs/manual/dates.html dates :: Str -- | Returns the number seconds since a base date. -- -- Returns the number seconds since a base date, using the operating -- system's clock. The base is 1 January 1970 for Csound using doubles, -- and 1 January 2010 for versions using floats. On operating systemms -- with sufficient resolution the date includes fractional seconds. -- --
-- ir[, inano] date -- kr[, knano] date ---- -- csound doc: http://csound.com/docs/manual/date.html date :: Tuple a => a -- | Creates and runs a numbered instrument instance at init-time. -- -- Same as subinstr, but init-time only and has no output arguments. -- --
-- subinstrinit instrnum [, p4] [, p5] [...] -- subinstrinit "insname" [, p4] [, p5] [...] ---- -- csound doc: http://csound.com/docs/manual/subinstrinit.html subinstrinit :: D -> [D] -> SE () -- | Creates and runs a numbered instrument instance. -- -- Creates an instance of another instrument and is used as if it were an -- opcode. -- --
-- a1, [...] [, a8] subinstr instrnum [, p4] [, p5] [...] -- a1, [...] [, a8] subinstr "insname" [, p4] [, p5] [...] ---- -- csound doc: http://csound.com/docs/manual/subinstr.html subinstr :: Tuple a => D -> [D] -> a -- | Initializes the stack. Deprecated. -- -- Initializes and sets the size of the global stack. -- --
-- stack iStackSize ---- -- csound doc: http://csound.com/docs/manual/stack.html stack :: D -> SE () -- | Pushes an f-sig frame into the global stack. Deprecated. -- -- Pushes an f-sig frame into the global stack. -- --
-- push_f fsig ---- -- csound doc: http://csound.com/docs/manual/push_f.html push_f :: Spec -> SE () -- | Pushes a value into the global stack. Deprecated. -- -- Pushes a value into the global stack. -- --
-- push xval1, [xval2, ... , xval31] -- push ival1, [ival2, ... , ival31] ---- -- csound doc: http://csound.com/docs/manual/push.html push :: [Sig] -> SE () -- | Pops an f-sig frame from the global stack. Deprecated. -- -- Pops an f-sig frame from the global stack. -- --
-- fsig pop_f ---- -- csound doc: http://csound.com/docs/manual/pop_f.html pop_f :: Spec -- | Pops values from the global stack. Deprecated. -- -- Pops values from the global stack. -- --
-- xval1, [xval2, ... , xval31] pop -- ival1, [ival2, ... , ival31] pop ---- -- csound doc: http://csound.com/docs/manual/pop.html pop :: Tuple a => a -- | Sense the cursor position in an output window -- -- Sense the cursor position in an output window. When xyin is called the -- position of the mouse within the output window is used to reply to the -- request. This simple mechanism does mean that only one xyin can be -- used accurately at once. The position of the mouse is reported in the -- output window. -- --
-- kx, ky xyin iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit] ---- -- csound doc: http://csound.com/docs/manual/xyin.html xyin :: D -> D -> D -> D -> D -> (Sig, Sig) -- | writes a value into the scratchpad of the instance of an instrument. -- -- The writescratch opcode writes one of four scalar values to be stored -- in the instance of an instrument. -- --
-- writescratch ival[, index] ---- -- csound doc: http://csound.com/docs/manual/writescratch.html writescratch :: D -> SE () -- | Sends data to one of a number of external Nintendo Wiimote -- controllers. -- --
-- kres wiisend kcontrol, kvalue[, knum] ---- -- csound doc: http://csound.com/docs/manual/wiisend.html wiisend :: Sig -> Sig -> Sig -- | Sets scaling and range limits for certain Wiimote fields. -- --
-- wiirange icontrol, iminimum, imaximum[, inum] ---- -- csound doc: http://csound.com/docs/manual/wiirange.html wiirange :: D -> D -> D -> SE () -- | Reads data fields from a number of external Nintendo Wiimote -- controllers. -- -- Reads data fields from upto four external Nintendo Wiimote -- controllers. -- --
-- kres wiidata kcontrol[, knum] ---- -- csound doc: http://csound.com/docs/manual/wiidata.html wiidata :: Sig -> Sig -- | Reads data from a number of external Nintendo Wiimote controllers. -- -- Opens and at control-rate polls up to four external Nintendo Wiimote -- controllers. -- --
-- ires wiiconnect [itimeout, imaxnum] ---- -- csound doc: http://csound.com/docs/manual/wiiconnect.html wiiconnect :: D -- | Envelope follower unit generator. -- -- Envelope follower unit generator emmulating a Perkin Elmer Vactrole -- VTL5C3/2. -- --
-- ares vactrol asig [iup, idown] ---- -- csound doc: http://csound.com/docs/manual/vactrol.html vactrol :: Sig -> Sig -- | Accepts a trigger signal as input and outputs a group of values. -- --
-- trigseq ktrig_in, kstart, kloop, kinitndx, kfn_values, kout1 [, kout2] [...] ---- -- csound doc: http://csound.com/docs/manual/trigseq.html trigseq :: Sig -> Sig -> Sig -> Sig -> Tab -> [Sig] -> SE () -- | Informs when a krate signal crosses a threshold. -- --
-- kout trigger ksig, kthreshold, kmode ---- -- csound doc: http://csound.com/docs/manual/trigger.html trigger :: Sig -> Sig -> Sig -> Sig -- | Time Variant Sequencer -- -- An event-sequencer in which time can be controlled by a time-pointer. -- Sequence data are stored into a table. -- --
-- ktrig timedseq ktimpnt, ifn, kp1 [,kp2, kp3, ...,kpN] ---- -- csound doc: http://csound.com/docs/manual/timedseq.html timedseq :: Sig -> Tab -> [Sig] -> Sig -- | Reads the current value of the tempo. -- --
-- kres tempoval ---- -- csound doc: http://csound.com/docs/manual/tempoval.html tempoval :: Sig -- | Apply tempo control to an uninterpreted score. -- --
-- tempo ktempo, istartempo ---- -- csound doc: http://csound.com/docs/manual/tempo.html tempo :: Sig -> D -> SE () -- | Estimate the tempo of beat patterns in a control signal. -- --
-- ktemp tempest kin, iprd, imindur, imemdur, ihp, ithresh, ihtim, ixfdbak, \ -- istartempo, ifn [, idisprd] [, itweek] ---- -- csound doc: http://csound.com/docs/manual/tempest.html tempest :: Sig -> D -> D -> D -> D -> D -> D -> D -> D -> Tab -> Sig -- | Split a trigger signal -- -- splitrig splits a trigger signal (i.e. a timed sequence of -- control-rate impulses) into several channels following a structure -- designed by the user. -- --
-- splitrig ktrig, kndx, imaxtics, ifn, kout1 [,kout2,...,koutN] ---- -- csound doc: http://csound.com/docs/manual/splitrig.html splitrig :: Sig -> Sig -> D -> Tab -> [Sig] -> SE () -- | Sets the playback position of the current score performance to a given -- position. -- --
-- setscorepos ipos ---- -- csound doc: http://csound.com/docs/manual/setscorepos.html setscorepos :: D -> SE () -- | Configurable slider controls for realtime user input. -- -- Configurable slider controls for realtime user input. Requires -- Winsound or TCL/TK. setctrl sets a slider to a specific value, or sets -- a minimum or maximum range. -- --
-- setctrl inum, ival, itype ---- -- csound doc: http://csound.com/docs/manual/setctrl.html setctrl :: D -> D -> D -> SE () -- | Generates a trigger signal according to the values stored in a table. -- --
-- ktrig_out seqtime2 ktrig_in, ktime_unit, kstart, kloop, kinitndx, kfn_times ---- -- csound doc: http://csound.com/docs/manual/seqtime2.html seqtime2 :: Sig -> Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Generates a trigger signal according to the values stored in a table. -- --
-- ktrig_out seqtime ktime_unit, kstart, kloop, kinitndx, kfn_times ---- -- csound doc: http://csound.com/docs/manual/seqtime.html seqtime :: Sig -> Sig -> Sig -> Sig -> Tab -> Sig -- | Returns the ASCII code of a key that has been pressed. -- -- Returns the ASCII code of a key that has been pressed, or -1 if no key -- has been pressed. -- --
-- kres[, kkeydown] sensekey ---- -- csound doc: http://csound.com/docs/manual/sensekey.html sensekey :: Tuple a => a -- | Determines the root-mean-square amplitude of an audio signal. -- -- Determines the root-mean-square amplitude of an audio signal. It -- low-pass filters the actual value, to average in the manner of a VU -- meter. -- --
-- kres rms asig [, ihp] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/rms.html rms :: Sig -> Sig -- | Rewinds the playback position of the current score performance. -- -- Rewinds the playback position of the current score performance.. -- --
-- rewindscore ---- -- csound doc: http://csound.com/docs/manual/rewindscore.html rewindscore :: SE () -- | returns a value stored in the instance of an instrument. -- -- The readscratch opcode returns one of four scalar values stored in the -- instance of an instrument. -- --
-- ival readscratch [index] ---- -- csound doc: http://csound.com/docs/manual/readscratch.html readscratch :: D -- | Tracks the pitch of a signal. -- -- ptrack takes an input signal, splits it into ihopsize blocks and using -- a STFT method, extracts an estimated pitch for its fundamental -- frequency as well as estimating the total amplitude of the signal in -- dB, relative to full-scale (0dB). The method implies an analysis -- window size of 2*ihopsize samples (overlaping by 1/2 window), which -- has to be a power-of-two, between 128 and 8192 (hopsizes between 64 -- and 4096). Smaller windows will give better time precision, but worse -- frequency accuracy (esp. in low fundamentals).This opcode is based on -- an original algorithm by M. Puckette. -- --
-- kcps, kamp ptrack asig, ihopsize[,ipeaks] ---- -- csound doc: http://csound.com/docs/manual/ptrack.html ptrack :: Sig -> D -> (Sig, Sig) -- | Tracks the pitch of a signal. -- -- plltrack, a pitch tracker based on a phase-locked loop algorithm, -- described in Zolzer, U, Sankarababu, S.V. and Moller, S, "PLL-based -- Pitch Detection and Tracking for Audio Signals. Proc. of IIH-MSP -- 2012". -- --
-- acps, alock plltrack asig, kd [, kloopf, kloopq, klf, khf, kthresh] ---- -- csound doc: http://csound.com/docs/manual/plltrack.html plltrack :: Sig -> Sig -> (Sig, Sig) -- | Follows the pitch of a signal based on the AMDF method. -- -- Follows the pitch of a signal based on the AMDF method (Average -- Magnitude Difference Function). Outputs pitch and amplitude tracking -- signals. The method is quite fast and should run in realtime. This -- technique usually works best for monophonic signals. -- --
-- kcps, krms pitchamdf asig, imincps, imaxcps [, icps] [, imedi] \ -- [, idowns] [, iexcps] [, irmsmedi] ---- -- csound doc: http://csound.com/docs/manual/pitchamdf.html pitchamdf :: Sig -> D -> D -> (Sig, Sig) -- | Tracks the pitch of a signal. -- -- Using the same techniques as spectrum and specptrk, pitch tracks the -- pitch of the signal in octave point decimal form, and amplitude in dB. -- --
-- koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh [, ifrqs] [, iconf] \ -- [, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip] ---- -- csound doc: http://csound.com/docs/manual/pitch.html pitch :: Sig -> D -> D -> D -> D -> (Sig, Sig) -- | Returns the value of a specified pfield. -- -- pindex returns the value of a specified pfield. -- --
-- ivalue pindex ipfieldIndex ---- -- csound doc: http://csound.com/docs/manual/pindex.html pindex :: D -> D -- | Maintains the output equal to the highest absolute value received. -- -- These opcodes maintain the output k-rate variable as the peak absolute -- level so far received. -- --
-- kres peak asig -- kres peak ksig ---- -- csound doc: http://csound.com/docs/manual/peak.html peak :: Sig -> Sig -- | Returns the number of pfields belonging to a note event. -- -- pcount returns the number of pfields belonging to a note event. -- --
-- icount pcount ---- -- csound doc: http://csound.com/docs/manual/pcount.html pcount :: D -- | Reads data fields from an external P5 Glove. -- -- Reads data fields from a P5 Glove controller. -- --
-- kres p5gdata kcontrol ---- -- csound doc: http://csound.com/docs/manual/p5gdata.html p5gdata :: Sig -> Sig -- | Reads data from a P5 Glove controller. -- -- Opens and at control-rate polls a P5 Glove controller. -- --
-- p5gconnect ---- -- csound doc: http://csound.com/docs/manual/p5gconnect.html p5gconnect :: SE () -- | Returns the current tempo at k-rate, of either the MIDI file (if -- available) or the score -- --
-- ksig miditempo ---- -- csound doc: http://csound.com/docs/manual/miditempo.html miditempo :: Sig -- | Returns the playback status of MIDI file input. -- -- Returns the current playback status at k-rate, of the input MIDI file, -- 1 if file is playing, 0 if the end-of-the file has been reached. -- --
-- ksig midifilestatus ---- -- csound doc: http://csound.com/docs/manual/midifilestatus.html midifilestatus :: Sig -- | Reads data from a joystick controller. -- -- Reads data from a Linux joystick controller -- --
-- kres joystick kdevice ktab ---- -- csound doc: http://csound.com/docs/manual/joystick.html joystick :: Sig -> Tab -> Sig -- | Return Csound settings. -- -- Return various configuration settings in Svalue as a string at init -- time. -- --
-- Svalue getcfg iopt ---- -- csound doc: http://csound.com/docs/manual/getcfg.html getcfg :: D -> Str -- | Another controllable envelope extractor. -- -- A controllable envelope extractor using the algorithm attributed to -- Jean-Marc Jot. -- --
-- ares follow2 asig, katt, krel ---- -- csound doc: http://csound.com/docs/manual/follow2.html follow2 :: Sig -> Sig -> Sig -> Sig -- | Envelope follower unit generator. -- --
-- ares follow asig, idt ---- -- csound doc: http://csound.com/docs/manual/follow.html follow :: Sig -> D -> Sig -- | Configurable slider controls for realtime user input. -- -- Configurable slider controls for realtime user input. Requires -- Winsound or TCL/TK. control reads a slider's value. -- --
-- kres control knum ---- -- csound doc: http://csound.com/docs/manual/control.html control :: Sig -> Sig -- | Sense on-screen controls. -- -- Sense on-screen controls. Requires Winsound or TCL/TK. -- --
-- kres checkbox knum ---- -- csound doc: http://csound.com/docs/manual/checkbox.html checkbox :: Sig -> Sig -- | k-rate signal change detector. -- -- This opcode outputs a trigger signal that informs when any one of its -- k-rate arguments has changed, or a value in an array. Useful with -- valuator widgets or MIDI controllers. -- --
-- ktrig changed2 kvar1 [, kvar2,..., kvarN] -- ktrig changed2 karr[] -- ktrig changed2 aarr[] ---- -- csound doc: http://csound.com/docs/manual/changed2.html changed2 :: Sig -> Sig -- | k-rate signal change detector. -- -- This opcode outputs a trigger signal that informs when any one of its -- k-rate arguments has changed. Useful with valuator widgets or MIDI -- controllers. -- --
-- ktrig changed kvar1 [, kvar2,..., kvarN] ---- -- csound doc: http://csound.com/docs/manual/changed.html changed :: [Sig] -> Sig -- | Creates space for instruments but does not run them. -- --
-- prealloc insnum, icount -- prealloc "insname", icount ---- -- csound doc: http://csound.com/docs/manual/prealloc.html prealloc :: D -> D -> SE () -- | Limits the number of allocations of an instrument. -- --
-- maxalloc insnum, icount -- maxalloc Sinsname, icount ---- -- csound doc: http://csound.com/docs/manual/maxalloc.html maxalloc :: D -> D -> SE () -- | Start/stop jack_transport and can optionally relocate the playback -- head. -- --
-- jacktransport icommand [, ilocation] ---- -- csound doc: http://csound.com/docs/manual/jacktransport.html jacktransport :: D -> SE () -- | Exit Csound as fast as possible, with no cleaning up. -- -- In Csound4 calls an exit function to leave Csound as fast as possible. -- On Csound5 exits back to the driving code. -- --
-- exitnow [ivalue] ---- -- csound doc: http://csound.com/docs/manual/exitnow.html exitnow :: SE () -- | Control allocation of cpu resources on a per-instrument basis, to -- optimize realtime output. -- --
-- cpuprc insnum, ipercent -- cpuprc Sinsname, ipercent ---- -- csound doc: http://csound.com/docs/manual/cpuprc.html cpuprc :: D -> D -> SE () -- | Reports the usage of cpu either total or per core. -- -- Reports the usage of cpu either total or per core to monitor how close -- to max-out the processing is. -- --
-- ktot[,kcpu1, kcpu2,...] cpumeter ifreq ---- -- csound doc: http://csound.com/docs/manual/cpumeter.html cpumeter :: Tuple a => D -> a -- | Returns the number of active instances of an instrument. -- -- Returns the number of active instances of an instrument with options -- to ignore releasing instances. -- --
-- ir active insnum [,iopt [,inorel]] -- ir active Sinsname [,iopt [,inorel]] -- kres active kinsnum [,iopt [,inorel]] ---- -- csound doc: http://csound.com/docs/manual/active.html active :: D -> Sig -- | Issues one or more score line events from an instrument at i-time. -- -- scoreline_i will issue score events at i-time. It can handle strings -- in the same conditions as the standard score. Multi-line strings are -- accepted, using {{ }} to enclose the string. -- --
-- scoreline_i Sin ---- -- csound doc: http://csound.com/docs/manual/scoreline_i.html scoreline_i :: Str -> SE () -- | Issues one or more score line events from an instrument. -- -- Scoreline will issue one or more score events, if ktrig is 1 every -- k-period. It can handle strings in the same conditions as the standard -- score. Multi-line strings are accepted, using {{ }} to enclose the -- string. -- --
-- scoreline Sin, ktrig ---- -- csound doc: http://csound.com/docs/manual/scoreline.html scoreline :: Str -> Sig -> SE () -- | Adds a new score event. -- --
-- schedwhen ktrigger, kinsnum, kwhen, kdur [, ip4] [, ip5] [...] -- schedwhen ktrigger, "insname", kwhen, kdur [, ip4] [, ip5] [...] ---- -- csound doc: http://csound.com/docs/manual/schedwhen.html schedwhen :: Sig -> Sig -> Sig -> Sig -> SE () -- | Adds a new score event. -- --
-- schedule insnum, iwhen, idur [, ip4] [, ip5] [...] -- schedule "insname", iwhen, idur [, ip4] [, ip5] [...] ---- -- csound doc: http://csound.com/docs/manual/schedule.html schedule :: D -> D -> D -> SE () -- | Similar to schedkwhen but uses a named instrument at init-time. -- --
-- schedkwhennamed ktrigger, kmintim, kmaxnum, "name", kwhen, kdur \ -- [, ip4] [, ip5] [...] ---- -- csound doc: http://csound.com/docs/manual/schedkwhennamed.html schedkwhennamed :: Sig -> Sig -> Sig -> Str -> Sig -> Sig -> SE () -- | Adds a new score event generated by a k-rate trigger. -- --
-- schedkwhen ktrigger, kmintim, kmaxnum, kinsnum, kwhen, kdur \ -- [, ip4] [, ip5] [...] -- schedkwhen ktrigger, kmintim, kmaxnum, "insname", kwhen, kdur \ -- [, ip4] [, ip5] [...] ---- -- csound doc: http://csound.com/docs/manual/schedkwhen.html schedkwhen :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Removes the definition of an instrument. -- -- Removes the definition of an instrument as long as it is not in use. -- --
-- remove insnum ---- -- csound doc: http://csound.com/docs/manual/remove.html remove :: D -> SE () -- | Read, preprocess and schedule a score from an input string. -- -- Readscore will issue one or more score events. It can handle strings -- in the same conditions as the standard score, including preprocessing -- (carry, sort, ramp, etc). Multi-line strings are accepted, using {{ }} -- to enclose the string. -- --
-- readscore Sin ---- -- csound doc: http://csound.com/docs/manual/readscore.html readscore :: Str -> SE () -- | Schedules a new instrument instance, storing the instance handle in a -- variable. -- -- Schedules a new instrument nstance, returning a handle that can be -- used later to refer directly to the running nstance. This opcode is -- similar to schedule, but has the added facility of retrieving the -- nstance handle. -- --
-- iHandle nstance insnum, iwhen, idur [, ip4] [, ip5] [...] -- iHandle nstance "insname", iwhen, idur [, ip4] [, ip5] [...] ---- -- csound doc: http://csound.com/docs/manual/nstance.html nstance :: D -> D -> D -> D -- | Mutes/unmutes new instances of a given instrument. -- --
-- mute insnum [, iswitch] -- mute "insname" [, iswitch] ---- -- csound doc: http://csound.com/docs/manual/mute.html mute :: D -> SE () -- | Generates a score event from an instrument. -- --
-- event_i "scorechar", iinsnum, idelay, idur, [, ip4] [, ip5] [, ...] -- event_i "scorechar", "insname", idelay, idur, [, ip4] [, ip5] [, ...] ---- -- csound doc: http://csound.com/docs/manual/event_i.html event_i :: Str -> D -> D -> D -> [D] -> SE () -- | Generates a score event from an instrument. -- --
-- event "scorechar", kinsnum, kdelay, kdur, [, kp4] [, kp5] [, ...] -- event "scorechar", "insname", kdelay, kdur, [, kp4] [, kp5] [, ...] ---- -- csound doc: http://csound.com/docs/manual/event.html event :: Str -> Sig -> Sig -> Sig -> [Sig] -> SE () -- | Activate an instrument for an indefinite time. -- --
-- turnon insnum [, itime] ---- -- csound doc: http://csound.com/docs/manual/turnon.html turnon :: D -> SE () -- | Enables an instrument to turn itself off or to turn an instance of -- another instrument off. -- --
-- turnoff -- turnoff inst -- turnoff knst ---- -- csound doc: http://csound.com/docs/manual/turnoff.html turnoff :: SE () -- | Creates a held note. -- -- Causes a finite-duration note to become a âheldâ note -- --
-- ihold ---- -- csound doc: http://csound.com/docs/manual/ihold.html ihold :: SE () -- | Evalstrs evaluates a string containing Csound code, returning a value. -- -- Evalstr compiles and runs Csound code and returns a value from the -- global space (instr 0). This opcode can be also used to compile new -- instruments (as compilestr). -- --
-- ires evalstr Scode -- kres evalstr Scode, ktrig ---- -- csound doc: http://csound.com/docs/manual/evalstr.html evalstr :: Str -> Sig -- | compiles a new orchestra passed in as an ASCII string -- -- Compilestr will compile one or more instruments at init time, which -- will be added to the running engine. In case of existing instrument -- numbers or names, these will be replaced, but any instance still -- running of the old instrument definition will still perform until it -- terminates. Only new instances will use the new definition. Multi-line -- strings are accepted, using {{ }} to enclose the string. -- --
-- ires compilestr Sorch ---- -- csound doc: http://csound.com/docs/manual/compilestr.html compilestr :: Str -> D -- | compiles a new orchestra from an ASCII file -- -- Compileorc will compile one or more instruments at init time, which -- will be added to the running engine. In case of existing instrument -- numbers or names, these will be replaced, but any instance still -- running of the old instrument definition will still perform until it -- terminates. -- --
-- ires compileorc Sfilename ---- -- csound doc: http://csound.com/docs/manual/compileorc.html compileorc :: Str -> D -- | compiles a new orchestra from an ASCII file -- -- Compilecsd will read a CSD file and compile one or more instruments at -- init time, which will be added to the running engine. In case of -- existing instrument numbers or names, these will be replaced, but any -- instance still running of the old instrument definition will still -- perform until it terminates. In addition, it will read the score (if -- it exists) contained in the CSD file and add it to the list of events -- to be performed by Csound. The opcode ignores any section in the CSD -- file that is not the orchestra or the score. -- --
-- ires compilecsd Sfilename ---- -- csound doc: http://csound.com/docs/manual/compilecsd.html compilecsd :: Str -> D -- | Starts one of a number of internal clocks. -- --
-- clockon inum ---- -- csound doc: http://csound.com/docs/manual/clockon.html clockon :: D -> SE () -- | Stops one of a number of internal clocks. -- --
-- clockoff inum ---- -- csound doc: http://csound.com/docs/manual/clockoff.html clockoff :: D -> SE () -- | Return the width and height of a previously opened or created image. -- -- Return the width and height of a previously opened or created image. -- An image can be loaded with imageload. An empty image can be created -- with imagecreate. -- --
-- iwidth, iheight imagesize iimagenum ---- -- csound doc: http://csound.com/docs/manual/imagesize.html imagesize :: D -> (D, D) -- | Set the RGB value of a pixel inside a previously opened or created -- image. -- -- Set the RGB value of a pixel inside a previously opened or created -- image. An image can be loaded with imageload. An empty image can be -- created with imagecreate and saved with imagesave. -- --
-- imagesetpixel iimagenum, ax, ay, ared, agreen, ablue -- imagesetpixel iimagenum, kx, ky, kred, kgreen, kblue ---- -- csound doc: http://csound.com/docs/manual/imagesetpixel.html imagesetpixel :: D -> Sig -> Sig -> Sig -> Sig -> Sig -> SE () -- | Save a previously created image. -- -- Save a previously created image. An empty image can be created with -- imagecreate and its pixel RGB values can be set with imagesetpixel. -- The image will be saved in PNG format. -- --
-- imagesave iimagenum, filename ---- -- csound doc: http://csound.com/docs/manual/imagesave.html imagesave :: D -> Spec -> SE () -- | Load an image. -- -- Load an image and return a reference to it. Individual pixel values -- can then be accessed with imagegetpixel. -- --
-- iimagenum imageload filename ---- -- csound doc: http://csound.com/docs/manual/imageload.html imageload :: Spec -> SE D -- | Return the RGB pixel values of a previously opened or created image. -- -- Return the RGB pixel values of a previously opened or created image. -- An image can be loaded with imageload. An empty image can be created -- with imagecreate. -- --
-- ared, agreen, ablue imagegetpixel iimagenum, ax, ay -- kred, kgreen, kblue imagegetpixel iimagenum, kx, ky ---- -- csound doc: http://csound.com/docs/manual/imagegetpixel.html imagegetpixel :: D -> Sig -> Sig -> (Sig, Sig, Sig) -- | Frees memory allocated for a previously loaded or created image. -- --
-- imagefree iimagenum ---- -- csound doc: http://csound.com/docs/manual/imagefree.html imagefree :: D -> SE () -- | Create an empty image of a given size. -- -- Create an empty image of a given size. Individual pixel values can -- then be set with. imagegetpixel. -- --
-- iimagenum imagecreate iwidth, iheight ---- -- csound doc: http://csound.com/docs/manual/imagecreate.html imagecreate :: D -> D -> SE D -- | Adjusts a given control in a Faust DSP instance. -- -- Faustctl will set a given control in a running faust program -- --
-- faustctl idsp,Scontrol,kval ---- -- csound doc: http://csound.com/docs/manual/faustctl.html faustctl :: D -> Str -> Sig -> SE () -- | Restores the visibility of a previously hidden FLTK widget. -- -- FLshow restores the visibility of a previously hidden widget. -- --
-- FLshow ihandle ---- -- csound doc: http://csound.com/docs/manual/FLshow.html flShow :: D -> SE () -- | Sets some font attributes of the text label of a FLTK widget. -- -- FLsetTextType sets some attributes related to the fonts of the text -- label of the target widget. -- --
-- FLsetTextType itype, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetTextType.html flSetTextType :: D -> D -> SE () -- | Sets the size of the text label of a FLTK widget. -- -- FLsetTextSize sets the size of the text label of the target widget. -- --
-- FLsetTextSize isize, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetTextSize.html flSetTextSize :: D -> D -> SE () -- | Sets the color of the text label of a FLTK widget. -- -- FLsetTextColor sets the color of the text label of the target widget. -- --
-- FLsetTextColor ired, iblue, igreen, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetTextColor.html flSetTextColor :: D -> D -> D -> D -> SE () -- | Sets the label of a FLTK widget. -- -- FLsetText sets the label of the target widget to the double-quoted -- text string provided with the itext argument. -- --
-- FLsetText "itext", ihandle -- FLsetText istr, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetText.html flSetText :: Str -> D -> SE () -- | Resizes a FLTK widget. -- -- FLsetSize resizes the target widget (not the size of its text) -- according to the iwidth and iheight arguments. -- --
-- FLsetSize iwidth, iheight, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetSize.html flSetSize :: D -> D -> D -> SE () -- | Sets the position of a FLTK widget. -- -- FLsetPosition sets the position of the target widget according to the -- ix and iy arguments. -- --
-- FLsetPosition ix, iy, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetPosition.html flSetPosition :: D -> D -> D -> SE () -- | Sets the font type of a FLTK widget. -- -- FLsetFont sets the font type of the target widget. -- --
-- FLsetFont ifont, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetFont.html flSetFont :: D -> D -> SE () -- | Sets the secondary (or selection) color of a FLTK widget. -- -- FLsetColor2 sets the secondary (or selection) color of the target -- widget. -- --
-- FLsetColor2 ired, igreen, iblue, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetColor2.html flSetColor2 :: D -> D -> D -> D -> SE () -- | Sets the primary color of a FLTK widget. -- -- FLsetColor sets the primary color of the target widget. -- --
-- FLsetColor ired, igreen, iblue, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetColor.html flSetColor :: D -> D -> D -> D -> SE () -- | Sets the appearance of a box surrounding a FLTK widget. -- -- FLsetBox sets the appearance of a box surrounding the target widget. -- --
-- FLsetBox itype, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetBox.html flSetBox :: D -> D -> SE () -- | Sets the text alignment of a label of a FLTK widget. -- -- FLsetAlign sets the text alignment of the label of the target widget. -- --
-- FLsetAlign ialign, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetAlign.html flSetAlign :: D -> D -> SE () -- | A FLTK opcode that modifies the appearance of a text label. -- -- Modifies a set of parameters related to the text label appearence of a -- widget (i.e. size, font, alignment and color of corresponding text). -- --
-- FLlabel isize, ifont, ialign, ired, igreen, iblue ---- -- csound doc: http://csound.com/docs/manual/FLlabel.html flLabel :: D -> D -> D -> D -> D -> D -> SE () -- | Hides the target FLTK widget. -- -- Hides the target FLTK widget, making it invisible. -- --
-- FLhide ihandle ---- -- csound doc: http://csound.com/docs/manual/FLhide.html flHide :: D -> SE () -- | A FLTK opcode that sets the secondary (selection) color. -- -- FLcolor2 is the same of FLcolor except it affects the secondary -- (selection) color. -- --
-- FLcolor2 ired, igreen, iblue ---- -- csound doc: http://csound.com/docs/manual/FLcolor2.html flColor2 :: D -> D -> D -> SE () -- | A FLTK opcode that sets the primary colors. -- -- Sets the primary colors to RGB values given by the user. -- --
-- FLcolor ired, igreen, iblue [, ired2, igreen2, iblue2] ---- -- csound doc: http://csound.com/docs/manual/FLcolor.html flColor :: D -> D -> D -> SE () -- | Allows one-dimensional HVS (Hyper-Vectorial Synthesis). -- -- vphaseseg allows one-dimensional HVS (Hyper-Vectorial Synthesis). -- --
-- vphaseseg kphase, ioutab, ielems, itab1,idist1,itab2 \ -- [,idist2,itab3, ... ,idistN-1,itabN] ---- -- csound doc: http://csound.com/docs/manual/vphaseseg.html vphaseseg :: Sig -> D -> D -> [D] -> SE () -- | Senses the mouse cursor position in a user-defined area inside an -- FLpanel. -- -- Similar to xyin, sense the mouse cursor position in a user-defined -- area inside an FLpanel. -- --
-- koutx, kouty, kinside FLxyin ioutx_min, ioutx_max, iouty_min, iouty_max, \ -- iwindx_min, iwindx_max, iwindy_min, iwindy_max [, iexpx, iexpy, ioutx, iouty] ---- -- csound doc: http://csound.com/docs/manual/FLxyin.html flXyin :: D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, Sig, Sig) -- | A FLTK widget containing a bank of vertical sliders. -- -- FLvslidBnk2 is a widget containing a bank of vertical sliders. -- --
-- FLvslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index] ---- -- csound doc: http://csound.com/docs/manual/FLvslidBnk2.html flVslidBnk2 :: Str -> D -> D -> D -> SE () -- | A FLTK widget containing a bank of vertical sliders. -- -- FLvslidBnk is a widget containing a bank of vertical sliders. -- --
-- FLvslidBnk "names", inumsliders [, ioutable] [, iwidth] [, iheight] [, ix] \ -- [, iy] [, itypetable] [, iexptable] [, istart_index] [, iminmaxtable] ---- -- csound doc: http://csound.com/docs/manual/FLvslidBnk.html flVslidBnk :: Str -> D -> SE () -- | An FLTK widget opcode that creates a virtual keyboard widget. -- -- An FLTK widget opcode that creates a virtual keyboard widget. This -- must be used in conjunction with the virtual midi keyboard driver for -- this to operate correctly. The purpose of this opcode is for making -- demo versions of MIDI orchestras with the virtual keyboard embedded -- within the main window. -- --
-- FLvkeybd "keyboard.map", iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLvkeybd.html flVkeybd :: Str -> D -> D -> D -> D -> SE () -- | Shows the current value of a FLTK valuator. -- -- FLvalue shows current the value of a valuator in a text field. -- --
-- ihandle FLvalue "label", iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLvalue.html flValue :: Str -> D -> D -> D -> D -> SE D -- | Same as the FLrun opcode. -- --
-- FLupdate ---- -- csound doc: http://csound.com/docs/manual/FLupdate.html flUpdate :: SE () -- | modify the values of a slider bank. -- -- FLslidBnkSetk modifies the values of a slider bank according to an -- array of values stored in a table. -- --
-- FLslidBnkSetk ktrig, ihandle, ifn [, istartIndex, istartSlid, inumSlid] ---- -- csound doc: http://csound.com/docs/manual/FLslidBnkSetk.html flSlidBnkSetk :: Sig -> D -> Tab -> SE () -- | modify the values of a slider bank. -- -- FLslidBnkSet modifies the values of a slider bank according to an -- array of values stored in a table. -- --
-- FLslidBnkSet ihandle, ifn [, istartIndex, istartSlid, inumSlid] ---- -- csound doc: http://csound.com/docs/manual/FLslidBnkSet.html flSlidBnkSet :: D -> Tab -> SE () -- | gets the handle of last slider bank created. -- -- FLslidBnkGetHandle gets the handle of last slider bank created. -- --
-- ihandle FLslidBnkGetHandle ---- -- csound doc: -- http://csound.com/docs/manual/FLslidBnkGetHandle.html flSlidBnkGetHandle :: SE D -- | modify the values of a slider bank. -- -- FLslidBnk2Setk modifies the values of a slider bank according to an -- array of values stored in a table. -- --
-- FLslidBnk2Setk ktrig, ihandle, ifn [, istartIndex, istartSlid, inumSlid] ---- -- csound doc: http://csound.com/docs/manual/FLslidBnk2Setk.html flSlidBnk2Setk :: Sig -> D -> Tab -> SE () -- | modify the values of a slider bank. -- -- FLslidBnk2Set modifies the values of a slider bank according to an -- array of values stored in a table. -- --
-- FLslidBnk2Set ihandle, ifn [, istartIndex, istartSlid, inumSlid] ---- -- csound doc: http://csound.com/docs/manual/FLslidBnk2Set.html flSlidBnk2Set :: D -> Tab -> SE () -- | A FLTK widget containing a bank of horizontal sliders. -- -- FLslidBnk2 is a widget containing a bank of horizontal sliders. -- --
-- FLslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index] -- FLslidBnk2 istring, inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index] ---- -- csound doc: http://csound.com/docs/manual/FLslidBnk2.html flSlidBnk2 :: Str -> D -> D -> D -> SE () -- | A FLTK widget containing a bank of horizontal sliders. -- -- FLslidBnk is a widget containing a bank of horizontal sliders. -- --
-- FLslidBnk "names", inumsliders [, ioutable] [, iwidth] [, iheight] [, ix] \ -- [, iy] [, itypetable] [, iexptable] [, istart_index] [, iminmaxtable] ---- -- csound doc: http://csound.com/docs/manual/FLslidBnk.html flSlidBnk :: Str -> D -> SE () -- | Sets the value of a FLTK valuator to a number provided by the user. -- -- FLsetVal_i forces the value of a valuator to a number provided by the -- user. -- --
-- FLsetVal_i ivalue, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetVal_i.html flSetVal_i :: D -> D -> SE () -- | Sets the value of a FLTK valuator at control-rate. -- -- FLsetVal is almost identical to FLsetVal_i. Except it operates at -- k-rate and it affects the target valuator only when ktrig is set to a -- non-zero value. -- --
-- FLsetVal ktrig, kvalue, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLsetVal.html flSetVal :: Sig -> Sig -> D -> SE () -- | Determines the snapshot group for FL valuators. -- -- FLsetSnapGroup determines the snapshot group of valuators declared -- after it. -- --
-- FLsetSnapGroup igroup ---- -- csound doc: http://csound.com/docs/manual/FLsetSnapGroup.html flSetSnapGroup :: D -> SE () -- | Stores the current status of all FLTK valuators into a snapshot -- location. -- -- FLsetsnap stores the current status of all valuators present in the -- orchestra into a snapshot location (in memory). -- --
-- inumsnap, inumval FLsetsnap index [, ifn, igroup] ---- -- csound doc: http://csound.com/docs/manual/FLsetsnap.html flSetsnap :: D -> SE (D, D) -- | Saves all snapshots currently created into a file. -- -- FLsavesnap saves all snapshots currently created (i.e. the entire -- memory bank) into a file. -- --
-- FLsavesnap "filename" [, igroup] ---- -- csound doc: http://csound.com/docs/manual/FLsavesnap.html flSavesnap :: Str -> SE () -- | Starts the FLTK widget thread. -- --
-- FLrun ---- -- csound doc: http://csound.com/docs/manual/FLrun.html flRun :: SE () -- | A FLTK opcode that prints a new value every time a control-rate -- variable changes. -- -- FLprintk2 is similar to FLprintk but shows a k-rate variable's value -- only when it changes. -- --
-- FLprintk2 kval, idisp ---- -- csound doc: http://csound.com/docs/manual/FLprintk2.html flPrintk2 :: Sig -> D -> SE () -- | A FLTK opcode that prints a k-rate value at specified intervals. -- -- FLprintk is similar to printk but shows values of a k-rate signal in a -- text field instead of on the console. -- --
-- FLprintk itime, kval, idisp ---- -- csound doc: http://csound.com/docs/manual/FLprintk.html flPrintk :: D -> Sig -> D -> SE () -- | Returns the mouse position and the state of the three mouse buttons. -- -- FLmouse returns the coordinates of the mouse position within an FLTK -- panel and the state of the three mouse buttons. -- --
-- kx, ky, kb1, kb2, kb3 FLmouse [imode] ---- -- csound doc: http://csound.com/docs/manual/FLmouse.html flMouse :: Tuple a => SE a -- | Loads all snapshots into the memory bank of the current orchestra. -- -- FLloadsnap loads all the snapshots contained in a file into the memory -- bank of the current orchestra. -- --
-- FLloadsnap "filename" [, igroup] ---- -- csound doc: http://csound.com/docs/manual/FLloadsnap.html flLoadsnap :: Str -> SE () -- | Reports keys pressed (on alphanumeric keyboard) when an FLTK panel has -- focus. -- -- FLkeyIn informs about the status of a key pressed by the user on the -- alphanumeric keyboard when an FLTK panel has got the focus. -- --
-- kascii FLkeyIn [ifn] ---- -- csound doc: http://csound.com/docs/manual/FLkeyIn.html flKeyIn :: SE Sig -- | Sets the cursor position of a previously-declared FLhvsBox widget. -- -- FLhvsBoxSetValue sets the cursor position of a previously-declared -- FLhvsBox widget. -- --
-- FLhvsBoxSetValue kx, ky, ihandle ---- -- csound doc: http://csound.com/docs/manual/FLhvsBoxSetValue.html flHvsBoxSetValue :: Sig -> Sig -> D -> SE () -- | Displays a box with a grid useful for visualizing two-dimensional -- Hyper Vectorial Synthesis. -- -- FLhvsBox displays a box with a grid useful for visualizing -- two-dimensional Hyper Vectorial Synthesis. -- --
-- ihandle FLhvsBox inumlinesX, inumlinesY, iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLhvsBox.html flHvsBox :: D -> D -> D -> D -> D -> D -> SE D -- | Retrieves a previously stored FLTK snapshot. -- -- Retrieves a previously stored snapshot (in memory), i.e. sets all -- valuator to the corresponding values stored in that snaphot. -- --
-- inumsnap FLgetsnap index [, igroup] ---- -- csound doc: http://csound.com/docs/manual/FLgetsnap.html flGetsnap :: D -> SE D -- | A FLTK widget opcode that creates a button that executes a command. -- -- A FLTK widget opcode that creates a button that executes a command. -- Useful for opening up HTML documentation as About text or to start a -- separate program from an FLTK widget interface. -- --
-- ihandle FLexecButton "command", iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLexecButton.html flExecButton :: Str -> D -> D -> D -> D -> SE D -- | A FLTK widget opcode that creates a button that will close the panel -- window it is a part of. -- --
-- ihandle FLcloseButton "label", iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLcloseButton.html flCloseButton :: Str -> D -> D -> D -> D -> SE D -- | A FLTK widget opcode that creates a button. -- --
-- kout, ihandle FLbutton "label", ion, ioff, itype, iwidth, iheight, ix, \ -- iy, iopcode [, kp1] [, kp2] [, kp3] [, kp4] [, kp5] [....] [, kpN] ---- -- csound doc: http://csound.com/docs/manual/FLbutton.html flButton :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | A FLTK widget opcode that creates a bank of buttons. -- --
-- kout, ihandle FLbutBank itype, inumx, inumy, iwidth, iheight, ix, iy, \ -- iopcode [, kp1] [, kp2] [, kp3] [, kp4] [, kp5] [....] [, kpN] ---- -- csound doc: http://csound.com/docs/manual/FLbutBank.html flButBank :: D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | A FLTK widget that displays text inside of a box. -- --
-- ihandle FLbox "label", itype, ifont, isize, iwidth, iheight, ix, iy [, image] -- ihandle FLbox istr, itype, ifont, isize, iwidth, iheight, ix, iy [, image] ---- -- csound doc: http://csound.com/docs/manual/FLbox.html flBox :: Str -> D -> D -> D -> D -> D -> D -> D -> SE D -- | A FLTK widget opcode that creates a textbox. -- -- FLtext allows the user to modify a parameter value by directly typing -- it into a text field. -- --
-- kout, ihandle FLtext "label", imin, imax, istep, itype, iwidth, \ -- iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLtext.html flText :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | Puts a slider into the corresponding FLTK container. -- -- FLslider puts a slider into the corresponding container. -- --
-- kout, ihandle FLslider "label", imin, imax, iexp, itype, idisp, iwidth, \ -- iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLslider.html flSlider :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | A FLTK widget that creates a transversal knob. -- -- FLroller is a sort of knob, but put transversally. -- --
-- kout, ihandle FLroller "label", imin, imax, istep, iexp, itype, idisp, \ -- iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLroller.html flRoller :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | A FLTK widget opcode that creates a knob. -- --
-- kout, ihandle FLknob "label", imin, imax, iexp, itype, idisp, iwidth, \ -- ix, iy [, icursorsize] ---- -- csound doc: http://csound.com/docs/manual/FLknob.html flKnob :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | A FLTK opcode that acts like a joystick. -- -- FLjoy is a squared area that allows the user to modify two output -- values at the same time. It acts like a joystick. -- --
-- koutx, kouty, ihandlex, ihandley FLjoy "label", iminx, imaxx, iminy, \ -- imaxy, iexpx, iexpy, idispx, idispy, iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLjoy.html flJoy :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, Sig, D, D) -- | A FLTK widget opcode that creates a counter. -- -- Allows the user to increase/decrease a value with mouse clicks on a -- corresponding arrow button. -- --
-- kout, ihandle FLcount "label", imin, imax, istep1, istep2, itype, \ -- iwidth, iheight, ix, iy, iopcode [, kp1] [, kp2] [, kp3] [...] [, kpN] ---- -- csound doc: http://csound.com/docs/manual/FLcount.html flCount :: Str -> D -> D -> D -> D -> D -> D -> D -> D -> D -> D -> SE (Sig, D) -- | Marks the end of a tabbed FLTK interface. -- --
-- FLtabsEnd ---- -- csound doc: http://csound.com/docs/manual/FLtabsEnd.html flTabsEnd :: SE () -- | Creates a tabbed FLTK interface. -- -- FLtabs is a âfile card tabsâ interface that is useful to display -- several areas containing widgets in the same windows, alternatively. -- It must be used together with FLgroup, another container that groups -- child widgets. -- --
-- FLtabs iwidth, iheight, ix, iy ---- -- csound doc: http://csound.com/docs/manual/FLtabs.html flTabs :: D -> D -> D -> D -> SE () -- | A FLTK opcode that marks the end of an area with scrollbars. -- --
-- FLscrollEnd ---- -- csound doc: http://csound.com/docs/manual/FLscrollEnd.html flScrollEnd :: SE () -- | A FLTK opcode that adds scroll bars to an area. -- -- FLscroll adds scroll bars to an area. -- --
-- FLscroll iwidth, iheight [, ix] [, iy] ---- -- csound doc: http://csound.com/docs/manual/FLscroll.html flScroll :: D -> D -> SE () -- | Marks the end of a group of FLTK widgets contained inside of a window -- (panel). -- --
-- FLpanelEnd ---- -- csound doc: http://csound.com/docs/manual/FLpanelEnd.html flPanelEnd :: SE () -- | Creates a window that contains FLTK widgets. -- --
-- FLpanel "label", iwidth, iheight [, ix] [, iy] [, iborder] [, ikbdcapture] [, iclose] ---- -- csound doc: http://csound.com/docs/manual/FLpanel.html flPanel :: Str -> D -> D -> SE () -- | Marks the end of a group of compressed or aligned FLTK widgets. -- --
-- FLpackEnd ---- -- csound doc: http://csound.com/docs/manual/FLpackEnd.html flPackEnd :: SE () -- | Provides the functionality of compressing and aligning FLTK widgets. -- -- FLpack provides the functionality of compressing and aligning widgets. -- --
-- FLpack iwidth, iheight, ix, iy, itype, ispace, iborder ---- -- csound doc: http://csound.com/docs/manual/FLpack.html flPack :: D -> D -> D -> D -> D -> D -> D -> SE () -- | Marks the end of a group of FLTK child widgets. -- --
-- FLgroupEnd ---- -- csound doc: http://csound.com/docs/manual/FLgroupEnd.html flGroupEnd :: SE () -- | A FLTK container opcode that groups child widgets. -- --
-- FLgroup "label", iwidth, iheight, ix, iy [, iborder] [, image] ---- -- csound doc: http://csound.com/docs/manual/FLgroup.html flGroup :: Str -> D -> D -> D -> D -> SE () -- | Sets the tempo. -- -- Sets the local tempo if this peer is not enabled; sets the tempo of -- the global network Ableton Link session if this peer is enabled. -- --
-- link_tempo_set i_peer, k_bpm [, k_at_time_seconds] ---- -- csound doc: http://csound.com/docs/manual/link_tempo_set.html link_tempo_set :: D -> Sig -> SE () -- | Returns the current tempo of the global network Ableton Link session. -- --
-- k_bpm link_tempo_get i_peer ---- -- csound doc: http://csound.com/docs/manual/link_tempo_get.html link_tempo_get :: D -> Sig -- | Returns the number of peers in the session. -- -- Returns the number of peers in the global network Ableton Link -- session. -- --
-- k_count link_peers i_peer ---- -- csound doc: http://csound.com/docs/manual/link_peers.html link_peers :: D -> Sig -- | Returns a trigger that is 1 on the beat and 0 otherwise along with -- beat, phase, and time for this session of Ableton Link. -- -- Returns a trigger that is 1 on the beat and 0 otherwise along with the -- beat, phase, and current time of Ableton Link for this session for a -- given quantum. -- --
-- k_trigger, k_beat, k_phase, k_current_time_seconds link_metro i_peer [, k_quantum] ---- -- csound doc: http://csound.com/docs/manual/link_metro.html link_metro :: D -> (Sig, Sig, Sig, Sig) -- | Returns whether or not this peer is synchronized with the global -- network Ableton Link session. -- -- Returns whether or not the beat and time of his peer are synchronized -- with the global network Ableton Link session. -- --
-- k_is_enabled link_is_enabled i_peer ---- -- csound doc: http://csound.com/docs/manual/link_is_enabled.html link_is_enabled :: D -> Sig -- | Enable or disable synchronization with the Ableton Link session. -- -- Enable or disable synchronization with the global network Ableton Link -- session tempo and beat. -- --
-- ableton_link_enable i_peer [, k_enable] ---- -- csound doc: http://csound.com/docs/manual/link_enable.html ableton_link_enable :: D -> SE () -- | Creates a peer in an Ableton Link network session. -- -- Creates a peer in an Ableton Link network session. The first peer in a -- session determines the initial tempo of the session. The value -- returned must be passed as the first parameter to all subsequent -- Ableton Link opcode calls for this peer. -- --
-- i_peer link_create [i_bpm] ---- -- csound doc: http://csound.com/docs/manual/link_create.html link_create :: D -- | Requests the global network Ableton Link session to adopt a specific -- beat number and time. -- --
-- link_beat_request i_peer, k_beat [, k_at_time_seconds [, k_quantum ]] ---- -- csound doc: -- http://csound.com/docs/manual/link_beat_request.html link_beat_request :: D -> Sig -> SE () -- | Returns the beat, phase with respect to the local quantum, and current -- time for the session. -- -- Returns the beat number, phase of the beat with respect to the local -- quantum of the beat, and current time for the global network Ableton -- Link session. -- --
-- k_beat_number, k_phase, k_current_time_seconds link_beat_get i_peer [, k_quantum] ---- -- csound doc: http://csound.com/docs/manual/link_beat_get.html link_beat_get :: D -> (Sig, Sig, Sig) -- | Forces the global network Ableton Link session to adopt a specific -- beat number and time. -- -- Forces the global network Ableton Link session to adopt a specific -- beat number and time, like a conductor stopping an orchestra and -- immediately starting it again. -- --
-- link_beat_force i_peer, k_beat [, k_at_time_seconds [, k_quantum ]] ---- -- csound doc: http://csound.com/docs/manual/link_beat_force.html link_beat_force :: D -> Sig -> SE ()