h*E4      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                            0.3.9.1 Safe-Inferred"%&9:;<Rcsound-expression-dynamic%Envelope generators are Kr by defaultcsound-expression-dynamic.Oscillators and table access are Ar by default Safe-Inferred"%&69:;<#csound-expression-dynamicMultiple output. Specify the number of outputs to get the result.<csound-expression-dynamicThe Csound rates.[csound-expression-dynamicArray multi index\csound-expression-dynamicArray sizes by demensions^csound-expression-dynamic9Rate of if-then-else conditional. It can run at Ir or Krccsound-expression-dynamic Primitivesdcsound-expression-dynamicApplication of the opcode: we have opcode information (Info) and the arguments [a]ecsound-expression-dynamicRate conversionfcsound-expression-dynamicSelects a cell from the tuple, here argument is always a tuple (result of opcode that returns several outputs)gcsound-expression-dynamic if-then-elsehcsound-expression-dynamic>Boolean expressions (rendered in infix notation in the Csound)icsound-expression-dynamicNumerical expressions (rendered in infix notation in the Csound)jcsound-expression-dynamic Reading/writing a named variablemcsound-expression-dynamicArraysrcsound-expression-dynamicinits 1-dimensional read only array (uses fillaray) args: rateOfTheOutput processingRate initValuesscsound-expression-dynamicReads read only array with index args: rateOfTheOutput processingRate array indextcsound-expression-dynamicImperative If-then-elseycsound-expression-dynamiclooping constructionscsound-expression-dynamic Verbatim stmtcsound-expression-dynamicDependency trackingcsound-expression-dynamicread macros argumentscsound-expression-dynamicIt's a primitive value or something else. It's used for inlining of the constants (primitive values).csound-expression-dynamic#expression hash for fast comparisoncsound-expression-dynamicRate (can be undefined or Nothing, it means that rate should be deduced automatically from the context)csound-expression-dynamicDependency (it is used for expressions with side effects, value contains the privious statement)csound-expression-dynamicMain expressioncsound-expression-dynamic/The inner representation of csound expressions.csound-expression-dynamicAn instrument identifiercsound-expression-dynamic-Constructs an instrument id with the integer.csound-expression-dynamic1Constructs an instrument id with fractional part.csound-expression-dynamic2Constructs an instrument id with the string label.csound-expression-dynamic0Call it on every change in underlying expressioncsound-expression-dynamicConstructs PrimOr values from the expressions. It does inlining in case of primitive values.csound-expression-dynamicConstructs PrimOr values from the expressions. It does inlining in case of primitive values.csound-expression-dynamic+Can be infinite so fe just ignore the valueagfdcehkbijlmnopqrstuvwxyz{|}~RSTUVWXYZMNOPQIJKL<@A?=>BCDEFGH789:;-.4/012356'()*+,$%& !"    #]\[^_`agfdcehkbijlmnopqrstuvwxyz{|}~RSTUVWXYZMNOPQIJKL<@A?=>BCDEFGH789:;-.4/012356'()*+,$%& !"    #]\[^_` Safe-Inferred"%&9:;<csound-expression-dynamicCsound's synonym for -monad. Dep( means Side Effect. You will bump into Dep trying to read and write to delay lines, making random signals or trying to save your audio to file. Instrument is expected to return a value of  Dep [Sig]<. So it's okay to do some side effects when playing a note.''  Safe-Inferred"%&9:;<#csound-expression-dynamicType-inference statecsound-expression-dynamictypes inferrred so farcsound-expression-dynamic conversionscsound-expression-dynamiclast fresh id (we use it to insert new variables for conversions)csound-expression-dynamic+typed program accumulated in reversed ordercsound-expression-dynamic?sometimes we need to allocate new primitive value to convert itcsound-expression-dynamic(set of opcode names to use Kr by defaultcsound-expression-dynamic(set of opcode names to use Ar by defaultcsound-expression-dynamicdoes program has if-statemenrs we need it for the next optimization stagecsound-expression-dynamic&Infer types/rates for a csound programcsound-expression-dynamicChecks if opcode conversion is destructive Note that we rely on Haskell type-checker and don't consider cases of type-mismatch lke comparing number with string.+There are two cases of destructive updates:Ar or Kr is converted to IrAr is converted to Krcsound-expression-dynamic7Checks if convertion is identity, then returns originalcsound-expression-dynamic5On this stage we don't need expression hashes anymorecsound-expression-dynamic0Allocate new var and assign RHS expression to itcsound-expression-dynamic'Allocate fresh variable with given ratecsound-expression-dynamicAllocate new fresh id Safe-Inferred"%&9:;<$csound-expression-dynamicReuses variables. It analyses weather the vraibel is used further in the code and if it's not used it tries to reuse it for the next assignments Safe-Inferred"%&9:;<'csound-expression-dynamic'Internal mutable state of the algorithmcsound-expression-dynamicMonad of the algorithmcsound-expression-dynamicBreadth first traversalcsound-expression-dynamicBe sure not to bring initialization expression inside the if-blockscsound-expression-dynamicWe process statements in reverse order and then also accumulation happens in reverse so we don't need to reverse twicecsound-expression-dynamicDefines rule that if we are inside Kr if-block we can not bring inside Ir-expressions Safe-Inferred"%&9:;<(?csound-expression-dynamic.Converts Haskell's doubles to Csound's doublescsound-expression-dynamic.Converts Haskell's strings to Csound's stringscsound-expression-dynamic/Converts Haskell's integers to Csound's doubles-- Safe-Inferred"%&9:;<). Safe-Inferred"%&9:;<){ Safe-Inferred"%&9:;<)  Safe-Inferred"%&9:;<,csound-expression-dynamic!The Csound note. It's a triple of !(startTime, duration, parameters)   Safe-Inferred"%&9:;<-` !"-.4/012356MNOPQagfdcehkbijlmnopqrstuvwxyz{|}~RSTUVWXYZIJKL<@A?=>BCDEFGH789:;'()*+,$%&    #]\[^_` Safe-Inferred"%&9:;<0!    Safe-Inferred"%&9:;<0 Safe-Inferred"%&9:;<0    Safe-Inferred"%&9:;<1H Safe-Inferred"%&9:;<1 !"-.4/012356MNOPQagfdcehkbijlmnopqrstuvwxyz{|}~RSTUVWXYZIJKL<@A?=>BCDEFGH789:;'()*+,$%&    #]\[^_` !"#$%&'()*+,-.//0102234567899:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdeefghijklmnopqrstuvwxyz{|}~                                                                            e e g 8csound-expression-dynamic-0.3.9.1-1cJbmtshgbjKoGghhay83WCsound.Dynamic.Render.PrettyCsound.Dynamic.ConstCsound.Dynamic.Types.ExpCsound.Dynamic.Types.DepCsound.Dynamic.RenderCsound.Dynamic.BuildCsound.Dynamic.Build.NumericCsound.Dynamic.Types.FlagsCsound.Dynamic.Types.CsdFileCsound.Dynamic.Render.InstrCsound.Dynamic.Build.Logiccsound-expression-dynamicCsound.Dynamic.Tfm.InferTypesCsound.Dynamic.Tfm.LivenessCsound.Dynamic.Tfm.IfBlocks"Csound.Dynamic.Tfm.UnfoldMultiOutsCsound.Dynamic.TypesCsound.Dynamic,wl-pprint-text-1.2.0.2-KI5miAfwA4lzOizB2UikOText.PrettyPrint.Leijen.TextDoccontrolOpcodes audioOpcodesMultiOutNumOpAddSubNegMulDivPowModNumExpCondOpTrueOpFalseOpAndOrEquals NotEqualsLessGreater LessEquals GreaterEqualsCondInfoBoolExp PreInline InlineExp InlinePrimInline inlineExp inlineEnvNoteGenIdIntGenId StringGenIdGengenSizegenIdgenArgsgenFilePrimPPStringPrimInt PrimDouble PrimString PrimInstrIdPrimVarprimVarTargetRateprimVar Signature SingleRate MultiRate outMultiRate inMultiRateRateXrArKrIrSrFrWrTvarArArrKrArrIrArrSrArr OpcFixityPrefixInfixOpcodeInfoinfoName infoSignature infoOpcFixityVarTypeLocalVar GlobalVarVar VarVerbatimvarTypevarRatevarNameArrIndexArrSize IsArrInitIfRateIfIrIfKrMainExpEmptyExpExpPrimTfm ConvertRateSelectIfExpBoolExpNumInitVarReadVarWriteVarInitArrReadArrWriteArr WriteInitArrTfmArr InitPureArr ReadPureArrIfBlock IfElseBlockIfBegin ElseBeginIfEnd UntilBlock UntilBeginUntilEnd WhileBlock WhileBegin WhileRefBlock WhileRefBeginWhileEndVerbatimStartsSeqEnds InitMacrosIntInitMacrosDoubleInitMacrosString ReadMacrosIntReadMacrosDoubleReadMacrosString CodeBlockExpPrimOrunPrimOrRatedExp ratedExpHash ratedExpRateratedExpDepends ratedExpExpEInstrId InstrLabel instrIdFrac instrIdCeilName intInstrId ratioInstrId stringInstrIdratedExpnoRatewithRatehashErehashEsetRatetoPrimOr toPrimOrTfm fromIfRateisPrefixisInfix toArrRate removeArrRateisTrueisFalse$fSerializeInstrId$fSerializeCodeBlock$fSerializeIfRate$fSerializeVarType$fSerializeOpcFixity$fSerializeRate$fSerializeVar$fSerializeSignature$fSerializeInfo$fSerializePrim$fTraversablePrimOr$fFoldablePrimOr$fSerializePrimOr$fSerializeInlineExp$fSerializeInline$fSerializePreInline$fSerializeCondOp$fSerializeNumOp$fSerializeMainExp$fSerializeRatedExp $fOrdRatedExp $fEqRatedExp$fShowRatedExp$fFunctorRatedExp$fFoldableRatedExp$fTraversableRatedExp$fGenericRatedExp$fGeneric1TYPERatedExp $fShowMainExp $fEqMainExp $fOrdMainExp$fFunctorMainExp$fFoldableMainExp$fTraversableMainExp$fGenericMainExp$fGeneric1TYPEMainExp $fShowNumOp $fEqNumOp $fOrdNumOp$fGenericNumOp $fShowCondOp $fEqCondOp $fOrdCondOp$fGenericCondOp$fShowPreInline $fEqPreInline$fOrdPreInline$fFunctorPreInline$fFoldablePreInline$fTraversablePreInline$fGenericPreInline$fGeneric1TYPEPreInline $fShowInline $fEqInline $fOrdInline$fFunctorInline$fFoldableInline$fTraversableInline$fGeneric1TYPEInline$fGenericInline$fShowInlineExp $fEqInlineExp$fOrdInlineExp$fGenericInlineExp $fShowGen$fEqGen$fOrdGen $fGenericGen $fShowGenId $fEqGenId $fOrdGenId$fGenericGenId $fShowPrimOr $fEqPrimOr $fOrdPrimOr$fFunctorPrimOr$fGenericPrimOr$fGeneric1TYPEPrimOr $fShowPrim$fEqPrim $fOrdPrim $fGenericPrim $fShowInfo$fEqInfo $fOrdInfo $fGenericInfo$fShowSignature $fEqSignature$fOrdSignature$fGenericSignature $fShowVar$fEqVar$fOrdVar $fGenericVar $fShowRate$fEqRate $fOrdRate $fEnumRate $fBoundedRate $fGenericRate$fShowOpcFixity $fEqOpcFixity$fOrdOpcFixity$fGenericOpcFixity $fShowVarType $fEqVarType $fOrdVarType$fGenericVarType $fShowIfRate $fEqIfRate $fOrdIfRate$fGenericIfRate$fShowCodeBlock $fEqCodeBlock$fOrdCodeBlock$fFunctorCodeBlock$fFoldableCodeBlock$fTraversableCodeBlock$fGenericCodeBlock$fGeneric1TYPECodeBlock $fShowInstrId $fEqInstrId $fOrdInstrId$fGenericInstrId $fEq1PrimOr$fEq1PreInline $fEq1Inline$fEq1CodeBlock $fEq1MainExp $fEq1RatedExp $fOrd1PrimOr$fOrd1PreInline $fOrd1Inline$fOrd1CodeBlock $fOrd1MainExp$fOrd1RatedExp $fShow1PrimOr$fShow1PreInline $fShow1Inline$fShow1CodeBlock$fShow1MainExp isEmptyExp$fShow1RatedExp$fGeneric1TYPEIntMap LocalHistory expDependency newLineNum newLocalVarIdDepTunDepTrunDepTevalDepTexecDepTdependsdepTdepT_toBlockmdepT stripDepT stmtOnlyT newLocalVars newLocalVarwriteVarreadVar readOnlyVarinitVar appendVarBynewLocalArrVar newTmpArrVarreadArr readOnlyArrwriteArr writeInitArrinitArr appendArrByreadMacrosDouble readMacrosIntreadMacrosStringinitMacrosDoubleinitMacrosString initMacrosInt$fDefaultLocalHistory$fMonadTransDepT $fMonadDepT$fApplicativeDepT $fFunctorDepTOpcodeInferenceStrategyPreferControlRatePreferAudioRateInferenceOptionsopcodeInferenceStrategyopcodeInferencePreferenceSpecsSpec1prim opcPrefix oprPrefixoprInfixtfmtfmNoInlineArgs inlineVarpn withInitsdoublestrintverbatiminstrIdEspec1opcsopcsNoInlineArgsopr1oprByopr1kinfOprnumExp1opcsArr infOprArr initPureArr readPureArrspecsmopcsmogetRatesisMultiOutSignature getPrimUnsafetoExponExpsetSrsetKr setNchnls setNchnls_isetKsmps setZeroDbfsgInit gInitDoubleceilEfloorEroundEfracEintE $fIntegralFix $fRealFix $fEnumFix $fFloatingFix$fFractionalFix$fNumFix $fMonoidFix$fSemigroupFixConfighwBufioBufnewKrnewSrscoreInomacrosmacrosetSchedschedNumstrsetN skipSecondssetTempo DisplayMode NoDisplayPostScriptDisplay AsciiDisplayDisplays csdLineNums displayModedisplayHeartbeat messageLevelmAmpsmRange mWarningsmDbmColours mBenchmarksmsgColordisplayVerbose listOpcodesRtmidiPortMidiAlsaMidiAlsaSeqCoreMidiMmeMidi WinmmeMidi VirtualMidiNoRtmidiMidiRT midiDevicemidiKey midiKeyCps midiKeyOct midiKeyPch midiVelocitymidiVelocityAmp midiOutDeviceMidiIOmidiFile midiOutFile muteTracksrawControllerModeterminateOnMidi PulseAudiopaServerpaOutputpaInputRtaudio PortAudioAlsaJackMme CoreAudio NoRtaudio jackClient jackInport jackOutportIdTagsidArtist idComment idCopyrightidDate idSoftwareidTitle FormatTypeAiffAuAvrCafFlacHtkIrcamMat4Mat5NisPafPvfRawSd2SdsSvxVocW64WavWavexXiDither TriangularUniform FormatSamplesBit24AlawUcharSchar FloatSamplesUlawShortLong FormatHeaderNoHeader RewriteHeaderAudioFileOutput formatSamples formatTypeoutputinputnosoundnopeaksditherFlagsaudioFileOutputidTagsrtaudio pulseAudiomidiIOmidiRTrtmididisplaysconfig flagsVerbatim$fPrettyDither$fPrettyAudioFileOutput$fMonoidAudioFileOutput$fSemigroupAudioFileOutput$fDefaultAudioFileOutput$fPrettyIdTags$fMonoidIdTags$fSemigroupIdTags$fDefaultIdTags$fPrettyRtaudio$fPrettyPulseAudio$fPrettyMidiIO$fMonoidMidiIO$fSemigroupMidiIO$fDefaultMidiIO$fPrettyMidiRT$fMonoidMidiRT$fSemigroupMidiRT$fDefaultMidiRT$fPrettyRtmidi$fPrettyDisplayMode$fPrettyDisplays$fMonoidDisplays$fSemigroupDisplays$fDefaultDisplays$fPrettyConfig$fMonoidConfig$fSemigroupConfig$fDefaultConfig $fPrettyFlags $fMonoidFlags$fSemigroupFlags$fDefaultFlags $fEqFlags $fShowFlags $fReadFlags $fEqConfig $fShowConfig $fReadConfig $fEqDisplays$fShowDisplays$fReadDisplays$fEqDisplayMode$fShowDisplayMode$fReadDisplayMode $fEqRtmidi $fShowRtmidi $fReadRtmidi $fEqMidiRT $fShowMidiRT $fReadMidiRT $fEqMidiIO $fShowMidiIO $fReadMidiIO$fEqPulseAudio$fShowPulseAudio$fReadPulseAudio $fEqRtaudio $fShowRtaudio $fReadRtaudio $fEqIdTags $fShowIdTags $fReadIdTags$fEqAudioFileOutput$fShowAudioFileOutput$fReadAudioFileOutput$fEqFormatType$fShowFormatType$fReadFormatType $fEqDither $fShowDither $fReadDither$fEqFormatSamples$fShowFormatSamples$fReadFormatSamples$fEqFormatHeader$fShowFormatHeader$fReadFormatHeaderCsdEventPlugin pluginName pluginContentSco scoTotalDurscoGensscoNotesInstr instrName instrBody InstrBodyOrcorcHeadorcInstrumentsCsdcsdFlagscsdOrccsdSco csdPluginsintInstralwaysOn csdEventStart csdEventDurcsdEventContentcsdEventTotalDurPrettyE PrettyShowEvcatSep ppCsdFileppNotesppGenppInstrppStmt ppTotalDurppE$fShowPrettyShowE $fShowPrettyE renderInstrrenderInstrBody RenderOptionsinferenceOptions renderCsd$fDefaultRenderOptions$fEqRenderOptions$fOrdRenderOptions$fShowRenderOptions$fReadRenderOptionswhen1whens ifElseBlock untilBlock whileBlockwhileRefwhileEndifExp $fOrdBFix$fEqBFix $fBooleanFixghc-prim GHC.TypesIOInferEnv envTypeMapenvConversionsenvLastFreshId envResultenvPrimspreferControlOpcodespreferAudioOpcodes programHasIfs inferTypesdestructiveConversion convertIf ignoreHash defineVarfreshVarfreshIdInferenceResult typedProgramprogramLastFreshIdStmtstmtLhsstmtRhsvarIdlivenessEnvCollect traverseDag isInitExpr collectIterisEndcollectIfBlocksunfoldMultiOutsSelectorselectorParent selectorOrder