S<X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W  Safe-InferreduUnary signal operations. Many of these have functions so you don't need to use this internal representation (e.g. 8 has neg, etc).-This type might not be exposed in the future.94Binary signal operations. For the simple ones (like k, i&, etc.), there are functions (like  ,  S, etc.) that wrap them up so you don't have to make a ugen for them yourself.XIn the future these may not be exported -- we'll just have functions for all of them.E abs(a - b)F (a - b) ^ 2G (a + b) ^ 2H a * a + b * bI a * a - b * bJa * a * b - a * b * bK a * a * bL a * b + a + bMa * (b + 1) == a * b + agFloat divisionhInteger divisionl"State monad to construct SynthDefsThe SynthDef is an under-construction synth definition The [Int] is the id supply. Its type definitely could change in the futurem The rate that a UGen computes atn demand rateo audio ratep control rateqconstant valuevRepresentation of Unit Generators. You usually won't be creating these by hand, but instead using things from the library in   ;Internal representation of Synth Definitions. Usually, use $ instead of making these by hand. This representation (especially ) might change in the future.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~mqpon|~}lvwxyz{ruts876543210/.-,+*)('&%$#"!  9kjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;: 7876543210/.-,+*)('&%$#"!  92kjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:lmqponrutsvwxyz{|~} Safe-Inferred24For  (Float) values   NoneXXNoneM6YZ[\]^_`abcdefghijklmn YZ[\]^_`abcdefghijklmnNone MAn OSC message, e.g. OSC "/n_free" [OSC_I 42]opqrst  opqrstNoneMT Stop the SuperCollider server,You usually don't need to call this functionLUse this if to connect on a non-default port or to a server not at localhostOtherwise the connection is created when it's needed. You can also use this to explicitly create the connection, so the computation is done upfrontThe u' is the ip address or "localhost". The v is the portSend an $ message to the SuperCollider serverAsync messages to the sc server get responded to with "/done" -- so this calls those functions and waits for the "/done" before continuingJSend a ByteString to the SuperCollider server. You usually want to use , instead. May be removed in future versions.fYour "emergency" button. Run this and everything playing on the SC server will be freed -- silence!GCorresponds to the cmd-. / ctrl-. key command in the SuperCollider IDEIf you've started the SC server with a non-default number of buffer ids, (e.g. with the "-b" argument), you can reflect that hereYNote that the buffer ids start at 512, to not clash with any that sclang has allocatedMake an empty bufferThe Int32 is the buffer length  in samplesn. Multiply seconds by the default sample rate of the server (usually 48000) to get the number of samples5Make a buffer and fill it with sound data from a fileWrite a buffer to a file$wxyz{|}~wxyz{|}~NoneT 5Send a synth definition to be loaded on the SC servergNote that this is sort of optional -- if you don't call it, it'll be called the first time you call  with the SynthDef Alias for $Add a unit generator with one output Polyphonic -- returns a list of ;s. In the future this might be a tuple instead of a listDefine a Synth DefinitionNDefine a Synth Definition and give it a name you can refer to from e.g. sclang"Set the calculation rate of a UGene.g. iplay $ do s0 <- 1 ~+ (lfSaw (Freq 1) ? KR) s1 <- 0.1 ~* lfSaw (Freq $ 220 ~* s0) out 0 [s1, s1] Mnemonic: "?" is like thinkingLIn the future, the representation of calculation rates definitely may change5Given a UGen graph, just start playing it right away.e.g. Gplay $ do s <- 0.2 ~* lpf (In whiteNoise) (Freq 440) out 0 [s, s] Immediately stop a synth playingThis can create a "clipping" artifact if the sound goes from a high amplitude to 0 in an instant -- you can avoid that with e.g.  +Set the given parameters of a running synthe.g.Ulet setTest = sd [("pan", 0.5)] $ out 0 =<< pan2 (In $ 0.1 ~* whiteNoise) (Pos "pan")s <- synth setTest []set s [("pan", -0.5)]uAny parameters not referred to will be unaffected, and any you specify that don't exist will be (silently) ignoredDCreate a real live music-playing synth from a boring, dead SynthDef.If you haven't defined the SynthDef on the server, this will do it automatically (Note that this may cause jitters in musical timing)Uses  so that given...6let foo = sdNamed "foo" [] $ out 0 [0.1 ~* whiteNoise](...you can create a synth either with...synth "foo" []...or... synth foo []cCareful!: The SC server doesn't keep track of your nodes for you, so if you do something like...s <- synth "someSynth" []4s <- synth "oops" [] -- 's' is overwrittenk...you've got no way to refer to the first synth you've created, and if you want to stop it you have to vThis is the hash of the UGen graph and params, but not the name! So (re)naming a SynthDef will not change its hash.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~vwxyz{876543210/.-,+*)('&%$#"!  9kjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:None:M4      !"#$%&'4      !"#$%&'4&'$%"# !           !"#$%&' None:M(F"A non-band-limited triangle oscillator. Output ranges from -1 to +1.")F"A non-band-limited sawtooth oscillator. Output ranges from -1 to +1."*D"Generates noise whose spectrum has equal power at all frequencies."+"Generates noise whose spectrum falls off in power by 3 dB per octave. This gives equal power over the span of each octave. This version gives 8 octaves of pink noise.",G"Generates noise whose spectrum falls off in power by 6 dB per octave."- Sine wave.Band-pass filter/Low-pass filter0High-pass filter1^Unlike in SuperCollider, you don't specify a "lo" parameter -- "lo" is always negative "hi"2:Bus input (usually mic). "0" because it's from the 0th bus8Build your own!9 Alias of 8. Shorter, fer livecodin:Build your own, from s; Alias of :<zConvert from a midi note number (0-127, each representing a musical half step) to a frequency in hz (cycles per second) Inverse of <=_The prime is to not conflict with "abs" in the prelude. May just use "uOp Abs" in the futureA"Generates an exponential curve from the start value to the end value. Both the start and end values must be non-zero and have the same sign."Defaults to KRB9"Generates a line from the start value to the end value."Defaults to KRJAdd a single LocalBuf for FFTOKMixes down a list of audio rate inputs to one. The list can't be empty.!This is more efficient than e.g.  foldl1 (~*)PPlay a 1-channel bufferQRecord a 1-channel bufferUpos is -1 to 1V5The "Secs" arg is the same as the "lagTime" arg in SC2()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVc      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV/()-T*+,AB2GF./01PQJKLMN34576<=>89:;HIDU?@CEORSV2()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV NoneW$  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWW !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                        ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?  @ABBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_]^`aabcdefghijklmnop q r st vivid-0.1.0.0Vivid.SynthDefVivid.SynthDef.TypesVivid.SynthDef.CrazyTypesVivid.OSC.UtilVivid.SynthDef.Literally Vivid.OSCVivid.SCServerVivid.UGens.Args Vivid.UGensVivid~+~*UGenssdlagtransformers-0.4.3.0Control.Monad.Trans.State.Lazy execStateUnaryOpNumUnarySelectorsSCurveRamp TriWindow WelchWindow HanWindow RectWindowThruSilence DigitValueCoinSoftClipDistortSum3Rand BiLinRandLinRandRand2RandTanHCosHSinHArcTanArcCosArcSinTanCosSinLog10Log2LogCPSOctOctCPSAmpDbDbAmp RatioMIDI MIDIRatioCPSMIDIMIDICPSRecipExpSqrtCubedSquaredSignFracFloorCielAsIntAsFloatAbsBitNotNotNilIsNilNotNegBinaryOpNumBinarySelectors ExpRandRange RandRangeFirstArgWrap2Fold2ExcessClip2ScaleNegAMClipThreshAbsDifSqrDifSqrSumSumSqrDifSqrRing4Ring3Ring2Ring1Fill UnsignedShift ShiftRight ShiftLeftPowHypotxHypotAtan2TruncRoundUpRoundGcdLcmBitXorBitOrBitAndMaxMinGeLeGtLtNeEqModFDivIDivMulSubAddSDStateCalculationRateDRARKRIRUGenNameUGName_BUGName_UUGName_SUGen _ugenName_ugenCalculationRate_ugenIns _ugenNumOutsSDName SDName_Hash SDName_NamedSynthDef_sdName _sdParams_sdUGensSignalUGOutParamConstant HasSynthRef getSynthRefToSigMtoSigMToSigtoSig$fHasSynthRefSynthDef$fHasSynthRef[]$fToSigMStateT $fToSigMi $fToSig[]$fToSiga $fToSigSignalalign floatToWord wordToFloat OutputSpec_outputSpec_calcRate InputSpecInputSpec_Constant_inputSpec_constant_indexInputSpec_UGen_inputSpec_uGen_index_inputSpec_uGen_outputIndexUGenSpec_uGenSpec_name_uGenSpec_calcRate_uGenSpec_inputs_uGenSpec_outputs_uGenSpec_specialIndex ParamName_paramName_name_paramName_indexInParamArray SynthDefFileLiteralSynthDef _synthDefName_synthDefConstants_synthDefParameters_synthDefParamNames_synthDefUGens_synthDefVariantsdecodeSynthDefFileencodeSynthDefFileOSCDatumOSC_BOSC_FOSC_SOSC_IOSC encodeOSC decodeOSC SCServerStatescServer_socketscServer_availableBufferIdsscServer_maxBufIdsscServer_availableNodeIdsscServer_availableSyncIdsscServer_definedSDsBufferId unBufferIdNodeIdunNodeId scServerStatequitcreateSCServerConnectioncallcallAndWaitForDonecallBS cmdPeriod newBufferId newNodeIdsetMaxBufferIds makeBuffermakeBufferFromFile saveBuffer DoneAction FreeEnclosing DoNothingsdPretty doneActionNum uOpToSpecialI specialIToUOpbiOpToSpecialIspecialIToBiOp sdToLiteralencodeSDdefineSDaddUGen addMonoUGen addPolyUGensdNamed? getCalcRateplay sdLitPrettyfreesetsynthWipeWidthTriggerSyncFreqStartSecsSawFreqRqRoomRatioPosPhase NumFramesNumChansMixMinValMaxValLoInHiFreqEndDurDampBusBuflfTrilfSaw whiteNoise pinkNoise brownNoisesinOscbpflpfhpfclipsoundIn0~/~>~-binaryOpbiOpunaryOpuOpmidiCPSabs'negoutlfParxLinelinelfCubimpulselfPulsemouseYmouseXvarSawsyncSawlocalBuffftifftpv_binScramble pv_randCombmixplayBuf1 recordBuf1freeVerb pitchShiftfSinOscpan2sleep coercionThing VariantSpec_variantSpec_name_variantSpec_initialParamValsdecodeSynthDefencodeSynthDef getParamNameencodeParamName getUGenSpecencodeUGenSpec getInputSpecencodeInputSpec getOutputSpecencodeOutputSpecgetVariantSpecencodeVariantSpec getPString encodePStringgetNWithgetInt32getInt16getN4ByteBlocks encodeDatumdecodeDatumWithPaddingnumBytesWithoutPaddingnumBytesWithPadding decodeOSCData$fNFDataOSCDatumnetwork-2.6.2.0Network.SocketHostName ServiceNameSyncIddefaultSCServerPortconnectToSCServergetSCServerSocketgetSCServerSocket'makeEmptySCServerStategetNextAvailable newSyncId$fHashableSynthDef getSDHashNamegatherConstants makeUGenSpecs indexOfNamedefineSDIfNeededgetFreshUGenGraphId makeSynthDefcpsMIDI passFilter mouseGeneral