PetesDSPMods9/12/03.kymKYM0KYMA€Ó³»ü[d»ü[emBIN‚�…BOSS 980000 ÀÂãã´SoundCollectionPointi»objectRepresented:location:lastViewRectangle:lastIconStyle:ÀÂãã¯SoundCollectiona¬name:sounds:“SoundCollection6612ÀÂãä±OrderedCollectionab€jÀÂããªSoundPointa»objectRepresented:location:ÀÀÂãã´AbstractedSoundClassm¾name:structureSound:icon:smallIcon:parameterSpecifications:classDescription:shouldExpandFirst:…BLANKÀÂãã­ConstantSoundn«name:value:ŠConstant68`ÀÂãä«Depth1Imageah€ÀÂãä©ByteArraya`€```aaÀÂãä±KymaMappedPaletteaf€äÀÂãä©WordArraya`€l{~{~{~gygygyâÀÂãä¥Arraya`€ddddfbaadÀ=À!`ppaa$adÀ-aÀÂãã¶ParameterSpecificationu¬name:typeName:viewType:rectangle:helpString:¤name77ÀÂãä©Rectangleab€ÀÂãä¥Pointab€åaaåx mÀ=aa€žThis class has no description.ãˆLOGIC GATES AND LATCHES ----------------À=r zÀ.À2ÀÂãã©FatStringq¸string:extraInformation:žMATHS ------------------------ÀÂãä¶FastIdentityDictionaryad€aÀÂãä«Associationab€±soundEditorLayoutâÀ=wxÀ.À2€ DELAYS ------------------------À=z|À.À2�FILTERS ---------------------À= v|À.ÀÀ3�MultiTapDelayÀÂãã´DSPProgramWithInputslºname:inputs:initialValuesCodeString:programName:wavetable:tableAccess:tableStart:tableEnd:À(‘MultiTapDelay ???À-cÀ14À-bÀÂãã­VariableSoundn¥name:…Input`À1¶soundEditorBoundingBoxÀ9À=hxÀ=r|À1©vcsLayoutÀÂãã®SoundVCSLayouto¿firstTime:windowOrigin:windowExtent:components:selectedPreset:look:name:selectedLayout:subLayouts:editorOrigin:addedSubLayouts:äÀ=jaÀ=ckÀ*`§DefaultÀÂãã¨KymaLooku½nameOrNil:superLook:database:âÀ ¥WaldoÀ §ClassicâÀ-qÀ1»cursorLoopFwdBkwdPlayDown19ÀÂãä¬BlockClosureac€ÀÂãä­CompiledBlockbb€bÀ!h0ËÍ!eÀÂãä®CompiledMethodbc€vÀ!b4hDÿ‚iDÿ„iDÿ†iDÿˆiDÿ ŠiDÿ ŒiDÿ ŽiDÿñ0iDÿñ2iDÿñ4iDÿñ6iDÿñ8iDÿñ:iDÿñiDÿü iDÿ!ü"iDÿ#ü$iDÿ%ü&iDÿ'ü(iDÿ)ü*iDÿ+ü,iDÿ-ü.iDÿ/ü0iDÿ1ü2iDÿ3ü4iDÿ5ü6iDÿ7ü8iDÿ9ü:iDÿ;üiDÿ?ü@iDÿAüBiDÿCüDiDÿEüFiDÿGüHiDÿIüJiDÿKüLiDÿMüNiDÿOüPiDÿQüRiDÿSüTiDÿUüViDÿWüXiDÿYüZiDÿ[ü\iDÿ]ü^iDÿ_ü`iDÿaübiDÿcüdiDÿeüfiDÿgühiDÿiüjiDÿküliDÿmüniDÿoüpiDÿqüriDÿsütiDÿuüviDÿwüxiDÿyüziDÿ{ü|iDÿ}ü~iDÿü€iDÿ�ü‚iDÿƒü„iDÿ…ü†iDÿ‡üˆiDÿ‰üŠiDÿ‹üŒiDÿ�üŽiDÿ�ü�iDÿ‘ü’iDÿ“ü”iDÿ•ü–iDÿ—ü˜iDÿ™üšiDÿ›üœiDÿ�üžiDÿŸü iDÿ¡ü¢iDÿ£ü¤iDÿ¥ü¦iDÿ§ü¨iDÿ©üªiDÿ«ü¬iDÿ­ü®iDÿ¯ü°iDÿ±ü²iDÿ³ü´iDÿµü¶iDÿ·ü¸iDÿ¹üºiDÿ»ü¼iDÿ½ü¾iDÿ¿üÀiDÿÁüÂiDÿÃüÄiDÿÅüÆiDÿÇüÈiDÿÉüÊiDÿËüÌiDÿÍüÎiDÿÏüÐiDÿÑüÒiDÿÓüÔiDÿÕüÖiDÿ×üØiDÿÙüÚiDÿÛüÜiDÿÝüÞiDÿßüàiDÿáüâiDÿãüäiDÿåüæiDÿçüèiDÿéüêiDÿëüìiDÿíüîiDÿïüðiDÿñüòjDÿóüôEóõEeÃãã!u"uÀ1©BasicLook%À/bÀ!h0ËÍ!e3•buttons\pauseUp19.gif¨readGIF:²tlPauseButtonUp19:À/bÀ!h0ËÍ!e3—buttons\pauseDown19.gif>´tlPauseButtonDown19:À/bÀ!h0ËÍ!e3”buttons\playUp19.gif>±tlPlayButtonUp19:À/bÀ!h0ËÍ!e3–buttons\playDown19.gif>³tlPlayButtonDown19:À/bÀ!h0ËÍ!e3šbuttons\prevMarkerUp19.gif>±tlPrevMarkerUp19:À/bÀ!h0ËÍ!e3œbuttons\prevMarkerDown19.gif>³tlPrevMarkerDown19:À/bÀ!h0ËÍ!e3šbuttons\nextMarkerUp19.gif>±tlNextMarkerUp19:À/bÀ!h0ËÍ!e3œbuttons\nextMarkerDown19.gif>³tlNextMarkerDown19:À/bÀ!h0ËÍ!e3˜buttons\prevTimeUp19.gif>¯tlPrevTimeUp19:À/bÀ!h0ËÍ!e3šbuttons\prevTimeDown19.gif>±tlPrevTimeDown19:À/bÀ!h0ËÍ!e3˜buttons\nextTimeUp19.gif>¯tlNextTimeUp19:À/bÀ!h0ËÍ!e3šbuttons\nextTimeDown19.gif>±tlNextTimeDown19:À/bÀ!h0ËÍ!e3™buttons\newMarkerUp19.gif>°tlNewMarkerUp19:À/bÀ!h0ËÍ!e3›buttons\newMarkerDown19.gif>²tlNewMarkerDown19:À/bÀ!h0ËÍ!e3šbuttons\newMarkersUp19.gif>±tlNewMarkersUp19:À/bÀ!h0ËÍ!e3œbuttons\newMarkersDown19.gif>³tlNewMarkersDown19:À/bÀ!h0ËÍ!e3–buttons\anchorUp19.gif>­tlAnchorUp19:À/bÀ!h0ËÍ!e3˜buttons\anchorDown19.gif>¯tlAnchorDown19:À/bÀ!h0ËÍ!e3•buttons\blankUp19.gif>¬tlBlankUp19:À/bÀ!h0ËÍ!e3—buttons\blankDown19.gif>®tlBlankDown19:À/bÀ!h0ËÍ!e3�misc\submix.gif>­tlSubmixIcon:À/bÀ!h0ËÍ!e3�misc\outputs.gif>®tlOutputsIcon:À/bÀ!h0ËÍ!e3—misc\sourceLocation.gif>±tlSourceLocation:À/bÀ!h0ËÍ!e3Ÿmisc\microphones\microphone.gif>²tlTrackMicrophone:À/bÀ!h0ËÍ!e3€misc\microphones\microphoneG.gif>¶tlTrackMicrophonePlay:À/bÀ!h0ËÍ!e3€misc\microphones\microphoneR.gif>¸tlTrackMicrophoneRecord:À/bÀ!h0ËÍ!e3œmisc\speakers\trkSpeaker.gif>¯tlTrackSpeaker:À/bÀ!h0ËÍ!e3€misc\speakers\trkSpeakerSolo.gif>³tlTrackSpeakerSolo:À/bÀ!h0ËÍ!e3€misc\speakers\trkSpeakerMute.gif>³tlTrackSpeakerMute:À/bÀ!h0ËÍ!e3’buttons\diceUp.gif>§diceUp:À/bÀ!h0ËÍ!e3”buttons\diceDown.gif>©diceDown:À/bÀ!h0ËÍ!e3”buttons\cameraUp.gif>©cameraUp:À/bÀ!h0ËÍ!e3–buttons\cameraDown.gif>«cameraDown:À/bÀ!h0ËÍ!e3˜buttons\dropDownUp17.gif>­dropDownUp17:À/bÀ!h0ËÍ!e3—buttons\enterDown20.gif>¬enterDown20:À/bÀ!h0ËÍ!e3•buttons\enterUp20.gif>ªenterUp20:À/bÀ!h0ËÍ!e3˜buttons\enterMicDown.gif>­enterMicDown:À/bÀ!h0ËÍ!e3–buttons\enterMicUp.gif>«enterMicUp:À/bÀ!h0ËÍ!e3–buttons\playDown20.gif>«playDown20:À/bÀ!h0ËÍ!e3”buttons\playUp20.gif>©playUp20:À/bÀ!h0ËÍ!e3–buttons\stopDown20.gif>«stopDown20:À/bÀ!h0ËÍ!e3”buttons\stopUp20.gif>©stopUp20:À/bÀ!h0ËÍ!e3˜buttons\updateDown20.gif>­updateDown20:À/bÀ!h0ËÍ!e3–buttons\updateUp20.gif>«updateUp20:À/bÀ!h0ËÍ!e3šbuttons\useInputDown20.gif>¯useInputDown20:À/bÀ!h0ËÍ!e3˜buttons\useInputUp20.gif>­useInputUp20:À/bÀ!h0ËÍ!e3™buttons\expandXDown14.gif>®expandXDown14:À/bÀ!h0ËÍ!e3—buttons\expandXUp14.gif>¬expandXUp14:À/bÀ!h0ËÍ!e3™buttons\expandYDown14.gif>®expandYDown14:À/bÀ!h0ËÍ!e3—buttons\expandYUp14.gif>¬expandYUp14:À/bÀ!h0ËÍ!e3–buttons\fitXDown14.gif>«fitXDown14:À/bÀ!h0ËÍ!e3”buttons\fitXUp14.gif>©fitXUp14:À/bÀ!h0ËÍ!e3™buttons\shrinkXDown14.gif>®shrinkXDown14:À/bÀ!h0ËÍ!e3—buttons\shrinkXUp14.gif>¬shrinkXUp14:À/bÀ!h0ËÍ!e3™buttons\shrinkYDown14.gif>®shrinkYDown14:À/bÀ!h0ËÍ!e3—buttons\shrinkYUp14.gif>¬shrinkYUp14:À/bÀ!h0ËÍ!e3™buttons\expandXDown15.gif>®expandXDown15:À/bÀ!h0ËÍ!e3—buttons\expandXUp15.gif>¬expandXUp15:À/bÀ!h0ËÍ!e3™buttons\expandYDown15.gif>®expandYDown15:À/bÀ!h0ËÍ!e3—buttons\expandYUp15.gif>¬expandYUp15:À/bÀ!h0ËÍ!e3–buttons\fitXDown15.gif>«fitXDown15:À/bÀ!h0ËÍ!e3”buttons\fitXUp15.gif>©fitXUp15:À/bÀ!h0ËÍ!e3™buttons\shrinkXDown15.gif>®shrinkXDown15:À/bÀ!h0ËÍ!e3—buttons\shrinkXUp15.gif>¬shrinkXUp15:À/bÀ!h0ËÍ!e3™buttons\shrinkYDown15.gif>®shrinkYDown15:À/bÀ!h0ËÍ!e3—buttons\shrinkYUp15.gif>¬shrinkYUp15:À/bÀ!h0ËÍ!e3�buttons\makeSelectionUp19.gif>²makeSelectionUp19:À/bÀ!h0ËÍ!e3�buttons\editSelectionUp19.gif>²editSelectionUp19:À/bÀ!h0ËÍ!e3›buttons\noSelectionUp19.gif>°noSelectionUp19:À/bÀ!h0ËÍ!e3�buttons\warpSelectionUp19.gif>²warpSelectionUp19:À/bÀ!h0ËÍ!e3Ÿbuttons\makeSelectionDown19.gif>´makeSelectionDown19:À/bÀ!h0ËÍ!e3Ÿbuttons\editSelectionDown19.gif>´editSelectionDown19:À/bÀ!h0ËÍ!e3�buttons\noSelectionDown19.gif>²noSelectionDown19:À/bÀ!h0ËÍ!e3Ÿbuttons\warpSelectionDown19.gif>´warpSelectionDown19:À/bÀ!h0ËÍ!e3žbuttons\shapeRectangleUp19.gif>³shapeRectangleUp19:À/bÀ!h0ËÍ!e3œbuttons\shapeEllipseUp19.gif>±shapeEllipseUp19:À/bÀ!h0ËÍ!e3œbuttons\shapePolygonUp19.gif>±shapePolygonUp19:À/bÀ!h0ËÍ!e3šbuttons\shapeTrackUp19.gif>¯shapeTrackUp19:À/bÀ!h0ËÍ!e3€buttons\shapeRectangleDown19.gif>µshapeRectangleDown19:À/bÀ!h0ËÍ!e3žbuttons\shapeEllipseDown19.gif>³shapeEllipseDown19:À/bÀ!h0ËÍ!e3žbuttons\shapePolygonDown19.gif>³shapePolygonDown19:À/bÀ!h0ËÍ!e3œbuttons\shapeTrackDown19.gif>±shapeTrackDown19:À/bÀ!h0ËÍ!e3�buttons\combinationSingleUp19.gif>¶combinationSingleUp19:À/bÀ!h0ËÍ!e3Ÿbuttons\combinationPlusUp19.gif>´combinationPlusUp19:À/bÀ!h0ËÍ!e3€buttons\combinationTimesUp19.gif>µcombinationTimesUp19:À/bÀ!h0ËÍ!e3€buttons\combinationMinusUp19.gif>µcombinationMinusUp19:À/bÀ!h0ËÍ!e3ƒbuttons\combinationSingleDown19.gif>¸combinationSingleDown19:À/bÀ!h0ËÍ!e3�buttons\combinationPlusDown19.gif>¶combinationPlusDown19:À/bÀ!h0ËÍ!e3‚buttons\combinationTimesDown19.gif>·combinationTimesDown19:À/bÀ!h0ËÍ!e3‚buttons\combinationMinusDown19.gif>·combinationMinusDown19:À/bÀ!h0ËÍ!e3‚buttons\combinationFrontDown19.gif>·combinationFrontDown19:À/bÀ!h0ËÍ!e3€buttons\combinationFrontUp19.gif>µcombinationFrontUp19:À/bÀ!h0ËÍ!e3…buttons\cursorLoopFwdBkwdPlayUp19.gif>ºcursorLoopFwdBkwdPlayUp19:À/bÀ!h0ËÍ!e3�buttons\cursorLoopSelPlayUp19.gif>¶cursorLoopSelPlayUp19:À/bÀ!h0ËÍ!e3žbuttons\cursorLoopPlayUp19.gif>³cursorLoopPlayUp19:À/bÀ!h0ËÍ!e3€buttons\cursorNormalPlayUp19.gif>µcursorNormalPlayUp19:.¼cursorLoopFwdBkwdPlayDown19:À/bÀ!h0ËÍ!e3ƒbuttons\cursorLoopSelPlayDown19.gif>¸cursorLoopSelPlayDown19:À/bÀ!h0ËÍ!e3€buttons\cursorLoopPlayDown19.gif>µcursorLoopPlayDown19:À/bÀ!h0ËÍ!e3‚buttons\cursorNormalPlayDown19.gif>·cursorNormalPlayDown19:À/bÀ!h0ËÍ!e3™buttons\renderSOSUp19.gif>®renderSOSUp19:À/bÀ!h0ËÍ!e3›buttons\renderGrainUp19.gif>°renderGrainUp19:À/bÀ!h0ËÍ!e3�buttons\renderImpulseUp19.gif>²renderImpulseUp19:À/bÀ!h0ËÍ!e3œbuttons\renderFilterUp19.gif>±renderFilterUp19:À/bÀ!h0ËÍ!e3�buttons\renderSamplesUp19.gif>²renderSamplesUp19:À/bÀ!h0ËÍ!e3œbuttons\createModuleUp19.gif>±createModuleUp19:À/bÀ!h0ËÍ!e3›buttons\renderSOSDown19.gif>°renderSOSDown19:À/bÀ!h0ËÍ!e3�buttons\renderGrainDown19.gif>²renderGrainDown19:À/bÀ!h0ËÍ!e3Ÿbuttons\renderImpulseDown19.gif>´renderImpulseDown19:À/bÀ!h0ËÍ!e3žbuttons\renderFilterDown19.gif>³renderFilterDown19:À/bÀ!h0ËÍ!e3Ÿbuttons\renderSamplesDown19.gif>´renderSamplesDown19:À/bÀ!h0ËÍ!e3žbuttons\createModuleDown19.gif>³createModuleDown19:À/bÀ!h0ËÍ!e3—buttons\hearAllUp19.gif>¬hearAllUp19:À/bÀ!h0ËÍ!e3—buttons\hearSelUp19.gif>¬hearSelUp19:À/bÀ!h0ËÍ!e3™buttons\hearAllDown19.gif>®hearAllDown19:À/bÀ!h0ËÍ!e3™buttons\hearSelDown19.gif>®hearSelDown19:À/bÀ!h0ËÍ!e3�buttons\colorSetGrayScaleUp19.gif>¶colorSetGrayScaleUp19:À/bÀ!h0ËÍ!e3„buttons\colorSetInvGrayScaleUp19.gif>¹colorSetInvGrayScaleUp19:À/bÀ!h0ËÍ!e3Ÿbuttons\colorSetRainbowUp19.gif>´colorSetRainbowUp19:À/bÀ!h0ËÍ!e3ƒbuttons\colorSetGrayScaleDown19.gif>¸colorSetGrayScaleDown19:À/bÀ!h0ËÍ!e3†buttons\colorSetInvGrayScaleDown19.gif>»colorSetInvGrayScaleDown19:À/bÀ!h0ËÍ!e3�buttons\colorSetRainbowDown19.gif>¶colorSetRainbowDown19:¹initializeMoreIconButtons‡buttons\cursorLoopFwdBkwdPlayDown19.gif>â À1³modifySpectFreqUp19À+À/bÀ!h0ËÍ!eÀ4kÀ! t4hDÿ‚iDÿ„iDÿ†iDÿˆiDÿ ŠiDÿ ŒiDÿ ŽiDÿñ0iDÿñ2iDÿñ4iDÿñ6iDÿñ8iDÿñ:iDÿñiDÿü iDÿ!ü"iDÿ#ü$iDÿ%ü&iDÿ'ü(iDÿ)ü*iDÿ+ü,iDÿ-ü.iDÿ/ü0iDÿ1ü2iDÿ3ü4iDÿ5ü6iDÿ7ü8iDÿ9ü:iDÿ;üiDÿ?ü@iDÿAüBiDÿCüDiDÿEüFiDÿGüHiDÿIüJiDÿKüLiDÿMüNiDÿOüPiDÿQüRiDÿSüTiDÿUüViDÿWüXiDÿYüZiDÿ[ü\iDÿ]ü^iDÿ_ü`iDÿaübiDÿcüdiDÿeüfjDÿgühfÓiüjEe8 m9À/bÀ!h0ËÍ!e(™buttons\modifyAmpUp19.gif>®modifyAmpUp19:À/bÀ!h0ËÍ!e(šbuttons\modifyFreqUp19.gif>¯modifyFreqUp19:À/bÀ!h0ËÍ!e(œbuttons\modifyFreqDown19.gif>±modifyFreqDown19:À/bÀ!h0ËÍ!e(›buttons\modifyAmpDown19.gif>°modifyAmpDown19:À/bÀ!h0ËÍ!e(›buttons\modifyScaleUp19.gif>°modifyScaleUp19:À/bÀ!h0ËÍ!e(�buttons\modifyScaleDown19.gif>²modifyScaleDown19:À/bÀ!h0ËÍ!e(œbuttons\modifyOffsetUp19.gif>±modifyOffsetUp19:À/bÀ!h0ËÍ!e(žbuttons\modifyOffsetDown19.gif>³modifyOffsetDown19:À/bÀ!h0ËÍ!e(™buttons\modifySetUp19.gif>®modifySetUp19:À/bÀ!h0ËÍ!e(›buttons\modifySetDown19.gif>°modifySetDown19:À/bÀ!h0ËÍ!e(€buttons\modifyRubberbandUp19.gif>µmodifyRubberbandUp19:À/bÀ!h0ËÍ!e(žbuttons\modifyConstantUp19.gif>³modifyConstantUp19:À/bÀ!h0ËÍ!e(€buttons\modifyConstantDown19.gif>µmodifyConstantDown19:À/bÀ!h0ËÍ!e(‚buttons\modifyRubberbandDown19.gif>·modifyRubberbandDown19:À/bÀ!h0ËÍ!e(žbuttons\modifySpectAmpUp19.gif>³modifySpectAmpUp19:À/bÀ!h0ËÍ!e(€buttons\modifySpectAmpDown19.gif>µmodifySpectAmpDown19:&´modifySpectFreqUp19:À/bÀ!h0ËÍ!e(�buttons\modifySpectFreqDown19.gif>¶modifySpectFreqDown19:À/bÀ!h0ËÍ!e(€buttons\modifyWavetableXUp19.gif>µmodifyWavetableXUp19:À/bÀ!h0ËÍ!e(‚buttons\modifyWavetableXDown19.gif>·modifyWavetableXDown19:À/bÀ!h0ËÍ!e(€buttons\modifyWavetableYUp19.gif>µmodifyWavetableYUp19:À/bÀ!h0ËÍ!e(‚buttons\modifyWavetableYDown19.gif>·modifyWavetableYDown19:À/bÀ!h0ËÍ!e(œbuttons\modifyRadialUp19.gif>±modifyRadialUp19:À/bÀ!h0ËÍ!e(žbuttons\modifyRadialDown19.gif>³modifyRadialDown19:À/bÀ!h0ËÍ!e(œbuttons\modifyLinearUp19.gif>±modifyLinearUp19:À/bÀ!h0ËÍ!e(žbuttons\modifyLinearDown19.gif>³modifyLinearDown19:À/bÀ!h0ËÍ!e(›buttons\deSelectionUp19.gif>°deSelectionUp19:À/bÀ!h0ËÍ!e(�buttons\deSelectionDown19.gif>²deSelectionDown19:À/bÀ!h0ËÍ!e(�buttons\infoSelectionUp19.gif>²infoSelectionUp19:À/bÀ!h0ËÍ!e(Ÿbuttons\infoSelectionDown19.gif>´infoSelectionDown19:À/bÀ!h0ËÍ!e(�buttons\drawSelectionUp19.gif>²drawSelectionUp19:À/bÀ!h0ËÍ!e(Ÿbuttons\drawSelectionDown19.gif>´drawSelectionDown19:À/bÀ!h0ËÍ!e(�buttons\drawControlPointsUp19.gif>¶drawControlPointsUp19:À/bÀ!h0ËÍ!e(ƒbuttons\drawControlPointsDown19.gif>¸drawControlPointsDown19:À/bÀ!h0ËÍ!e(™buttons\drawMultiUp19.gif>®drawMultiUp19:À/bÀ!h0ËÍ!e(›buttons\drawMultiDown19.gif>°drawMultiDown19:À/bÀ!h0ËÍ!e(žbuttons\drawSprayPaintUp19.gif>³drawSprayPaintUp19:À/bÀ!h0ËÍ!e(€buttons\drawSprayPaintDown19.gif>µdrawSprayPaintDown19:À/bÀ!h0ËÍ!e(Ÿbuttons\drawSelfSimilarUp19.gif>´drawSelfSimilarUp19:À/bÀ!h0ËÍ!e(�buttons\drawSelfSimilarDown19.gif>¶drawSelfSimilarDown19:À/bÀ!h0ËÍ!e(šbuttons\drawEraserUp19.gif>¯drawEraserUp19:À/bÀ!h0ËÍ!e(œbuttons\drawEraserDown19.gif>±drawEraserDown19:À/bÀ!h0ËÍ!e(œbuttons\hiddenLogLinUp19.gif>±hiddenLogLinUp19:À/bÀ!h0ËÍ!e(žbuttons\hiddenLogLinDown19.gif>³hiddenLogLinDown19:À/bÀ!h0ËÍ!e(˜buttons\joinDotsUp19.gif>­joinDotsUp19:À/bÀ!h0ËÍ!e(šbuttons\joinDotsDown19.gif>¯joinDotsDown19:À/bÀ!h0ËÍ!e(‚buttons\shapeFrameIntervalUp19.gif>·shapeFrameIntervalUp19:À/bÀ!h0ËÍ!e(„buttons\shapeFrameIntervalDown19.gif>¹shapeFrameIntervalDown19:À/bÀ!h0ËÍ!e(˜buttons\jitterLabel9.gif>­jitterLabel9:À/bÀ!h0ËÍ!e(›buttons\recursionLabel9.gif>°recursionLabel9:À/bÀ!h0ËÍ!e(›buttons\smoothingLabel9.gif>°smoothingLabel9:À/bÀ!h0ËÍ!e(™buttons\scalingLabel9.gif>®scalingLabel9:Ä!¨zapCacheŸbuttons\modifySpectFreqUp19.gif>â À1±tlTrackMicrophoneÀ+8â À1­hearAllDown19À+!â À1°modifyRadialUp19À+?â À1¯recursionLabel9À++â À1´drawSprayPaintDown19À+;â À1³tlPauseButtonDown19À+ â À1­tlBlankDown19À+(â À1«shrinkXUp15À+ 8â À1±renderGrainDown19À+%â À1²shapePolygonDown19À+<â À1ªenterMicUpÀ+ 0â À1®drawEraserUp19À+'â À1­tlOutputsIconÀ+0â À1³infoSelectionDown19À+;â À1²tlTrackSpeakerSoloÀ+(â À1´modifyConstantDown19À+:â À1¬updateDown20À+ $â À1´combinationMinusUp19À+0â À1¶modifyRubberbandDown19À+>â À1¹cursorLoopFwdBkwdPlayUp19À+,â À1¶modifyWavetableXDown19À+3â À1«hearAllUp19À+9â À1¯renderGrainUp19À+-â À1²tlNextMarkerDown19À+8â À1ªupdateUp20À+ (â À1°shapePolygonUp19À+,â À1®tlTrackSpeakerÀ+$â À1¬joinDotsUp19À+7â À1±infoSelectionUp19À+7â À1²modifyConstantUp19À+6â À1³drawSelfSimilarUp19À+?â À1°drawEraserDown19À++â À1µcombinationPlusDown19À+8â À1´modifyRubberbandUp19À+2â À1´cursorLoopPlayDown19À+!â À1ªfitXDown15À+ ,â À1´modifyWavetableXUp19À+/â À1­hearSelDown19À+%â À1³renderImpulseDown19À+)â À1«expandXUp14À+ 8â À1´shapeRectangleDown19À+4â À1ªstopDown20À+ <â À1°modifyFreqDown19À+2â À1¬tlAnchorUp19À+<â À1¬tlSubmixIconÀ+,â À1«expandXUp15À+ â À1³combinationPlusUp19À+(â À1±modifyScaleDown19À+>â À1²cursorLoopPlayUp19À+4â À1«shrinkYUp14À+ 8â À1¶modifyWavetableYDown19À+;â À1µdrawSelfSimilarDown19À+#â À1«hearSelUp19À+=â À1¨cameraUpÀ+8â À1°tlPrevMarkerUp19À+,â À1­expandYDown14À+ <â À1±renderImpulseUp19À+1â À1­shrinkYDown15À+ <â À1µdrawControlPointsUp19À+'â À1®joinDotsDown19À+;â À1²shapeRectangleUp19À+$â À1§speakerÀ+À/bÀ!h0ËÍ!eÀ4aÀ!|DFÍ!ßf4hƒiDÿ…i4"‡ˆj4%‡ŠEÍ f(Ó ¼ßfÓ h4±i*DͱiÒDͱiÒDͱiÒDͱiÒDͱiÒDͱjÒDͱfÒÓ Ò°ßfÒGßEÍÒ»EÍÒ »Ee8a9¯inheritingFrom:&.4¨speaker:À-jÀ1¦familyÀ-c†Geneva…arial�*À1©pixelSizenÀ1§leadingáaÀ1¨baselinejÀ1¨lineGridmÀ1¦italicäÀ1¨boldnesså`aÀ1©underlineäÀ1¥colorâÀ1©alignment`´synthesizeTextStyle:»fileOrganizerListTextStyle:À-kÀ1<À-c†Geneva…arial�*À1"lÀ1$áaÀ1&iÀ1(lÀ1*äÀ1,åaaÀ1.äÀ10âÀ12`À1©fixedTabs`·fileOrganizerTextStyle:µinitializeButtonIconsÀ1ªKnownLooksÀ-hÀ1©ChampaignÀ ,%À-`À1¤WienÀ 0%À-`À1ªLosAngelesÀ 4%À-`À1&%À1«AlbuquerqueÀ 9%À-`À1$#À1§NewYorkÀ >%À-`À1¦LondonÀ "%À-`Ä.9±createAlbuquerque,¯createChampaign"¬createLondon4°createLosAngeles>­createNewYork$«createWaldo0ªcreateWienÀ1ªActiveLook#À1¶LastInstalledOnWindowsä¬allInstancesÀ+À/dÀ!~4p®Äpp­kHè5prðMÇ5pr°ƒebb6©superLook(©nameOrNil°changeSuperLook:âÀ-`À+À/dÀ!g4p®è pp®Åppp­kHkHè5prðMÇ5pr°ƒebb65(67â8™misc\speakers\speaker.gif>â À1¬dropDownUp17À+ â À1·colorSetGrayScaleDown19À+5â À1®modifyFreqUp19À+.â À1¨fitXUp14À+ (â À1·combinationSingleDown19À+4â À1«tlBlankUp19À+$â À1°tlNewMarkersUp19À+4â À1¯modifyScaleUp19À+:â À1·cursorLoopSelPlayDown19À+=â À1´modifyWavetableYUp19À+7â À1·tlTrackMicrophoneRecordÀ+ â À1³makeSelectionDown19À+ 4â À1°tlPlayButtonUp19À+$â À1³renderSamplesDown19À+1â À1¯smoothingLabel9À+/â À1©enterUp20À+ (â À1°shapeTrackDown19À+ â À1¬jitterLabel9À+'â À1­drawMultiUp19À+/â À1­shrinkXDown14À+ ,â À1·drawControlPointsDown19À++â À1µcolorSetGrayScaleUp19À+)â À1²modifyLinearDown19À++â À1ªcameraDownÀ+<â À1µcombinationSingleUp19À+$â À1¯modifySetDown19À+.â À1µcursorLoopSelPlayUp19À+0â À1¶fileOrganizerTextStyleÀÂãä¯KTextAttributesbj€li````À-allÀÂãä³CharacterAttributesab€ÀÂãä²IdentityDictionaryab€kÀ1¥serifÀ+À/btÀ4vÀ!DÎLÿ±Vÿ±V !±V"#±V$%±V&'±V()±V*+±VÒÒ±VÒÒ±VÒÒ±VeÃãä7ab€ `¥smallÀ/cÀ!i4Ëpq‚e!«defaultFont"ªpixelSize:¥largeÀ/cÀ!j5ËpqMØ¢ÅK MäØ$¢ÆØ MäØ¨Ø©M‚e!(")>?©sansSerifÀ+À/bt!¦serif: `â8¦normalÀ+À/cÀ!i4h�jH‚e!åaa©boldness:§italic:â8¤boldÀ+À/ct!åx  s5 `â8*À+À/bt!6 `â8.À+À/bt!ªunderline: `â8©strikeoutÀ+À/bt!ªstrikeout: `â80À+À/bx!¦color: `â8<À+À/bx!§family: `â80 `â8À112À1*À++â5À1.<À178À1*:À1%À+&â5À10#À1<&À1-.À1? ÀÂãä¯FontDescriptionah€â7âiuoââãÀ1¨fitXUp15À+ 0â À1±makeSelectionUp19À+ $â À1±renderSamplesUp19À+9â À1²tlPrevMarkerDown19À+0â À1°tlNextTimeDown19À+(â À1®shapeTrackUp19À+0â À1®tlPrevTimeUp19À+<â À1ºcolorSetInvGrayScaleDown19À+9â À1°modifyLinearUp19À+'â À1±tlNewMarkerDown19À+0â À1¶shapeFrameIntervalUp19À+?â À1¶combinationTimesDown19À+<â À1­expandYDown15À+ $â À1¨diceDownÀ+4â À1­modifySetUp19À+*â À1¬useInputUp20À+ 0â À1¶cursorNormalPlayDown19À+%â À1¯drawMultiDown19À+3â À1°hiddenLogLinUp19À+/â À1±tlPauseButtonUp19À+;â À1±noSelectionDown19À+ <â À1¯renderSOSDown19À+!â À1­expandXDown14À+ 4â À1«shrinkYUp15À+ â À1³warpSelectionDown19À+ â À1´combinationFrontUp19À+(â À1²tlTrackSpeakerMuteÀ+,â À1ªplayDown20À+ 4â À1±deSelectionDown19À+3â À1¸colorSetInvGrayScaleUp19À+-â À1²modifyOffsetDown19À+&â À1°tlSourceLocationÀ+4â À1¬enterMicDownÀ+ ,â À1®useInputDown20À+ ,â À1´combinationTimesUp19À+,â À1´modifySpectAmpDown19À+&â À1´cursorNormalPlayUp19À+8â À1®tlAnchorDown19À+ â À1­shrinkYDown14À+ 4â À1¯noSelectionUp19À+ ,â À1«expandYUp14À+ â À1°tlNextMarkerUp19À+4â À1­shrinkXDown15À+ 4â À1­renderSOSUp19À+)â À1²hiddenLogLinDown19À+3â À1¸shapeFrameIntervalDown19À+#â À1±warpSelectionUp19À+ 0â À1¨stopUp20À+ â À1¯deSelectionUp19À+/â À1µcolorSetRainbowDown19À+=â À1°modifyOffsetUp19À+"â À1²createModuleDown19À+5â À1«shrinkXUp14À+ 0â À1²tlNewMarkersDown19À+8â À1¶combinationFrontDown19À+$â À1³editSelectionDown19À+ 8â À1²modifySpectAmpUp19À+"â À1µtlTrackMicrophonePlayÀ+<â À1ºfileOrganizerListTextStyleÀ1mj````ÀÂãä¨Intervalac€xhxxÀ6À:kÀ1>?À112À1*À++â.À1.<À178À1*:À1%À+&â.À10#À1<&À1-.À1? À6â=âjzoâââÀ1²renderFilterDown19À+-â À1²shapeEllipseDown19À+8â À1³drawSelectionDown19À+#â À1¯modifyAmpDown19À+6â À1­scalingLabel9À+3â À1³colorSetRainbowUp19À+1â À1²modifyRadialDown19À+#â À1²drawSprayPaintUp19À+7â À1°createModuleUp19À+=â À1«expandYUp15À+ (â À1µmodifySpectFreqDown19À++â À1±editSelectionUp19À+ (â À1°renderFilterUp19À+5â À1²tlPlayButtonDown19À+(â À1¨playUp20À+ 8â À1°shapeEllipseUp19À+(â À1®tlNextTimeUp19À+$â À1±drawSelectionUp19À+?â À1­modifyAmpUp19À+*â À1°tlPrevTimeDown19À+ â À1ªfitXDown14À+ $â À1¶combinationMinusDown19À+ â À1«enterDown20À+ $â À1¯tlNewMarkerUp19À+,â À1¦diceUpÀ+0â À1­expandXDown15À+ <â À-mÀ1±verticalFaderKnobÀ+À/bÀ!h0ËÍ!eÀ4dÀ!l€ D4Í!LhƒiDÿ…iDÿ‡iiÒü ü!jÒ"ü ü#Ve8u98$.À/cÀ!i0ËÍ!re2„backgrounds\stone\smoothDarkGray.gif>©asPattern¯lookBackground:À/cÀ!i0ËÍ!re2€backgrounds\stone\smoothGray.gif>7®dagBackground:Ä«SimpleTrackĪColorValue¬width:color:¬faderBorder:0²verticalFaderKnob:ĨKymaKnob˜faders\rotaryTrack20.gif>¶convertToSystemPalette£red¢extent:knobImage:minimumAngle:maximumAngle:wedgeStart:wedgeEnd:wedgeAngle:wedgeInside:wedgeBorder:°rotaryFaderKnob:šfaders\circularTrack20.gif²circularFaderKnob:À/cÀ!i0ËÍ!re2€backgrounds\stone\smoothBlue.gif>7®vcsBackground:À-cÀ-bÀÂãä ac€```cÀ-bÀ4``bÀ-bÀ4b«vcsBorders:³vcsScopeBackground:³vcsScopeForeground:¤cyan²vcsScopeInfoColor:À-jÀ1<À-b�comic sans ms�*À1"pÀ1$ábÀ1&jÀ1(nÀ1*äÀ1,å`aÀ1.äÀ10âÀ12`3²vcsLabelTextStyle:À-jÀ1<À-b�comic sans ms�*À1"pÀ1$ábÀ1&jÀ1(nÀ1*äÀ1,åaaÀ1.äÀ10âÀ12`­vcsTextStyle:šfaders\faderRightWaldo.gif>â À1±circularFaderKnobÀÂãä%al€À=b`ÀÂãä«OpaqueImagead€ÀÂãä¬Depth24Imageah€À!p¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸ttxxÀÂãä¬FixedPaletteaf€cks|À=À!püÿ€<À8Àpàpà````````pàpà8À<À€ÿüttaaÀÂãä¯CoveragePaletteaa€aadââå``å`acnès c73À-dÀ=``À=``À=``8ââÀ1¯rotaryFaderKnobÀ!À=b`À%À)À!p¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸€€€¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸ttxx-|À=À!püÿ€<À8Àpàpà````````pàpà8À<À€ttaa3adââåcaåcgcnès c73À-dÀ=``À=``À=``%ââÀ1±vcsLabelTextStyleÀ1nj````À+xhxxÀ6À:kÀ1>?À112À1*À++â,À1.<À178À1*:À1%À+&â,À10#À1<&À1-.À1? À6â!âlzoâââÀ1®lookBackgroundÀ+4â À1±vcsScopeInfoColorÀ4`À1¬vcsTextStyleÀ1nj````À+xhxxÀ6À:kÀ1>?À112À1*À++â&À1.<À178À1*:À1%À+&â&À10#À1<&À1-.À1? À6â0âluoâââÀ1²vcsScopeBackground3À1«faderBorderÀÂãä>ab€b3À1ªvcsBorders1À1­dagBackgroundÀ+9â À1­vcsBackgroundÀ+-â À1²vcsScopeForeground7À-`ŠStepWriterâÀ-`À=uaÀ-`À*a+ÀÂãã®KymaCodeString p°string:bindings:�| maxAmp SR MaxSamp StartSamp Delays Levels NoOfTaps IntDelay FracDelay Levela Levelb TapLev TapDel IterDelay IterLevel FBDel FBLev | SR :=SignalProcessor sampleRate. "Samps:=(?Rate removeUnits*SignalProcessor sampleRate)." TapLev:= ?TapLevelScale. TapDel:=?TapDelayScale. Delays := ?Delays. "# ( {!Delay1 ms} {!Delay2 s} {!Delay3 s} {!Delay4 s} {!Delay5 s} {!Delay6 s} {!Delay7 s} {!Delay8 s} )." Levels := ?Levels. "#( {!Level1} {!Level2} {!Level3} {!Level4} {!Level5} {!Level6} {!Level7} {!Level8} )." NoOfTaps := ((Delays size) vmin: (Levels size)) vmin: 50. maxAmp := SignalProcessor maximumAmplitude. MaxSamp:= ((?MaxDelay s removeUnits)*SR) rounded. StartSamp:=self tableAddress. "ExtraSamp:=StartSamp+MaxSamp+0. DeadSamp:=StartSamp+MaxSamp+1." FBDel := ((?FBTapDelay s removeUnits) *SR)*TapDel. FBLev:= (MaxSamp gt: FBDel) true: (?FeedbackFBTap*maxAmp) false: 0. self initialValueAt: 0 xPut: MaxSamp yPut: 0. self initialValueAt: 1 xPut:StartSamp yPut: 0. self initialValueAt: 2 xPut: (?FeedbackLastSamp *maxAmp) yPut: (?FeedbackOutPut *maxAmp) . self initialValueAt: 3 xPut: FBLev yPut: NoOfTaps+1 . self initialValueAt: 5 xPut: 0 yPut: 0 . self initialValueAt: (((NoOfTaps+1)*2)+2) xPut: (MaxSamp-(FBDel+1)) yPut: 0 . self initialValueAt: (((NoOfTaps+1)*2)+4 ) xPut: 0 yPut: ?DryLevel*maxAmp . 1 to: NoOfTaps do: [ :i | IterDelay:= ( (Delays at:i) s removeUnits *SR) * TapDel . IterLevel := (Levels at:i). IterLevel := (MaxSamp gt: IterDelay) true: IterLevel false: 0 . IntDelay := IterDelay truncated. FracDelay:= IterDelay-IntDelay. Levela:=((( IterLevel )*maxAmp)*FracDelay)*TapLev. Levelb:=(( IterLevel)*maxAmp)*(1-FracDelay)*TapLev. self initialValueAt: (2+(i*2)) xPut: (MaxSamp-(IntDelay+1)) yPut: 0 . self initialValueAt: (5+(i*2)) xPut:Levela yPut: Levelb . ] ÀÂãä«BindingListad€`�MultiTapDelayÀÂãã¬LazyVariablea.‰WaveTable©readWrite`ÀÂãã¯LazyMessageSenda±receiver:message:À=À=À=À=À8ˆMaxDelayÀÂãä§Messageab€¡sÀ-`À'¤sampÀ-`À'«removeUnitsÀ-`À'§roundedÀ-`À'¡+À-aaÀ=À!`Oþ@F`Iÿ�8À ?ä'ùà§ù Ù& °ù=0�'ð"°"˜aâ ×›¬> šá€3D“âÿ&˜<0 GàI@I@I@``aa$adÀ=À!`€@ü‚þ2¨géL+YÿsR>CWÁ*€Uppaa$adÀ-mÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4©WaveTable©wavetable¨fileNameÀ9À=åx må``À=aåy  s“This is the name of the wavetable that the module uses. It can be made the same as other ram dependant module such thay the same ram can be shared.À4¦Delays¨hotArray¥arrayÀ9À=åymåx sÀ=åaaåwm �This is a list of the delay times for up to 50 taps. All the delays times here are multiplied internaly by the "TapDelayScale" value so that all the delays can be adjusted as a groop. The delays are interpolated but are not smoothed so changing these values will cause clicks at the output. Note: if any delay tap (after being adjusted by the "TapDelayScale") amounts to a delay of greater than "MaxDelay-1 sample", its output will be muted. À4¦Levels,-À9À=åymå``À=åaaåy m ˜This is a list of up to 50 levels one for each tap. They are all multi[plied by the "TapLevelScale" so that it can be used as a groop level control. It adjusts the level of the taps and not the level of the input. This means that the input can be recorded onto the ram at full scale and the "TapLevelScale" can be used to attenuate the taps outputs to avoid distortion or clipping. Note : a tap will be muted if its delay time is too long.À4¥input¥sound:À9À=å``å``À=åymåw s•Only the left channel is used and the output is mono.À4¨MaxDelay¤time¥valueÀ9À=åx  så``À=åx måy  s †This determins the size of the ram that the delay uses. It must be at least one sample longer than any taps maximum delay duration. If you are using this module with other ram readers/writers that share the same ram , you will probably want to make this field contain the same size or duration.À4­TapDelayScale¨hotValue"À9À=åaaåx sÀ=åw såwmŽThis is a master tap delay control. If the value is 1 then all the delays will be as shown. This value can be greater or less than one but if it causes the resulting delay of any tap to be greater than "MaxDelay"- 1 sample , it will cause that tap to be muted. If zero is placed in this field , all the taps will have no delay and will be in sinc and will become additive. This will probably overload the output. If this module was used to produce the Early Reflections in a reveb, this value would control the rooms size.À4¨DryLevel)"À9À=å``åw sÀ=åymåwm’This will control how much of the input signal gets routed to the output no delay.À4®FeedbackOutPut)"À9À=åx måwmÀ=åx såxm–This controls the amount of output signal feedback into the input. Unlike feedback on a single delayline ,this will explode at a level much much lower than 1. This is because all the taps will add there own bit of amplification to the feedback loop. Miss use of this control will cause the module to output just DC and no signal at all. Even if it is set to a level below the point of explosion any adjustment of the tap levels, TapLevelScale or the other two feedback types, can take it over the top.À4­TapLevelScale)"À9À=åaaå``À=åw såy mœThis is a master tap level control. If the value is 1 then all the levels will be as shown. This value can be greater or less than one but the maximum level any tap can produce is one. À4°FeedbackLastSamp)"À9À=åx måw sÀ=åx såwm …This controls how much signal is feedback to the input from the last sample (longest posiable delay). It is a fixed delay while the sound is playing and will not be influenced by the "TapDelayScale" value. Care should be taken if used at the same time as the modlues other two types of feedback as explotion is quite likely..À4­FeedbackFBTap)"À9À=åx måx sÀ=åx såw s ›This adjusts the level of feedback of a special delay tap "FBTap" which is used for feedback only. Its delay can be adjusted by using the "FBTapDelay" field. The FBTap itself is not heard directly at the output but instead through the other tapsafter being feedback. The feedback level is not infuenced by the "TapLevelScale" control. Care must be taken when used with the modules two other types of feedback.À4ªFBTapDelay§hotTime"À9À=åw såx sÀ=åbcåwm—This is the delay time of a special independant delay tap called the"FBTap". It is there for feedback and nothing else as it doesn't have an output level. This delay time is influenced by the "TapDelayScale" control and will change proportionally. šThis module is a single cycleing delay ram with a maximum of 50 indepedantly adjustable Taps , and one extra adjustable tap for feedback only. The taps are interpolated such that delays of part samples should work but delay variations are not smoothed so that clicks will appear while the taps are being altered. This can be used to produce the Early Reflections in a reverb system. PeteJohnstonsDSPMods Ver 5ãÀ(�MultiTapDelayÀ-bÀ14À-bÀÂãã­GenericSourcen¤name:source:leftChannel:rightChannel:sample:autoloop:trigger:attackTime:releaseTime:scale:frequency:™GenericSource Mono Sample£RAMãä…MSDOSãaÀÂãä­TimeInSamplesaa€aÀÂãä­TimeInSecondsaa€å{ mç!INPUTÀÂãä°FrequencyInHertzaa€``À16À8äÀ=klÀ=u|À*tÀÂãã·VCSEventSourceComponenta»microsound:layout:label:look:concreteEvent:displayType:presets:id:minimum:maximum:grid:taper:noDice:showNumber:isGenerated:âÀÂãä«LayoutFrameah€````a`l`…aTap1À â#À-`ÀÂãä­ConcreteEventds€â¥aTap1`aâ¦lineara¥faderâaaäæaTap1ãiÀ-m````````````}åaaè`aâ¥FaderÀ-aÀ1>èaai`a`"äãäÀ3âÀ7a```b`l`…atap2;À>â¥atap2`aâ"a#âaaäæatap2ãkÀ-mllllllllllll}åaaè`aâ&À-aÀ1>èaak`a`"äãäÀ3âÀ7b``` d`l`…atap3;À>â¥atap3`aâ"a#âaaäæatap3ãmÀ-mxxxxxxxxxxxx}åaaè`aâ&À-aÀ1>èaam`a`"äãäÀ3âÀ7 d``` e`l`…atap4;À>â¥atap4`aâ"a#âaaäæatap4ãoÀ-mdddddddddddd }åaaè`aâ&À-aÀ1>èaao`a`"äãäÀ3âÀ7 e```f`l`…atap5;À>â¥atap5`aâ"a#âaaäæatap5ãqÀ-mpppppppppppp }åaaè`aâ&À-aÀ1>èaaq`a`"äãäÀ3âÀ7f```g`l`…atap6;À>â¥atap6`aâ"a#âaaäæatap6ãsÀ-m|||||||||||| }åaaè`aâ&À-aÀ1>èaas`a`"äãäÀ3âÀ7``l`a`x`…bDel1;À>â¥bDel1`aâ"a#âaaäæbDel1ãgÀ-mttttttttttttmåaaè`aâ&À-aÀ1>èwgg`b`"äãäÀ3âÀ7a`l`b`x`…bDel2;À>â¥bDel2`aâ"a#âaaäæbDel2ãjÀ-mffffffffffffsåaaè`aâ&À-aÀ1>èvgj`b`"äãäÀ3âÀ7b`l` d`x`…bDel3;À>â¥bDel3`aâ"a#âaaäæbDel3ãlÀ-mrrrrrrrrrrrrsåaaè`aâ&À-aÀ1>èvgl`b`"äãäÀ3âÀ7 d`l` e`x`…bDel4;À>â¥bDel4`aâ"a#âaaäæbDel4ãnÀ-m~~~~~~~~~~~~ såaaè`aâ&À-aÀ1>èugn`b`"äãäÀ3âÀ7 e`l`f`x`…bDel5;À>â¥bDel5`aâ"a#âaaäæbDel5ãpÀ-mjjjjjjjjjjjj såaaè`aâ&À-aÀ1>èw}p`b`"äãäÀ3âÀ7f`l`g`x`…bDel6;À>â¥bDel6`aâ"a#âaaäæbDel6ãrÀ-mvvvvvvvvvvvv såaaè`aâ&À-aÀ1>èv ur`b`"äãäÀ3âÀ7``x`a` d`‰DrySignal;À>â©DrySignal`aâ"a#âaaäæ DrySignalãfÀ-mnnnnnnnnnnnneåaaè`aâ&À-aÀ1>èw {f`a`"äãäÀ3âÀ7a`x`b` d`‹FeedbackDel;À>â«FeedbackDel`aâ"a#âaaäæ FeedbackDelãdÀ-mbbbbbbbbbbbboåaaè`aâ&À-aÀ1>èx sd`a`"äãäÀ3âÀ7b`x` d` d`�FeedbackLastSamp;À>â!`aâ"a#âaaäæFeedbackLastSampãaÀ-mppppppppppppyåaaè`aâ&À-aÀ1>è``a`a`"äãäÀ3âÀ7 d`x` e` d`ŽFeedbackOutPut;À>â5`aâ"a#âaaäæFeedbackOutPutãbÀ-mvvvvvvvvvvvvaåaaè`aâ&À-aÀ1>è``b`a`"äãäÀ3âÀ7 e`x`f` d`‹FeedbackTap;À>â«FeedbackTap`aâ"a#âaaäæ FeedbackTapãeÀ-mhhhhhhhhhhhhuåaaè`aâ&À-aÀ1>è``e`a`"äãäÀ3âÀ7f`x`g` d`ŠGroupDelay;À>âªGroupDelay`aâ"a#âaaäæ GroupDelayãcÀ-m||||||||||||iåaaè`aâ&À-aÀ1>è`ac`b`"äãäÀ3âÀ7`` d`a`p`ŠGroupLevel;À>âªGroupLevel`aâ"a#âaaäæ GroupLevelãhÀ-mzzzzzzzzzzzzwåaaè`aâ&À-aÀ1>èvah`a`"äãäÀ3âÀ7a` d`b`p`…Input;À>â¥Input`aâ"a#âaaäæInputãtÀ-mbbbbbbbbbbbb |åaaè`aâ&À-aÀ1>èx ct`a`"äãä>;�MultiTapDelayâÀ-`À=s{À-`„fredçE#({!bDel1 s} {!bDel2 s} {!bDel3 s} {!bDel4 s} {!bDel5 s} {!bDel6 s} )ç,#(!aTap1 !atap2 !atap3 !atap4 !atap5 !atap6)9À%b<1ç!FeedbackOutput%"3ÀÂããµHotAndLazyMessageSenda?:À'*À-`À=toÀ.ÀÀ3‹RCLwithGainÀ#À(ˆRCL48???À-cÀ14À-bÀ,…Input`À11À9À=v bÀ=~wÀ16À8äÀ=sdÀ=tlÀ*aÀ3âÀ7`è`````èca`a„GainÀ â#À-`À>â¤Gain`aâ"a#âaaäæGainãdÀ-mbbbbbbbbbbbbnaè`aâ&À-bÀ1©OscilatoraÀ1>adèva``£logäãä!9‹RCLwithGainâÀ-`À=odÀ-`À*a+À.€| maxAmp Rfactor Lfactor Cfactor LastV LastI IntGain FracGain | maxAmp := SignalProcessor maximumAmplitude. Rfactor := ((1/?Resistance)*maxAmp) rounded. Lfactor := ((1/(SignalProcessor sampleRate*?Inductance))*maxAmp) rounded. Cfactor := (1/(SignalProcessor sampleRate*?Capacitance)*maxAmp) rounded. LastV := 0. LastI := 0. IntGain := ?Gain truncated. FracGain := (?Gain-IntGain)*maxAmp. self initialValueAt: 0 xPut: Cfactor yPut: Rfactor. self initialValueAt: 1 xPut: LastV yPut: LastV. self initialValueAt: 2 xPut: Lfactor yPut: IntGain. self initialValueAt: 3 xPut: LastI yPut: LastI. self initialValueAt: 4 xPut: FracGain yPut: 0. À3`…RCL48„kym1¤none`À=À!`€€ÁÀcN8ò"ÿ68 0`{@Î?€@{qÇü`ü{`ýÎgÀ{gÇü`Çü{q‡üÎ?€@{@@@@@à8ÿÿÿÿà8``aa$adÀ=À!`ªÿD E0ŠKåCáXKê3å€ÿÿppaa$adÀ-fÀ4777À9À=åaaåx mÀ=aa„RCL2À4<)"À9À=åbaå``À=åx såw{€À49::À9À=å``åbaÀ=åz måw s€À4ªResistance)"À9À=åaa`À=aåxm™The value here is assumed to be in ohms. The minimum resistance is 1 ohm. Any thing lower will be treated as the minimum.À4ªInductance)"À9À=åaaåwmÀ=aåw s†The value here is assumed to be in henrys. The minimum inductance is 28 micro henry's. Any thing lower will be treated as the minimum.À4«Capacitance)"À9À=åaaåxmÀ=aåwm‡The value here is assumed to be in farads. The minimum capasitance is 28 micro faradss. Any thing lower will be treated as the minimum. ŠRCLwithGain is similar to the RCL module which is a resistor capacitor inductor network emulator. It is arranged as a series resistor followed by a parallel capacitor and inductor. It is more DSP hungry than the RCL as it uses 48 bit internal prossesing and has built in gain to take advantage of this. PeteJohnstonsDSPMods Ver 5ãÀ(‹RCLwithGainÀ-bÀ14À-bÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*``À16À8äÀ=jaÀ=ckÀ*dÀ3âÀ7````g``†FaradsÀ â#À-`À>â¦Farads`aâ"a#âaaäæFaradsãaÀ-mppppppppppppvåaaè`aâ&À-aÀ1>èx qaåeia`#äãäÀ3âÀ7g```m``89À>â<`aâ"a#âaaä=ãdÀ-mbbbbbbbbbbbbnaè`aâ&À-bÀ1!aÀ1>è`adah`#äãäÀ3âÀ7m``` t``†Henrys)À>â¦Henrys`aâ"a#âaaäæHenrysãcÀ-m||||||||||||fåaaè`aâ&À-aÀ1>èwacåeib`#äãäÀ3âÀ7 t``` {``„Ohms)À>â¤Ohms`aâ"a#âaaäæOhmsãbÀ-mvvvvvvvvvvvv~aè`aâ&À-aÀ1>è`aba p`#äãä>)‹RCLwithGainâÀ-`À=uaÀ-`=;&ç!henrys-À= wrÀ.ÀÀ3�ExclusiveOrGateÀ#À(ŒExOrGate ???À-cÀ14âÀ11À9À=hxÀ=asÀ16À8äÀ=sdÀ=tlÀ*`!9“MixerWithWrapAroundâÀ-`À=odÀ-`À8†InputsÀ. ›| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. self initialValueAt: 1 xPut:self subSounds size yPut: -10. À3`‡AndGate„kym1.`À=À!`ÿÀüÿð À| À`þln;ˆ3a¢1ÁÀÿ1Áÿ1ÁÀ3a¢n;ˆþl` À À<üÿøÿà``aa$adÀ=À!`/Àô  ¨úO ¨ô`/Àppaa$adÀ-dÀ4777À9À=åaaåx mÀ=aa�ExclusiveOrGateÀ4¯PlusAndMinusOne)"À9À=åbcå``À=åw såy m‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À4¦Invert)"À9À=åxmå``À=åx  såy m™This turns the module into an Exclusive NorGate . When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À4¦Inputs¯soundCollection %À9À=å``å``À=åaaåx m‘Maximun 30 inputs ˆExclusive Or/Nor gate Assuming "PlusAndMinusOne" and "Invert" are both zero or below, the output will be zero if all the inputs are zero or less. The output will be one if an Odd number of inputs have a value of one or greater than zero, otherwise the output is zero. PeteJohnstonsDSPMods Ver 5ãÀ(�ExclusiveOrGateÀ-cÀ14À-dÀ:›GenericSource Stereo Sample>ãã‹flamingos sãaÀ!aÀ%å{ maÀ*``À:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*``À11À9À=a `À=iuÀ16À8ãÀ=lhÀ=vqÀ*`>À â#À-`�ExclusiveOrGateâÀ-`À=jhÀ-```À-b 6 0À=r sÀ.ÀÀ3’Set/Reset FlipFlopÀ#À(ŽSRFlipFlop ???À-cÀ14À-dÀ,…Reset`À,ƒSetpÀ11À9À=olÀ=waÀ16À8äÀ=sdÀ=tlÀ*bÀ3âÀ7 z`h` c` ``…Reset9À>â°MIDIController48`aâ"a¤gateâabäæResetãqÀ-mbbbbbbbbbbbbr`è`aâ&À-bÀ1!`À1>aqáaa`"äääÀ3âÀ7r`h` z` ``ƒSet9À>â£Set`aâ"a#âaaäæSetãaÀ-mrrrrrrrrrrrrwåaaè`aâ&À-bÀ1!åaaÀ1>åaaaáaa`"äãä!9‡AsLogicâÀ-`À=hdÀ-`À*b 9 7À. ˆ| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: 0 yPut: 0. self initialValueAt: 1 xPut: HiVal yPut:LoVal. À3`ŠSRFlipFlop„kym1.`À=À!`Àpà_àpp`;€`À`p`Ð`;�àpàÀ€?ðàà;€;€àà€?ðÀààp`;�`×`}`Çp`;€_àppàÀ``aa$adÀ=À!`Àü <$ÄüüÄ$?ü Àppaa$adÀ-eÀ47773�ExclusiveOrGateÀ4¥Reset::À9À=åxmå``À=åxmåw s—Right input is not usedÀ4 3::À9À=å``å``À=åbaåw s—Right input is not usedÀ48)"À9À=åx må``À=åx såy m‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À4>)"À9À=åwmå``À=åbcåy m‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).‘When both set and rest inputs are zero or below, the out put will be high if the Set was the last input to be high or low if the Reset input was the last to be high. The output will be low when the reset is high, regardless of the state that the the set input. The output will become high when the set input is made high only if the reset input is low. This is all asuming that the value in the "Invert" field is zero or less. If don't want the Reset to have priority over the Set input , you can use a "GateToTrigger" module on the reset input. In this mode the output will simply represent which input was the last to change from low to high. i.e the output will be high if Set changed last or low if Reset changed last. PeteJohnstonsDSPMods Ver 5ãÀ(’Set/Reset FlipFlopÀ-bÀ14À-dÀ8ƒSet 4`À8…Resetç!Reset `À16À8äÀ=bdÀ=vqÀ*bÀ3âÀ7````}`e` &9À>â (`aâ"a )âaaä *ãq +aè`aâ&À-bÀ1!`À1>aqáaa`"äãäÀ3âÀ7}```z`e` 19À>â 3`aâ"a#âaaä 4ãaÀ-mrrrrrrrrrrrr`åaaè`aâ&À-bÀ1!åaaÀ1>åaaaáaa`"äãä>À â#À-`’Set/Reset FlipFlopâÀ-`À=`dÀ-` ' %``À= t sÀ.ÀÀ3ŒTrackAndHoldÀ#À(�TrackAndHold???À-bÀ14À-dÀ,…Input`À,„Gate`À16À8äÀ=sdÀ=tlÀ*`!À â#À-`ŒTrackAndHoldâÀ-`À=odÀ-`À*b-/À.ˆself initialValueAt: 0 xPut: 1 yPut: 0. À3`ŒTrackAndHold„kym1.`À=À!`€À Àÿ‡ÿŽ8 Œ0˜`@˜`H°à@°Àà€@àAÀ@‚€D@€@€@€ÿ€ÿ€@€@€@€@€ÿÀÿÿÀÿ``aa$adÀ=À!`pẊñ„¼ðüppaa$adÀ-cÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4¤Gate::À9À=åbaå``À=åx såx m‘When this signal is zero or below the input is passed to the output. When this signal rises above zero the output is frozen at the current value and remains there until this signal goes back to zero or below.À49::À9À=å```À=åz måx m€šThis class has no description. PeteJohnstonsDSPMods Ver 5ãŒTrackAndHoldÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`9À=b rÀ.ÀÀ3�PulseFlusher2ÀÂããªDifferencel¶name:input:minusInput:À(‘PulseFlusher2 ???À-dÀ14À-pÀ,…Pulse ÀÀ3�TrackAndPreHoldÀ#À(’TrackAndPreHold???À-bÀ14À-dÀ,.`À,0`À16À8äÀ=sdÀ=tlÀ*`!68âÀ-`À=odÀ-`À*b89À.ˆself initialValueAt: 0 xPut: 1 yPut: 0. À3`�TrackAndPreHold„kym1.`À=À!`€?ü?ü�À Àÿ‡ÿŽ8 Œ0P˜`@˜`H°à°ÀBà€@àAÀ‚€@D@€@€€@ÿ€?ÿ€ € € € €ÿàÿÿàÿ``aa$adÀ=À!`àsẊñ„¼ðüppaa$adÀ-cÀ4777(œEnter a name for this Sound.À4-::.‘When this signal is zero or below the input is passed to the output. When this signal rises above zero the output is frozen at the current value and remains there until this signal goes back to zero or below.À49::3€�This is similar to TrackAndHold exept that the input sample that preceeded the gates transition from 0 to 1, is the sample that will be held. This means that a "Sample and Hold" can be made by putting a GateToTrigger module(with invert set to one) into this modules gate input. If you tried to do the same with the standard TrackAndHold module, the held sample would be the sample that was presant at the input when the trigger returned to zero and not at the trigger point itself. PeteJohnstonsDSPMods Ver 5ã�TrackAndPreHoldÀÀ3‡AsLogicÀ#À(ŠAsLogic???À-cÀ14À-bÀ,…Input`À11À9À={tÀ=ciÀ16À8äÀ=sdÀ=tlÀ*`!À â#À-`‡AsLogicâÀ-`À=odÀ-`À*a>À. €| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. À3`‡AsLogic„kym1.`À=À!`àà°°�� ï}ÝÝÇ plÄ9üøüÿ``aaÀ%äÀ)l{~{~{~gygygyâÀ-ddddfbaadÀ=À!` UVb Ã�Øpóþppaa7adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À48)"À9À=åy  så``À=åaaåy m‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À49::À9À=``À=åxma€À4>)"À9À=åxmå``À=åx  såy m‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).›Converts a signal to a logic value. When the input is greater than zero the output is one otherwise the output is zero. This module can also be used as a NOT gate or logic inverter by putting one into the Invert fieldãÀ(†invertÀ-aÀ16À8ãÀ=flÀ=i{À*`>À â#À-`†invertâÀ-`À=wlÀ-``-aÀ,†Signal`ÀÂãã¥Mixeroªname:inputs:left:right:retrograde:reverse:À(‡Mixer16À-bÀ1°replaceableInputÀÀ3ŽOneSampleDelayÀ#À(’OneSampleDelay ???À-bÀ14À-bÀ,…Input`À16À8ãÀ=flÀ=i{À*`>À â#À-`ŽOneSampleDelayâÀ-`À=wlÀ-`À*a4À.†self initialValueAt: 0 xPut: 0 yPut: 0À3`‡OneSamp¤kym1.`À=À!`ˆO€LHJHINHÈHHHHˆO€8 ‚øDPÆ„@ˆª„A’„9‚„ü‚ø‚€E‚€9‚€yèDEDE"lEA(EÈA8EEAEAyïA``aaÀ%äÀ)l{{{{{{ffffffâÀ-ddddfbaadÀ=À!`:°+ *°* :°Ý.•êÝ.U(Õ(í;©+­9í©ppaa)adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À49::À9À=``À=åy måx m‡Left Input is delayed and sent to the left output. Right input is delayed and sent to the right output.�The input is delayed by one sample. This module is in full sterioãÀ(ŽOneSampleDelayÀ-aÀ16À8ãÀ=llÀ=i{À*`>À â#À-`ŽOneSampleDelayâÀ-`À=}lÀ-`/À16À8ãÀ= ytÀ=i{À*`>À â#À-`‡Mixer16âÀ-`À=jtÀ-`À*a+À8‡Percent4ää` `À%À(ŽOneMinusInput2À-aÀ16À8ãÀ=flÀ=i{À*`>À â#À-`ŽOneMinusInput2âÀ-`À=wlÀ-`"/`À6À(‡AsLogicÀ-aÀ16À8ãÀ=flÀ=i{À*`>À â#À-`‡AsLogicâÀ-`À=wlÀ-``6``5`+`À1*%À16À8ã+À=i{À*`>À â#À-`ŒPulseFlusherâÀ-`À=wlÀ-`À11À9À=jlÀ=bx-%À=À!` A  A  A  ÿÿÿþ@`ü  0T|8üÿñ�0€à’@@@?@ „” D€|þÿüþ``aa$adÀ=À!`$ $ ÿÿIIIoÐ:*êppaa$adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4§Percent)"À9À=åaaå``À=åx  såxm€À4¦Signal::À9À=`å``À=åy  såaa€À4¥Pulse::À9À=å``åaaÀ=åy  så`a€šThis class has no description. PeteJohnstonsDSPMods Ver 5ãÀ(�PulseFlusher2À-bÀ14À-bÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*``À11À9À=` aÀ=hvåwm%%À=ueÀ.ÀÀ3Š90DegShiftÀÂãã«ChannelJoinn°name:left:right:À(Ž90degShift ???À-dÀ14À-hÀÂãã©FIRFiltern¸name:input:coefficients:À(‘Phase Shift by 90À-aÀ16À8äÀ=zmÀ=urÀ*`>À â#À-`‘Phase Shift by 90âÀ-`À=wmÀ-`À,…InputÀÂãã³KymaParameterStringb¿string:specials:units:bindings:€"The following will give you the coefficients for a phase-shift-by-90 (windowed by a hamming window). The variable middle sets the overall delay (in samples) of the filter and the number of taps is 2 * middle + 1." {| middle pts twoPiN | middle := 525. pts := (1 to: 2 * middle + 1) collect: [ :x | | y | y := x - middle. y even ifTrue: [0] ifFalse: [y inverse]]. twoPiN := 2.0 * Float pi / pts size. 1 to: pts size do: [ :n | | window | window := (n - 1 * twoPiN) cos - 1 * -0.5 * -3 dB. pts at: n put: (pts at: n) * window]. pts}À-`ââ`/ÀÂãã¯AmplitudeScaledz¶name:input:left:right:À(‹Attenuator5À-bÀ1*=À16À8ãÀ=ruÀ=icÀ*`>À â#À-`‹Attenuator5âÀ-`À=cuÀ-`=åwcåwc`ÀÂãã±DelayWithFeedback£name:type:input:scale:feedback:delay:delayScale:wavetable:prezero:interpolation:smoothDelayChanges:À(—delay by number of tapsÀ-bÀ1*/À16À8ãÀ=qcÀ=ogÀ*`>À â#À-`—delay by number of tapsâÀ-`À=hcÀ-`¤comb/a`ç (525+1) sampa‡Privateã"ä`À1*7À16À8äÀ=qcÀ=ogÀ*bÀ3âÀ7`è`````èca`a…NoiseÀ â#À-`À>â¥Noise`aâ"a#âaaäæNoiseãdÀ-mgccccccccccg`èr gè`aâ&À-aÀ1>åaad`a`"äãäÀ3âÀ7`èca```èba`a†signal)À>â¦signal`aâ"a#âaaäæsignalãeÀ-mmiiiiiiiiiiof`è`aâ&À-aÀ1>åaae`a`"äãä>)•DuplicateOf90DegShiftâÀ-`À=hcÀ-`À11À9À=gbÀ=ow7*À=À!`øÿ€àp €€€ððððà0à0À0À0€0ÿÿÿàÿÿÿà``aa$adÀ=À!`^C€@À@`@ @0@@||D8DDüppaa$adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À49::À9À=``À=åy måx m€šThis class has no description. PeteJohnstonsDSPMods Ver 5ãŠ90DegShiftÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`À=afÀ.À#À(•multipule RCLwithGainÀ-cÀ14À-lÀ#À(=À-aÀ16À8äÀ=jaÀ=ckÀ*dÀ3âÀ7````g``()À>â,`aâ"a#âaaä-ãaÀ-mppppppppppppèxuè`aâ&À-aÀ1>èx qaåeia`#äãäÀ3âÀ7g```m``89À>â<`aâ"a#âaaä=ãdÀ-mbbbbbbbbbbbbwèuaè`aâ&À-bÀ1!aÀ1>è`adah`#äãäÀ3âÀ7m``` t``:)À>â<`aâ"a#âaaä=ãcÀ-m||||||||||||oètgè`aâ&À-aÀ1>èwacåeib`#äãäÀ3âÀ7 t``` {``#)À>â%`aâ"a#âaaä&ãbÀ-mvvvvvvvvvvvvgèx qè`aâ&À-aÀ1>è`aba p`#äãä>)•multipule RCLwithGainâÀ-`À=uaÀ-`=À#À(=À-aÀ16À8äÀ=jaÀ=ckÀ*dÀ3âÀ7````g``()À>â,`aâ"a#âaaä-ãa,èxuè`aâ&À-aÀ1>èx qaåeia`#äãäÀ3âÀ7g```m``89À>â<`aâ"a#âaaä=ãd2èuaè`aâ&À-bÀ1!aÀ1>è`adah`#äãäÀ3âÀ7m``` t``:)À>â<`aâ"a#âaaä=ãc9ètgè`aâ&À-aÀ1>èwacåeib`#äãäÀ3âÀ7 t``` {``#)À>â%`aâ"a#âaaä&ãb?èx qè`aâ&À-aÀ1>è`aba p`#äãä>)"âÀ-`À=uaÀ-`=À#À(‡Mixer16À-aÀ1*À:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ mç!SignalÀ*`À*bÀÂãã,s³name:initialState:type:frequency:centerValue:scale:�Noise (pink)2åx m¤pinkÀ*h`-+aaää&ç!henrys-&ç!henrys-`À#À(=À-aÀ16À8äÀ=jaÀ=ckÀ*dÀ3âÀ7````g``()À>â,`aâ"a#âaaä-ãa,èxuè`aâ&À-aÀ1>èx qaåeia`#äãäÀ3âÀ7g```m``89À>â<`aâ"a#âaaä=ãd2èuaè`aâ&À-bÀ1!aÀ1>è`adah`#äãäÀ3âÀ7m``` t``:)À>â<`aâ"a#âaaä=ãc9ètgè`aâ&À-aÀ1>èwacåeib`#äãäÀ3âÀ7 t``` {``#)À>â%`aâ"a#âaaä&ãb?èx qè`aâ&À-aÀ1>è`aba p`#äãä>)"âÀ-`À=uaÀ-`=!&ç!henrys-`&`&`+`3`À11À9À=mÀ=gbÀ16À8äÀ=jaÀ=ckÀ*fÀ3âÀ7````g``()À>â,`aâ"a#âaaä-ãa,èxuè`aâ&À-gÀ1£JetèxuÀ1§SingingèvgÀ1ªUpYourNoseèvgÀ1¤rainèxkÀ1¥GlassèwaÀ1!èx qÀ1>èx qaåeia`#äãäÀ3âÀ7g```m``89À>â<`aâ"a#âaaä=ãd2èuaè`aâ&À-gÀ1*èuaÀ1,èxÀ1.èxÀ10èx }À12èx{À1!aÀ1>è`adah`#äãäÀ3âÀ7m``` t``:)À>â<`aâ"a#âaaä=ãc9ètgè`aâ&À-gÀ1*ètgÀ1,èwaÀ1.èxsÀ10èsÀ12èx oÀ1!èwaÀ1>èwacåeib`#äãäÀ3âÀ7 t``` {``#)À>â%`aâ"a#âaaä&ãb?èx qè`aâ&À-gÀ1*èx qÀ1,èx wÀ1.èt À10èxsÀ12èvwÀ1!è`aÀ1>è`aba p`#äãäÀ3âÀ7 {```a` `…Noise)À>â,`aâ"a#âaaä-ãeÀ-mhhhhhhhhhhhh`èxqè`aâ&À-gÀ1*èxqÀ1,èvyÀ1.è``À10èvyÀ12èvyÀ1!åaaÀ1>åaae`a`"äãäÀ3âÀ7a```g` `†signal)À>â5`aâ"a#âaaä6ãfÀ-mnnnnnnnnnnnnq`è`aâ&À-gÀ1*è``À1,èaaÀ1.èaaÀ10è``À12èaaÀ1!åaaÀ1>åaaf`a`"äãä*)•multipule RCLwithGainâÀ-`À=uaÀ-`=;&ç!henrys-À=qrÀ.À#À(†multipule RCLwithGain In Hz RestrictedÀ-bÀ11À9À=c`À=kuÀ16À8äÀ=jaÀ=ckÀ*dÀ3âÀ7 {```a` `8)À>â,`aâ"a#âaaä-ãcÀ-m````````````oèxqè`aâ&À-eÀ1§singingèaaÀ1¦Rumbleè`aÀ10èxqÀ1£jetèxqÀ1>åaac`a`"äãäÀ3âÀ7a```g` `%)À>â5`aâ"a#âaaä6ãdÀ-mffffffffffff``è`aâ&À-eÀ1*è``À1,è``À10è``À1/è``À1>åaad`a`"äãäÀ3âÀ7````f` `‚Hz)À>â¢Hz`aâ"a#âaaäæHzãaÀ-mttttttttttttzåaaè`aâ&À-eÀ1*ès iÀ1,èsgÀ10èr yÀ1/ètqÀ1>åaaa` p`"äãäÀ3âÀ7f```l` `�Q)À>â¡Q`aâ"a#âaaäæQãbÀ-mzzzzzzzzzzzzbåbaè`aâ&À-eÀ1*èwuÀ1,èvaÀ10èvaÀ1/èt {À1>åbab`j`"äãä/)†multipule RCLwithGain In Hz RestrictedâÀ-`À=uaÀ-`-À#À(=À-aÀ16À8äÀ=jaÀ=ckÀ*`>)•multipule RCLwithGainâÀ-`À=uaÀ-`-À#À(=À-aÀ16À8äÀ=jaÀ=ckÀ*`>)•multipule RCLwithGainâÀ-`À=uaÀ-`-À#À(=À-aÀ16À8äÀ=jaÀ=ckÀ*`>)•multipule RCLwithGainâÀ-`À=uaÀ-`-À#À((À-aÀ1*À:,>ãä-ãa./ç!Signal1À*bÀ46åx m78`-!aaääç!Q*!Qç1/(2*3.147*!Hz)ç1/(2*3.147*!Hz)ç!Q*!Qç1/(2*3.147*!Hz)ç1/(2*3.147*!Hz)ç!Q*!Qç1/(2*3.147*!Hz)ç1/(2*3.147*!Hz)ç!Q*!Qç1/(2*3.147*!Hz)ç1/(2*3.147*!Hz)À=urÀ.ÀÀ3ƒRCLÀ#À(‹RCLexample3À-cÀ14À-bÀ,,`À11À9À=maÀ=uvÀ16À8äÀ=xrÀ=tlÀ*`!9ƒRCLâÀ-`À=odÀ-`À*a<À.‡| maxAmp Rfactor Lfactor Cfactor LastV LastI | maxAmp := SignalProcessor maximumAmplitude. Rfactor := ((1/?Resistance)*maxAmp) rounded. Lfactor := ((1/(SignalProcessor sampleRate*?Inductance))*maxAmp) rounded. Cfactor := (1/(SignalProcessor sampleRate*?Capacitance)*maxAmp) rounded. LastV := 0. LastI := 0. self initialValueAt: 0 xPut: Rfactor yPut: LastV. self initialValueAt: 1 xPut: Lfactor yPut: LastI. self initialValueAt: 2 xPut: Cfactor yPut: 0. À3`ƒRCL„kym1.`À=À!`€€ÁÀcN8ò"ÿ68 0`{@Î@{üü{üÎ{üü{üÎ@{@@@@@à8ÿÿÿÿà8``aa$adÀ=À!`ªÿD EŠåáêå€ÿÿppaa$adÀ-eÀ47775„RCL2À4*)"+†The value here is assumed to be in henrys. The minimum inductance is 28 micro henry's. Any thing lower will be treated as the minimum.À4$)"%™The value here is assumed to be in ohms. The minimum resistance is 1 ohm. Any thing lower will be treated as the minimum.À49::?€À40)"1‡The value here is assumed to be in farads. The minimum capasitance is 28 micro faradss. Any thing lower will be treated as the minimum.‘RCL is a cheep (in terms of DSP) resistor capacitor inductor network emulator. It is arranged as a series resistor followed by a parallel capacitor and inductor. The output signal will need to be boosted to hear the band pass filter and ringing. PeteJohnstonsDSPMods Ver 5ãÀ(ƒRCLÀ-cÀ14À-bÀ:,>ãä…MSDOSãaÀ!aÀ%å{ maÀ*``À11À9À= t gÀ=||À16À8äÀ=xrÀ=xpÀ*cÀ3âÀ7````i`d`†FaradsÀ â#À-`À>â,`aâ"a#âaaä-ãcÀ-m||||||||||||dågoè`aâ&À-aÀ1>èvqcågoa`#äãäÀ3âÀ7i```s`d`†Henrys 6À>â<`aâ"a#âaaä=ãbÀ-mvvvvvvvvvvvv|èwè`aâ&À-aÀ1>èwbågoa`#äãäÀ3âÀ7s``` |`d`„Ohms 6À>â%`aâ"a#âaaä&ãaÀ-mpppppppppppptaè`aâ&À-aÀ1>è`aaa p`#äãä> 6ƒRCLâÀ-`À=xrÀ-`ç!henrys& %-À= qÀ.ÀÀ3�NumberToIndexÀ8À(‘NumberToIndex ???À-cÀ14âÀ11À9À=pyÀ=xnÀ16À8ãÀ=xqÀ=czÀ*`>À â#À-`�NumberToIndexâÀ-`À=cqÀ-`À2ƒ| TrueSamp EvenSamp StepSize OffSet AddLog | AddLog:=1-(?AsAddition asLogicValue). TrueSamp:=?NoOfSamples rounded. EvenSamp:=2*(((TrueSamp+1)/2)truncated). StepSize :=2/EvenSamp. OffSet :=AddLog*(0-(1+(StepSize/2))). ((1+OffSet+(?Step*StepSize)) wrapTo02)-1À-`ââÀ=À!`T|8lD8x øD Øl˜9ÿ‡ÿŽ8l 8p àÀ0€`|0P8|``aa$adÀ=À!`à @ ä ï"4äd€Äá…FD@@ppaa$adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4¤Step)"À9À=å``å``À=åy måx  s�This number corrispond to the sample number when the output is fed into a memory reader or writers index. A value of 1 is the first sample as long as the "AsAddition" value is zero or less and the "NoOfSamples" matches the reader/writer.À4ªAsAddition)"À9À=åx så``À=åwmåz m –A value of zero or less in this field will make a step value of one, output something near minus one. This should be used if this is the only module feeding the index. A value of one or greater than zero in this field will cause a step value of zero to out put zero. This should be used if this signal is being mixed with another index. In this case the step number represents the number of sample that the other index is being offset by.À4«NoOfSamples)"À9À=åbcå``À=åx såxmšThis value must be the same as the total number of samples in the memory reader or writer.›This module will generate a dc value from the number placed in the step field . When the ourput is used as an index for a memory reader or writer , The sample being read or writen to corisponds to the number in the step field , as long as the NoOfSamples equels the total number of samples in the reader/writer. If the "AsAddition" value is logic one(>0) ,this module can also be used (with the help of a mixer) to add or subtract the sample steps to and from an already existing index. The Output is wrapped around so that step values which move upwards greater than "NoOfSamples" will generate an output starting from minus one again. PeteJohnstonsDSPMods Ver 5ãÀ(�NumberToIndexÀ-bÀ14âÀ11À9À=dyÀ=lna``À=zÀ.ÀÀ3�MonostableInFreqÀ#À(”MonostableInFreq ???À-cÀ14À-fÀ,‰Frequency`ÀÀ3�GateToTriggerÀ#À(�GateToTrigger???À-cÀ14À-bÀ,…Input`À11À9À=fÀ=ntÀ16À8äÀ=sdÀ=tlÀ*`!À â#À-`‡AsLogicâÀ-`À=odÀ-`À*a&À. ˆ| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. self initialValueAt: 1 xPut: 0 yPut: 0. À3`�GateToTrigger„kym1.`À=À!`ÀÿÇ@€D@€D@€D@€D@€D@€D@€Dð€|€€€€€€€€€€€€ÿÿÿÿ``aaÀ%äÀ)l{~{~{~gygygyâÀ-ddddfbaadÀ=À!`|yDIDIDIÇÏ@A@A@A@Aÿÿppaa?adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À48)"À9À=åy  så``À=åaaåy m‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À49::À9À=``À=åxma€À4>)"À9À=åxmå``À=åx  såy m‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).›This module generates a one sample wide pulse every time the input goes from zero (orbelow) to anything above zero. It converts wide pulses to thin pulses. It can also be used as a one direction zero crossing detectorãÀ(�GateToTriggerÀ-aÀ16À8ãÀ=sdÀ=xpÀ*`>À â#À-`�GateToTriggerâÀ-`À=sdÀ-``À,‡Trigger``(`À11À9À=aÀ=gvÀ16À8äÀ=sdÀ=tlÀ*`!1‡Mixer20âÀ-`À=odÀ-`À*b ; =À.•| maxAmp TrigPer Percent LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. Percent := ?DurationScale. TrigPer := (?TriggerMode rounded) of:#(0 ?DurationScale 1 ). HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: TrigPer*maxAmp yPut: 0 . self initialValueAt: 1 xPut: Percent*maxAmp yPut: LoVal. self initialValueAt: 2 xPut: HiVal yPut:0. À3`’PulseStretcherFreq„kym1.`À=À!`ððààÿÿÿÿÿÿÿÿÿÿÀÿÿÀÀ€À€ ÀÿÿÀ€ ÀŸèÀ À À À À Àøp8ÿø@ÿø``aa$adÀ=À!`     ÿÿ?ü (?ü+Ô"D"Dççppaa$adÀ-gÀ4777&œEnter a name for this Sound.À4©frequency::À9À=å``å``À=åbaåx m —This input controls the duration but is expressed as the period of the given frequency. A value of zero gives 0hz and a value of 1 gives a frequency of half the current kyma sample rate. This falls in line with Oscilator bank, Pitch tracker and other kyma Modules. The monostable time can be calculated by (1/Frequency)*DurationScale. Note that the Duration can only be as acurate as the nearest whole sample. Right chanel is ignored. À4«TriggerMode)"À9À=åxmå``À=åx såba”There are three trigger modes which are selected by placing value 0,1 or 2 in this field. FIRST MODE value 0. In this mode the rising edge of the Trigger input will make the output go hi for the Monostable duration wether the Trigger input remains hi for more or less than the Monostable duration. If a retrigger occurs during the Monostable time, the monostable time will start again and the output will remain Hi for the extra duration. SECOND MODE value 1 This is the same as the first mode exept that a retrigger happening during the Monostable time will be ignored. A retrigger will not be possable until the Monostable time is compleate and the output has returned to zero. THIRD MODE value 2 This is similar to the above except that a retrigger is not possiable untill the full unscaled duration has compleated. This means that the output may have returned to zero because the DurationScale is set to 0.5 but retrriger wil still not be possable until twice the duration time. i.e. Output will return to zero after (1/Frequency)*DurationScale. Retrigger will only be allowed after (1/Frequency). This mode is useful when the Monostable is being used to generate envelopes that need a decay time.À4>)"À9À=åx må``À=åx såy  s‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À4§trigger::À9À=åxmåbaÀ=åx såx m›The Monostable is triggered when this input changes from Lo to Hi (zero or lower to one or greater than zero). The transition from Hi back to Lo will have no bearing on the Monostable operation. Right input is ignored.À4­DurationScale)"À9À=åaaåz mÀ=åx  såxm–Value range from 0 to 1 . This value scales down the duration time set by the Frequency input. Monostable Duration is (1/Frequency)*ScaleDuration. If the value 1 is put in this field the Monostable time will be the period of the Frequency InputÀ48)"À9À=åx måy mÀ=åx såbc‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.€This is a Monostable which can have it's duration changed and be triggered at sample rate speed. The duration is controlled by a value on its Frequency input whitch is the time that one cycle would take if it were an oscilator. The Frequency inputs value is set to fall in line with Oscilator bank, Pitch tracker and other kyma Modules. It is triggered by the Trigger input changing state from Lo to Hi and the pulse width of the signal at the Trigger input has no relivents. If you need to add time to an existing wide pulse (Pulse Stretch) you should look at an Astable module. PeteJohnstonsDSPMods Ver 5ã�MonostableInFreqÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*```(a`À=r pÀ.ÀÀ3‹DisableGateÀ#À(�DisableGate ???À-cÀ14À-dÀ,…Input}À,‡Disable`À11À9À= qnÀ=ycÀ16À8äÀ=sdÀ=tlÀ*`!13âÀ-`À=odÀ-`À*b9;À. €| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: LoVal yPut:HiVal. À3`‹DisableGate„kym1.`À=À!`ðü`ÿç€ÿí�€h�Àh€àm€`eg˜l�ph``è`àì˜Àðç‰Àðà€àþø``aa$adÀ=À!`À õH�uÖ’p`Àppaa$adÀ-eÀ4777&œEnter a name for this Sound.À4§Disable::À9À=åxm`À=åaaåwm–The output is forced to zero if this signal is 1 or greater than zero. Otherwise the output follows the inputs logic state. Right channel is ignoredÀ4>)"À9À=åbcå``À=åw såy  s‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À49::À9À=å| m`À=åbaåwmœThe output will be 1 when this input is 1 (or greater than 0 ) and the output will be 0 when this input is 0 or below, as long as the disable input ic 0 or below. Right channel is ignoredÀ48)"À9À=åbcåy mÀ=åw såbc‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1. “This is simply a two input and Gate with one of it's inputs inverted. It is a very useful gate as because when the disable Input (the inverted one) goes Hi the output is disabled in a lo state. If the disable input is Lo , the other input goes to the output (as logic) unaltered. PeteJohnstonsDSPMods Ver 5ãÀ(‹DisableGateÀ-bÀ14À-dÀ8‡DisableæDisableaÀ8…Input.hÀ16À8äÀ=gdÀ=ubÀ*bÀ3âÀ7`è`````èca`a‡DisableÀ â#À-`À>â7`aâ"a#âaaä3ãbÀ-mvvvvvvvvvvvvfåaaè`aâ&À-aÀ1>åaab`a`"äãäÀ3âÀ7`èca```èba`a…Input>À>â-`aâ"a#âaaä.ãaÀ-mpppppppppppp}åaaè`aâ&À-aÀ1>åaaa`a`"äãä>>‹DisableGateâÀ-`À=ddÀ-`1`4`À= sÀ.À2ŒMEMORY WRITERS AND INDEXING TOOLS-----------À=`kÀ.ÀÀ3‘MixerWithFlipOverÀ#À(�Mxr with flipÀ-cÀ14âÀ11À9À=g eÀ=ozÀ16À8äÀ=sdÀ=tlÀ*bÀ3âÀ7`è`````èca`a†AmpLow6À>â¦AmpLow`aâ"a#âaaäæAmpLowãaÀ-mpppppppppppp}å|eè`aâ&À-bÀ1!å|eÀ1>å|ea`a`"äãäÀ3âÀ7`èca```èba`a‡LogFreq6À>â§LogFreq`aâ"a#âaaäæLogFreqãbÀ-mvvvvvvvvvvvvjpè`aâ&À-bÀ1!pÀ1>pb``"äãä!6“MixerWithWrapAroundâÀ-`À=odÀ-`&À.Š"maxAmp := SignalProcessor maximumAmplitude." self initialValueAt: 0 xPut: 0 yPut: self subSounds size. À3`�MixerWithFlip„kym1.`À=À!`¿!¡!áÀÿ€@ÿÿÀ?¡!¡á@€ ¨ø( œç9Μç9Îøà¸ðxø<<àxðàÀ€``aa$adÀ=À!`pPøøPpù@ª«>>sçáÃÀ€ppaa$adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4 $ % %À9À=``À=åaaa€šThis class has no description. PeteJohnstonsDSPMods Ver 5ãÀ(‘MixerWithFlipOverÀ-bÀ14À-jÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ mç!levelÀ*``À:9>ãä…MSDOSãaÀ!aÀ%å{ mç!levelÀ*``À:9>ãä:ãa;<ç!level>`À:9>ãä:ãa;<ç!level>`À:9>ãä…MSDOSãaÀ!aÀ%å{ mç!levelÀ*``À16À8äÀ=x vÀ=xpÀ*aÀ3âÀ7`è`````èca`a…LevelÀ â#À-`À>â¥Level`aâ"a#âaaäæLevelãaÀ-mppppppppvvvrcåaaè`aâ&À-aÀ1>åaaa`a`"äãä>7‘MixerWithFlipOverâÀ-`À=x vÀ-`À*e?%)'8À=zvÀ.ÀÀ3ŠStepWriterÀ#À(�StepWriter???À-bÀ14À-fÀ,…Write`À,…Index`À,…Input`À16À8ãÀ=jaÀ=ckÀ*`>À â#À-`ŠStepWriterâÀ-`À=uaÀ-`À*c1/3À.Ÿ| "maxAmp" scale offset TrueSamp EvenSamp StartSamp ExtraSamp DeadSamp | "maxAmp := SignalProcessor maximumAmplitude." TrueSamp:=(?NoOfSamples+0.5)truncated. EvenSamp:=2*(((TrueSamp+1.1)/2)truncated). StartSamp:=self tableAddress. ExtraSamp:=StartSamp+TrueSamp+0. DeadSamp:=StartSamp+TrueSamp+1. offset := ((StartSamp) + (EvenSamp/2))truncated. scale :=( EvenSamp/2)truncated . self initialValueAt: 0 xPut: scale yPut: offset. self initialValueAt: 1 xPut: DeadSamp yPut: StartSamp+1. self initialValueAt: 2 xPut: ExtraSamp yPut: 0. À3`ŠStepWriter7©writeOnly`À=À=À=À8‹NoOfSamplesÀ'6À-aåaaÀ'©truncatedÀ-`À'6À-aaÀ=À!`ÿÿÿÿÿÿÿÿˆB„‹B„‹B„‹B„‹B„ˆB„ÿÿÿÿÿÿÿÿÀ àð<è\ °4 `@ Àà    ¸ø``aa$adÀ=À!`ÿÿ–Yši–Yÿÿ `ÀÀ@@ àppaa$adÀ-fÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4#$%À9À=åx  så``À=åx såw{ŒName of the ram table. should match a readerÀ49::À9À=å``å``À=åbaåw s•Only the left input is writen to ram but the output gets the sterio input un altered.À4¥index::À9À=åxmå``À=åxmåx sŽThis level tells the writer which sample to write to. -1 is the first sample and +1 is the last. The other samples are proprtionatly spaced between them. The input will only be writen to the ram when the"Write" level is greater than zero.À4¥Write::À9À=åxmåx sÀ=åxmåw s�Writing will only happen when this signal is greater than one. No writing will take place if this signal is zero or less. A gate to trigger module can be used to ensure only one sample is stored at a time.À4 """À9À=åbcåaaÀ=åw såx m–This is the total numder of samples in the wave table.•This module lets you write to sample ram in a random order , one or more steps at a time. PeteJohnstonsDSPMods Ver 5ãÀ(ŠStepWriterÀ-bÀ14À-fÀ8…IndexæIndex`À8…InputæValue`À8…WriteæWrite`À16À8äÀ=jaÀ=duÀ*cÀ3âÀ7````g`i`…IndexÀ â#À-`À>â°MIDIController21`aâ"a#âabä?ãvÀ-mbbbbbbbbbbbbtåaaè`aâ&À-aÀ1>åaaváaa`"äãäÀ3âÀ7g```n`i`…Value.À>â¥Value`aâ"a#âaaä"ãbÀ-m~~~~~~~~~~~~gåaaè`aâ&À-aÀ1>åaabáaa`"äãäÀ3âÀ7n``` t`i`…Write.À>â-`aâ"a#âaaä%ãaÀ-mxxxxxxxxxxxx~åaaè`aâ¦ToggleÀ-aÀ1>åaaa`a`"äãä>.ŠStepWriterâÀ-`À=vaÀ-`…Table =#`À=naÀ.ÀÀ3†ToggleÀ#À(ŠToggle ???À-cÀ14À-bÀ,…Input`À11À9À=pyÀ=xnÀ16À8äÀ=sdÀ=tlÀ*`§default9 9âÀ-`À=hdÀ-`À*a5À. ‡| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: 0 yPut:0. self initialValueAt: 1 xPut: HiVal yPut:LoVal. À3`†Toggle„kym1.`À=À!`€Áø€Á€Á€Á€Á€Á€Á€Áðÿÿ���ÿ�ÿ��������ðÿ``aa$adÀ=À!`qQQQß÷AAAAÁñppaa$adÀ-dÀ47773œEnter a name for this Sound.À4>)"À9À=åxmå``À=åx  såy m‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À48)"À9À=åy  så``À=åaaåy m‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À49::À9À=``À=åxmaœRight input channel ignored. œEvery time the input moves from zero (or less) to one ( or >0 ) the output changes its state, ether from zero to one or from one to zero. This means that if you put a square wave of 1 Khz into its input , you get another square wave of 500 hz at its output. This emulates the task that many JK Flipflops do, and is similar to the octave deviders you got in early electronic organs. PeteJohnstonsDSPMods Ver 5ã†Toggle``À:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`À=| tÀ.ÀÀ3�MonostableInTimeÀ#À(”MonostableIntime ???À-cÀ14À-hÀÂãã¦MusicNo±name:inputs:script:left:right:retrograde:reverse:‡Script1À*bÀ,‡TriggerÀ >À(…PulseÀ-aÀ16À8ãÀ=sdÀ=xpÀ*`>"‡Script1âÀ-`À=sdÀ-``9`À.ƒ?PulseStretch ifTrue:[Trigger start: 0s] ifFalse:[Pulse start: 0s].À3`aaää`;`À,ˆDuration`9`À11À9À=xhÀ=xkÀ16À8äÀ=sdÀ=tlÀ*`!13âÀ-`À=odÀ-`À*b+3À.™| maxAmp SR RampInc TrigMo LoVal HiVal | SR :=SignalProcessor sampleRate. maxAmp := SignalProcessor maximumAmplitude. RampInc := maxAmp /(((?MaxDuration s)removeUnits)*SR). HiVal := maxAmp. LoVal := 0.0. TrigMo :=?TriggerMode true: -1 false: 0 . LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: RampInc yPut: maxAmp . self initialValueAt: 1 xPut: LoVal yPut: TrigMo . self initialValueAt: 2 xPut: HiVal yPut:0. À3`’PulseStretcherTime„kym1.`À=À!`??€ÀÀÀÀÀ?€?ÿÿÿÿÿÿÿÿÿÿÀÿÿÀÀ€À€ ÀÿÿÀ€ ÀŸèÀ À À À À Àøp8ÿø@ÿø``aa$adÀ=À!` <    <ÿÿ?ü (?ü+Ô"D"Dççppaa$adÀ-hÀ4777&œEnter a name for this Sound.À48)""‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À4«MaxDuration."À9À=å| må``À=åz måba�This value is what the Monostables on time would be if the Duration input was given a value of 1.À4>)"1‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À4¬PulseStretch§boolean2À9À=åx såxmÀ=åwmåaa •If this is deselected, the Trigger input acts as a trigger and the Monostable on time will start when the trigger goes from Lo to Hi. When this is selected The trigger input acts as a Gate and this input will be passed through to the output but with the extra Monostable on time added on the end . In other words the Monostable on time starts when this input goes to zero.À4¨duration::À9À=å| måbaÀ=åz måx mŠThe Value at this input represents the monostables on time as a proportion of the MaxDuration value. This must be a positive value. Any negative value will force the output value Lo. Monostable on time is Duration value * MaxDuration.À46::À9À=åbaåbaÀ=åy måx m œThe Monostable is triggered when this input changes from Lo to Hi (zero or lower to one or greater than zero). The transition from Hi back to Lo will have no bearing on the Monostable operation if the PulseStretch option is not selected. If the PulseStretch option is selected the Monostable On time will start only when this signal returns to a Lo state. Right input is ignored.À4+)"À9À=åbaå``À=åy måba˜There are Two trigger modes FIRST MODE value 0 or below 0. In this mode the Monostable on time can freely be retriggered at any time. SECOND MODE value 1 or greater than 0. In this mode the Monostable can only be retriggered when the output is Lo (or the ontime has finnished).—This module is a Monostable which can be triggered and time adjusted at sample rate. The value at the duration input is multiplied by the MaxDuration value to give the Monostable on time. PeteJohnstonsDSPMods Ver 5ãÀ(�MonostableInTimeÀ-bÀ14À-dÀ8ƒDuræDuration`À8ŠConstant55æTriggersÀ16À8ãÀ=gmÀ=ubÀ*`>À â#À-`�MonostableInTimeâÀ-`À=dmÀ-``À<æ MaxDurationÀ'*À-``ä-0æ TriggerModeÀ=m qÀ.ÀÀ3‡AndGateÀ#À(‹AndGate ???À-cÀ14âÀ11À9À=hxÀ=asÀ16À8äÀ=sdÀ=tlÀ*`!9"âÀ-`À=odÀ-`&À. ™| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. self initialValueAt: 1 xPut:self subSounds size yPut: 0. À3`‡AndGate„kym1.`À=À!`ÿÀÿÿð|6þ""ˆ6¢Àþ6aÿ"AÀ!�¢!ƒˆþ2c'<ÿÿøÿà``aa$adÀ=À!`Àò Hò�’ð`Àppaa$adÀ-dÀ47773œEnter a name for this Sound.À4 $ % %À9À=å``å``À=åaaåx m‘Maximun 30 inputsÀ4>)"?�This turns the module into a NandGate . When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À48)"9‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.‘And Gate or Nand Gate PeteJohnstonsDSPMods Ver 5ã‡AndGateÀ-bÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`À:›GenericSource Stereo Sample>ãã‹flamingos sãaÀ!aÀ%å{ maÀ*```À=n sÀ.ÀÀ3�GateToTriggerÀ#À(�GateToTrigger???À-cÀ14À-bÀ,…Input`À11À9À=fÀ=ntÀ16À8äÀ=sdÀ=tlÀ*`!9 9âÀ-`À=odÀ-`À*a(À. ˆ| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. self initialValueAt: 1 xPut: 0 yPut: 0. À3`�GateToTrigger„kym1.`À=À!`ÀÿÇ@€D@€D@€D@€D@€D@€D@€Dð€|€€€€€€€€€€€€ÿÿÿÿ``aa$adÀ=À!`|yDIDIDIÇÏ@A@A@A@Aÿÿppaa$adÀ-dÀ47773œEnter a name for this Sound.À48)"7‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À49::<€À4>)"2‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).—This module generates a one sample wide pulse every time the input goes from zero (orbelow) to anything above zero. It converts wide pulses to thin pulses. It can also be used as a one direction zero crossing detector PeteJohnstonsDSPMods Ver 5ãÀ(�GateToTriggerÀ-cÀ14À-bÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*``À11À9À=yaÀ=avÀ16À8ãÀ=sdÀ=xpÀ*`>À â#À-`�GateToTriggerâÀ-`À=sdÀ-``/`À=c tÀ.ÀÀ3†OrGateÀ#À(ŠOrGate ???À-cÀ14âÀ11À9À=hxÀ=asÀ16À8äÀ=sdÀ=tlÀ*`!9"âÀ-`À=odÀ-`&À. ™| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. self initialValueAt: 1 xPut:self subSounds size yPut: 0. À3`†OrGate„kym1.`À=À!`ÿÀÿÿð|ÿˆ†¢†Àÿ†ÿ†À†¢ˆÿ<ÿÿøÿà``aa$adÀ=À!`Àè ’ˆü�ˆè`Àppaa$adÀ-dÀ47773œEnter a name for this Sound.À4 $ % % &‘Maximun 30 inputsÀ4>)"?ŽThis turns the module into a NorGate . When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À48)"9‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.�Or Gate or Nor Gate PeteJohnstonsDSPMods Ver 5ã†OrGateÀ-bÀ:2>ãä3ãa45a6À:8>ãã9ãa:;a<``À=` sÀ.ÀÀ3˜RampGenerator in SamplesÀÂããªDSPProgramn³name:initialValuesCodeString:programName:wavetable:tableAccess:tableStart:tableEnd:À(‰Ramp3????À-cÀ14âÀ11À9À=ahÀ=i}À16À8äÀ=egÀ=duÀ*`>À â#À-`–RampGenerator in SampsâÀ-`À=qgÀ-`À.‡| maxAmp MaxVal CountVal StartVal Gain TrueSamp errComp HiGain LoGain HalfESamp | maxAmp := SignalProcessor maximumAmplitude. TrueSamp:=?NoOfSamps rounded. HalfESamp:=((TrueSamp+1)/2)truncated. StartVal := 0-HalfESamp. MaxVal := ((TrueSamp/2)-1)truncated. CountVal := maxAmp. Gain:= (23-(HalfESamp twoLog)) twoExp. errComp:=(Gain/2)*(1-?OffSetHalfStep). HiGain := Gain truncated. LoGain := ((Gain-HiGain)*(maxAmp+1)). self initialValueAt: 0 xPut: MaxVal yPut: CountVal. self initialValueAt: 1 xPut: StartVal yPut: HiGain. self initialValueAt: 2 xPut: errComp yPut: LoGain. À3`…Ramp3„kym1.`À=À!`8q ÆdÙš)`‰Z(9�j, +Æý E m 9 @  À 0@À@À À@À@4@@d@@Ä @A„AC0CF`FLÀLX€Xpp````aa$adÀ=À!`É[•ÖÝ[UQÕS 0q4Óe–džppaa$adÀ-cÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4©NoOfSamps)"À9À=å``å``À=åy måwm€À4®OffSetHalfStep)"À9À=åx  s`À=åw såxm•In 99.9% of cases this value should be zero. If it is set to one ,the output is moved down by half a step. The only time this should be set to one is if it is feeding a Wave Shaper with interpolation switched on and and nothing else. And even then it is only needed if it is absolutly important that the wave shaper interpolates on the center of the sample. In all other cases if you use one in this field , readers and writers will try to write on the border between samples and buzzes will be heard.œThis is a repeating Ramp Generator optimized for use as an index for memory readers and writers. PeteJohnstonsDSPMods Ver 5ã˜RampGenerator in Samples``À=ltÀ.ÀÀ3�AstableInFreqÀ#À(‘AstableInFreq ???À-bÀ14À-dÀ,‰FrequencyjÀ,„Gate`À16À8äÀ=sdÀ=tlÀ*`!13âÀ-`À=odÀ-`À*b 5 7À.�| maxAmp TrigPer Percent LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. Percent := ?PulseWidth. TrigPer := (?GateMode rounded) of:#( 1 0 ?PulseWidth ). HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: TrigPer*maxAmp yPut: 0 . self initialValueAt: 1 xPut: Percent*maxAmp yPut: LoVal. self initialValueAt: 2 xPut: HiVal yPut:0. À3`’PulseStretcherFreq„kym1.`À=À!`øÿø���à�à��À@ÿÀ@‚ƒ@ÿ€ƒ@‚@~à~B BB BB BB BB BB BB BB BB BB BB BCü?Â``aa$adÀ=À!`{àB B r F0Gð祥¥¥¥½÷ppaa$adÀ-gÀ4777&œEnter a name for this Sound.À4%::&ŠThis input controls the frequency. A value of zero gives 0hz and a value of 1 gives a frequency of half the sample rate. This falls in line with Oscilator bank, Pitch tracker and other kyma Modules. In non oscilator mode this controls the pulse stretch duration (1/Frequency). Note that the frequency is only acurate to the nearest whole sample. If you need better acuracy, a pulse wave could be derived from the RampInFreq model. Right chanel is ignored. À4>)"1‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).À4-::À9À=åxmåbaÀ=åx såx m œThis input resets the modules timer when the signal is greater than zero and allows the time to clock when the signal is zero or less. When Gate mode is type zero, the reset action is inhibited during the timer period and allowed at other times, hence if a Hi value is maintained on this input, the timer will cycle.À4¨GateMode)"À9À=åxmå``À=åx såba•There are three GateModes which are sellected by the value placed in this field. The modules timer is reset when the Gate input is 1 (or greater than 0) and allowed to count when the Gate input is zero or less FIRST MODE Value 0 In this mode the gate input is disabled from reseting the modules timer while the timer is counting and so that if the gate input is set to one continuusly, the module will reset the timer when the timer has finished and allow the timer to count when the timer has been reset. hence the module will oscilate. The oscilation will start when the gate signal goes to one , and can be usefull for sync signals. SECOND MODE Value 1 In this mode the output will be held Hi when the gate is Hi and remain Hi (after the Gate has returned to zero) for the duration set by the frequency input and the PulseWidth value i.e. duration = PulseWidth*(1/Frequency). The gate going Hi at any time will reset the timer and make the output go Hi. THIRD MODE value 2 This is like the second mode exept that the timer reset will not be allowed during the first half (if PulseWidth is 0.5) of the timer duration. This is not so usefull as ther is no indication that the timer has been reset. This is because the output remains Hi when the gate is Hi wether or not the timer is being reset. À4ªPulseWidth)"À9À=åaaåz mÀ=åx  såxm…The value in this field divides the modules timer duration into two and causes the output to go Hi for the first part of the duration and Lo forthe second part. With a value of 1 the output will remain Hi for the whole of the timers duration and with a value of zero , the output will go Hi for just the first sample. A value of less than zero will cause no output for the duration of the timer. This would be like putting the gate inputs logic value strieght throught to the output. This fields value represents the Mark/Space value of the pulse wave when the GateMode has a value zero and the gate input is Hi.À48)""‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.�This is a variable pulse width square wave generator. In most cases the pulse train module would be better suited. This module should be used if gating and frequency control has to be adjusted at sample rate. To make it oscilate, the Gate signal must be greater than zero, the Gate Mode must be set to zero and the PulseWidth value must be greter than zero and less than one. It can also be used as a pulse stretcher if the Gate Mode is set to 1 or 2. See GateMode for details. PeteJohnstonsDSPMods Ver 5ãÀ(�AstableInFreqÀ-cÀ14À-bÀ:)>ãä*ãa+,a-`À11À9À=avÀ=`fÀ16À8äÀ=d|À=ubÀ*`>À â#À-`�AstableInFreqâÀ-`À=a|À-` +` +`åaa`À= a qÀ.ÀÀ3�SlewRateLimiterÀ#À(œSlewRateLimiter??? with timeÀ-cÀ14À-bÀ,…Input`À11À9À=bzÀ=vcÀ16À8äÀ=sdÀ=tlÀ*`!9 9âÀ-`À=odÀ-`À*a &À.‡| maxAmp UpRate DownRate SR tUp tDown | SR := SignalProcessor sampleRate. maxAmp := SignalProcessor maximumAmplitude. tUp:=?UpRate s removeUnits *SR. tDown :=?DownRate s removeUnits*SR. tUp := (tUp gt: 1) true: tUp false: 1. tDown := (tDown gt: 1) true: tDown false: 1. UpRate := maxAmp/tUp . DownRate := maxAmp/tDown. UpRate := (UpRate gt: maxAmp) true: maxAmp false: UpRate. DownRate := (DownRate lt:0- maxAmp) true: maxAmp+1 false: DownRate. self initialValueAt: 0 xPut: 0.0 yPut:0.0. self initialValueAt: 1 xPut: DownRate yPut: UpRate. À3`�SlewRateLimiter„kym1.`À=À!`;ðð À À!€ €##&,€,€8ÀÀ0`0`à?à¿``aaÀ%äÀ)l{{{{{{ffffffâÀ-ddddfbaadÀ=À!`;à &0$,88,$0à7ppaa À â#À-`‹PulseTrain4âÀ-`À=sdÀ-`À<À<æFreqLowÀ'¢hzÀ-`À'§inverseÀ-`äåaaa`À16À8ãÀ=sdÀ=ubÀ*`>À â#À-`�SlewRateLimiterâÀ-`À=pdÀ-`ç!((!FreqLow inverse)*(!Dramp/2)) sç!((!FreqLow inverse)*(!Uramp/2)) s>À= zwÀ.À04À:&>ãä'ãa()a*)À= n rÀ.ÀÀ3ŽOneSampleDelayÀ#À(’OneSampleDelay ???À-bÀ14À-bÀ,…Input`À16À8ãÀ=flÀ=i{À*`>À â#À-`ŽOneSampleDelayâÀ-`À=wlÀ-`À*a5À.†self initialValueAt: 0 xPut: 0 yPut: 0À3`‡OneSamp&.`À=À!`ˆO€LHJHINHÈHHHHˆO€8 ‚øDPÆ„@ˆª„A’„9‚„ü‚ø‚€E‚€9‚€yèDEDE"lEA(EÈA8EEAEAyïA``aa$adÀ=À!`:°+ *°* :°Ý.•êÝ.U(Õ(í;©+­9í©ppaa$adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À49::À9À=``À=åy måx m‡Left Input is delayed and sent to the left output. Right input is delayed and sent to the right output.�The input is delayed by one sample. This module is in full sterio PeteJohnstonsDSPMods Ver 5ãŽOneSampleDelayÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`À=doÀ.ÀÀ3†SwitchÀ#À(ŠSwitch ???À-cÀ14À-dÀ,„Gate`À,…Input`À11À9À={aÀ=cvÀ16À8äÀ=krÀ=czÀ*`>À â#À-`†SwitchâÀ-`À=hrÀ-`À*b)+À.‰| maxAmp OffVal | maxAmp := SignalProcessor maximumAmplitude. OffVal := (maxAmp+1)* ?OffValue. self initialValueAt: 0xPut:0 yPut: OffVal. "self debug: self paramPtr."À3`†Switch„kym1.`À=À!`ÀñÀ?`ÿà?ÿà?`AÀààP@@@øÿ``aa$adÀ=À!` øð/8€À@` àppaa$adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4-::À9À=åxmåz mÀ=åaaåwm€À49::À9À=å``å``À=åbaåx m€À4¨OffValue)"À9À=åx  så``À=åw såy m€šThis class has no description. PeteJohnstonsDSPMods Ver 5ã†SwitchÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`>`À=j rÀ.ÀÀ3‡AsLogicÀ#À(ŠAsLogic???À-cÀ14À-bÀ,)`À11À9À={tÀ=ciÀ16À8äÀ=sdÀ=tlÀ*`!9 9âÀ-`À=odÀ-`À*a/À. €| maxAmp LoVal HiVal | maxAmp := SignalProcessor maximumAmplitude. HiVal := maxAmp. LoVal := 0.0. LoVal :=?PlusAndMinusOne true: (maxAmp+1) false: 0. HiVal :=?Invert true: LoVal false: HiVal. LoVal :=?Invert true: maxAmp false: LoVal. self initialValueAt: 0 xPut: HiVal yPut:LoVal. À3`‡AsLogic„kym1.`À=À!`àà°°�� ï}ÝÝÇ plÄ9üøüÿ``aa$adÀ=À!` UVb Ã�Øpóþppaa$adÀ-dÀ47773œEnter a name for this Sound.À48)"7‰When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.À49::<€À4>)"2‡When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).—Converts a signal to a logic value. When the input is greater than zero the output is one otherwise the output is zero. This module can also be used as a NOT gate or logic inverter by putting one into the Invert field PeteJohnstonsDSPMods Ver 5ã‡AsLogic`À:0>ãä1ãa23a4`À=p tÀ.ÀÀ3“MixerWithWrapAroundÀ#À(�mxr with wrap???À-bÀ14âÀ16À8äÀ=sdÀ=tlÀ*`!6:âÀ-`À=odÀ-`&À.Š"maxAmp := SignalProcessor maximumAmplitude." self initialValueAt: 0 xPut: 0 yPut: self subSounds size. À3`�MixerWithWrap„kym1.`À=À!`¿!¡!áÀÿ€@ÿÿÀ?¡!¡á@€ ¨@ø( œç9Μç9΀à€ð€ø€¼<€žx€�ð€‡àƒðƒÀ�ø�€Ÿþ€¼€ð€à€œó�Î``aa$adÀ=À!`pPøøPpù@ª«<täÅчp0ppaa$adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4 $ % %À9À=``À=åaaa€šThis class has no description. PeteJohnstonsDSPMods Ver 5ãÀ(“MixerWithWrapAroundÀ-bÀ14À-dÀÂãã¯SuperOscillator}»name:frequency:wavetable:modulation:modulator:maxMI:interpolation:envelope:pitchBend:reset:‹Oscillator8À<À<5À'¨smoothedÀ-`À'¢nnÀ-`„Kyma Mac:Kyma:Waves:Control:fullramp.À8ˆConstant``.À<+À'&À-````À?‹Oscillator9À<À<5À'&À-`À')À-`„Kyma Mac:Kyma:Waves:Control:fullramp.À8-``.À<+À'&À-````À16À8äÀ= y yÀ=xpÀ*bÀ3âÀ7`è`````èca`a(À â#À-`À>â*`aâ"a#âaaä+ãbÀ-mvvvvvvvvvvvvhå|eè`aâ&À-aÀ1>å|eb`a`"äãäÀ3âÀ7`èca```èba`a2%À>â4`aâ"a#âaaä5ãaÀ-mpppppppppppp{pè`aâ&À-aÀ1>pa``"äãä>%“MixerWithWrapAroundâÀ-`À=y yÀ-`À*b>1À= gÀ.ÀÀ3˜RampGenerator in SecondsÀ7À(‘Ramp3 in time????À-cÀ14âÀ11À9À= foÀ=ndÀ16À8äÀ=egÀ=duÀ*aÀ3âÀ7g```n`i`‰NoOfSamps 'À>â =`aâ"a#âaaäæ NoOfSampsãaÀ-mrrrrrrrrrrrråaaè`aâ&À-aÀ1>åaaa```"äãä> ' )âÀ-`À=qgÀ-`À.€| maxAmp MaxVal CountVal StartVal Gain TrueSamp errComp HiGain LoGain HalfESamp Samps | maxAmp := SignalProcessor maximumAmplitude. Samps:=(?Rate removeUnits*SignalProcessor sampleRate). TrueSamp:=Samps rounded. HalfESamp:=((TrueSamp+1)/2)truncated. StartVal := 0-HalfESamp. MaxVal := ((TrueSamp/2)-1)truncated. CountVal := maxAmp. Gain:= (23-(HalfESamp twoLog)) twoExp. errComp:=(Gain/2)*(1-?OffSetHalfStep). HiGain := Gain truncated. LoGain := ((Gain-HiGain)*(maxAmp+1)). self initialValueAt: 0 xPut: MaxVal yPut: CountVal. self initialValueAt: 1 xPut: StartVal yPut: HiGain. self initialValueAt: 2 xPut: errComp yPut: LoGain. À3`…Ramp3„kym1.`À=À!`?À â#À-`˜RampGenerator in SecondsâÀ-`À=cqÀ-`À%a`À=byÀ.ÀÀ3‹SetableRampÀÀ3“MixerWithWrapAroundÀ#À(�mxr with wrap???À-bÀ14âÀ16À8äÀ=sdÀ=tlÀ*`!9"âÀ-`À=odÀ-`&À.Š"maxAmp := SignalProcessor maximumAmplitude." self initialValueAt: 0 xPut: 0 yPut: self subSounds size. À3`�MixerWithWrap„kym1.`À=À!`¿!¡!áÀÿ€@ÿÿÀ?¡!¡á@€ ¨@ø( œç9Μç9΀à€ð€ø€¼<€žx€�ð€‡àƒðƒÀ�ø�€Ÿþ€¼€ð€à€œó�Î``aaÀ%äÀ)l{~{~{~gygygyâÀ-ddddfbaadÀ=À!`pPøøPpù@ª«<täÅчp0ppaa;adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4 $ % %À9À=``À=åaaa€žThis class has no description.ãÀ(�SetableRamp ???À-cÀ14À-nÀ,ŠMasterRamptÀ,‡Trigger`À,ŠIndexPoint`À'†INVERT`3a`À%À(“MixerWithWrapAroundÀ-aÀ16À8äÀ= y yÀ=xpÀ*`>À â#À-`“MixerWithWrapAroundâÀ-`À=y yÀ-`À*bÀÀ3†NegateÀ#À(ŠNegate ???À-cÀ14À-bÀ,…Input`À11À9À=i yÀ=qnÀ16À8äÀ=krÀ=czÀ*aÀ3âÀ7````{`n`…Value6À>â9`aâ"a#âaaä"ãaÀ-mppppsppppppp{åaaè`aâ&À-aÀ1>åaaaáaa`"äãä>6†NegateâÀ-`À=vrÀ-`À*a2À.‡self initialValueAt: 0xPut:0 yPut: 0. À3`†Negate„kym1.`À=À!`ÿÿÿÿ€€€€€€€€€�Oáá˜H1œH–H“O‘È�È9�H �H�H1�Oáက€@!€Àa€GÀ!ž@!€GÀ!€@!€@!€ÿÿÿÿ``aa$adÀ=À!`ÿÿ€€€€¥Íµ­‘¥¥¥Í€€€€ÿÿppaa$adÀ-bÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À49::À9À=``À=åxmåx m€ ‹This module inverts the Input Signal. In most cases it would be better to use a mixer with a level of 0-1 or some other method of inverting. This should only be used with wraparound type maths (ie when forming indexes) as minus one input makes minus one output. This is because true plus one doesn't exist in two's complement numbers. PeteJohnstonsDSPMods Ver 5ãÀ(†NegateÀ-aÀ16À8äÀ=omÀ=czÀ*`>À â#À-`†NegateâÀ-`À=hyÀ-`15`ÀÀ3ŒTrackAndHoldÀ#À(�TrackAndHold???À-bÀ14À-dÀ,…Input`À,„Gate`À16À8äÀ=sdÀ=tlÀ*`!9ŒTrackAndHoldâÀ-`À=odÀ-`À*b57À.ˆself initialValueAt: 0 xPut: 1 yPut: 0. À3`ŒTrackAndHold„kym1.`À=À!`€À Àÿ‡ÿŽ8 Œ0˜`@˜`H°à@°Àà€@àAÀ@‚€D@€@€@€ÿ€ÿ€@€@€@€@€ÿÀÿÿÀÿ``aaÀ%äÀ)l{~{~{~gygygyâÀ-ddddfbaadÀ=À!`pẊñ„¼ðüppaa*adÀ-cÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4-::À9À=åbaå``À=åx såx m‘When this signal is zero or below the input is passed to the output. When this signal rises above zero the output is frozen at the current value and remains there until this signal goes back to zero or below.À49::À9À=å```À=åz måx m€žThis class has no description.ãŒTrackAndHold79`)`À11À9À=p|À=xqÀ16À8äÀ=q|À=xpÀ*`>"‹SetableRampâÀ-`À=y yÀ-`À*b,1À=À!`ü?à?ü?à? 0`0 0`0 0`0 0`0 0`0ðððð@@@0@p@0ðpð@ð°Að÷0°þ0G0 0N000°80ãä…MSDOSãaÀ!aÀ%å{ maÀ*`22À= neÀ.ÀÀ3ŒSetableRamp2À%À(�SetableRamp2 ???À-cÀ14À-nÀ,6`À*À(?À-aÀ16À8äÀ=omÀ=czÀ*`>&(âÀ-`À=hyÀ-`À,2`À04À'8`À,4aÀ%À(;À-aÀ16À8äÀ= y yÀ=xpÀ*`>"$âÀ-`À=y yÀ-`À*b$#`/t3`1`2`À11À9À=tgÀ=||À16À8äÀ=q|À=xpÀ*`>"*âÀ-`À=y yÀ-`À*b0/À=À!`ü?à?ü?à? 0`0 0`0 0`0 0`0 0`0ðððð@@@0@p@0ðpð@ð°Að÷0°þ0G0 0N000°808:âÀ-`À=cqÀ-`>``À8…Index?`À16À8ãÀ=}oÀ=uiÀ*`>À â#À-`ŒSetableRamp2âÀ-`À=zoÀ-`"$/À= bmÀ.ÀÀ3�Up/Down CounterÀ#À(�CounterRamp ???À-cÀ14À-fÀ,‡CountUp`À,‰CountDown`À,…Reset`À11À9À=jhÀ=lkÀ16À8äÀ=akÀ=vqÀ*eÀ3âÀ7``q`}`e`‰CountDownÀ â#À-`À>â©CountDown`aâ"a#âaaäæ CountDownãfÀ-mttttttttttttxåaaè`aâ&À-aÀ1>åaafáaa`"äãäÀ3âÀ7}`q`z`e`‡CountUp9À>â§CountUp`aâ"a#âaaäæCountUpãeÀ-mnnnnnnnnnnnnoåaaè`aâ&À-aÀ1>åaae`a`"äãäÀ3âÀ7z`q` w`e`’NoOfStepsDownwards9À>â²NoOfStepsDownwards`aâ"a#âaaäæNoOfStepsDownwardsãbÀ-mxxxxxxxxxxxxlåaaè`aâ&À-aÀ1>åaab`t`"äãäÀ3âÀ7 w`q`t`e`�NoOfStepsUpwards9À>â°NoOfStepsUpwards`aâ"a#âaaäæNoOfStepsUpwardsãaÀ-mrrrrrrrrrrrrdåaaè`aâ&À-aÀ1>åaaa`t`"äãäÀ3âÀ7````}`q`…Reset9À>â (`aâ"a )âaaä *ãqÀ-mhhhhhhhhhhhhe`è`aâ¦ButtonÀ-aÀ1>`q`a`"äää>9�Up/Down CounterâÀ-`À=hfÀ-`À*c')+À.Ÿ| maxAmp MaxVal CountVal StartVal Gain TrueSamp errComp HiGain LoGain HalfESamp InStep DeStep ResToMax ResToMin | maxAmp := SignalProcessor maximumAmplitude. TrueSamp:=?NoOfSamps rounded. HalfESamp:=((TrueSamp+1)/2)truncated. StartVal := 0-HalfESamp. MaxVal := ((TrueSamp/2)-1)truncated. CountVal := maxAmp. Gain:= (23-(HalfESamp twoLog)) twoExp. errComp:=(Gain/2)*(1-?OffSetHalfStep). HiGain := Gain truncated. LoGain := ((Gain-HiGain)*(maxAmp+1)). InStep := ?NoOfStepsUpwards rounded. DeStep := (0-?NoOfStepsDownwards) rounded. StartVal := StartVal+(?FirstStepOffSet rounded). ResToMax := ?WrapAround true: MaxVal false: StartVal. ResToMin := ?WrapAround true: StartVal false: MaxVal. self initialValueAt: 0 xPut: InStep yPut: DeStep. self initialValueAt: 1 xPut: ResToMax yPut: MaxVal. self initialValueAt: 2 xPut: ResToMin yPut: CountVal. self initialValueAt: 3 xPut: StartVal yPut: HiGain. self initialValueAt: 4 xPut: errComp yPut: LoGain. À3`‹CounterRamp„kym1.`À=À!` pØŒ# q€pÀ0¨`` 0À € ÿ þ  € € @   áü!!!3óþ``aa$adÀ=À!`à°L æC0Aà@ @p@ pàP P ‰ùðppaa$adÀ-jÀ4777 8œEnter a name for this Sound.À4ªWrapAround)"À9À=åw såz mÀ=åbcåaažIf this value is greater than zero the output will generate a repeating ramp, otherwise the output will stop changing value when it reaches plus or minus one.À4 +::À9À=åy må``À=åwmåxmŽA value of greater than zero in this input will reset the output to minus one and hold it there until this value returns to zero or less. A gate to trigger module can be used on this input to alow the ramp to keep on moving at reset time.À4¯FirstStepOffSet)"À9À=åy måxmÀ=åwmåwm†If this value is not zero , then a reset will not return the output to minus one. If say a value of five was in this field , then a reset would produce an output level that would address the fith memory sample when used as an index in a memory reader or writer.À47)"À9À=å``åxmÀ=åz måwm—This should normaly be set to value one. if it is set to values over one, it will represent how many memory cells are skipped each sample cycle (asuming the output is being used as an index for memory readers or writers). This only has effect when the output is ramping upwards. À4<::À9À=åz må``À=åy måxm ˜When a value of zero or greater is applied to this input the output will start to ramp downwards from its current level as long as the reset signals is zero or less, and the NoOfStepsDownwards value is one or greater. Because this input overrides the CountUp input, this can be used as an up and down control if the CountUp input is kept high.À4.)"À9À=åz måxmÀ=åy måwm˜This should normaly be set to value one. if it is set to values over one, it will represent how many memory cells are skipped each sample cycle (asuming the output is being used as an index for memory readers or writers). This only has effect when the output is ramping downwards.À4%::À9À=å``å``À=åz måxm‰When a value of zero or greater is applied to this input the output will start to ramp upwards from its current level as long as the CountDown and reset signals are both zero or less, and the NoOfStepsUpwards value is one or greater.À4 #)"À9À=åx måy mÀ=aåw s•In 99.9% of cases this value should be zero. If it is set to one ,the output is moved down by half a step. The only time this should be set to one is if it is feeding a Wave Shaper with interpolation switched on and and nothing else. And even then it is only needed if it is absolutly important that the wave shaper interpolates on the center of the sample. In all other cases if you use one in this field , readers and writers will try to write on the border between samples and buzzes will be heard.À4 =)"À9À=åx må``À=aåy mšThis value should match any memory readers or writers Total number of samples. This represents the total number of sample in time that it will take for the output to ramp from minus one to plus one , and also the total number of samples (memory cells) in a memory reader or writer. ‘This is a Ramp Generator optimized for use as an index for memory readers and writers. When a logic value of one present at the "CountUp" input , the output starts to ramp up one step per sample cycle (as long as the "NoOfStepsUpwards" field has the value one). If a gate to trigger module is used in the CountUp input and the output is fed to the index of a "StepMemoryWriter" module, this can be used to write single words into ram at will (so long as the NoOfSamps values in the two modules match). PeteJohnstonsDSPMods Ver 5ãÀ(�Up/Down CounterÀ-cÀ14À-fÀ8‡CountUp&`À8‰CountDownæ CountDowm`À8…Reset *`À11À9À=hxÀ=pmÀ16À8äÀ=clÀ=vqÀ*hÀ3âÀ7}`g`z`q`‰CountDowmÀ â#À-`À>â©CountDowm`aâ"a#âaaä .ãgÀ-mzzzzzzzzzzzzl`è`aâ"À-aÀ1>è``g`a`"äãäÀ3âÀ7g`g`}`q`# =À>â%`aâ"a#âaaä&ãfÀ-mttttttttttttcaè`aâ"À-aÀ1>è`af`a`"äãäÀ3âÀ7z`q` w`e`�FirstStepOffSet =À>â !`aâ"a#âaaäæFirstStepOffSetãeÀ-mnnnnnnnnnnnn``è`aâ&À-aÀ1>è``e`t`"äãäÀ3âÀ7}`q`z`e`‘NoOfDownwardSteps =À>â±NoOfDownwardSteps`aâ"a#âaaäæNoOfDownwardStepsãbÀ-mxxxxxxxxxxxxlèueè`aâ&À-aÀ1>èueb`t`"äãäÀ3âÀ7t`q`q`e`‰NoOfSamps =À>â =`aâ"a#âaaä-ãdÀ-mddddddddddddz`è`aâ&À-aÀ1>èálad```"äãäÀ3âÀ7``q`}`e`�NoOfUpwardSteps =À>â¯NoOfUpwardSteps`aâ"a#âaaäæNoOfUpwardStepsãaÀ-mrrrrrrrrrrrrdèueè`aâ&À-aÀ1>èuea`t`"äãäÀ3âÀ7z`g` q`q`> =À>â (`aâ"a )âaaä *ãq `è`aâ"À-aÀ1>è``q`a`"äääÀ3âÀ7 `g`d`q`ŠWrapAround =À>â6`aâ"a#âaaäæ WrapAroundãcÀ-m~~~~~~~~~~~~taè`aâ"À-aÀ1>è`ac`a`"äãä> =�Up/Down CounterâÀ-`À=alÀ-` 4 / . ' , 7 *`-À=xÀ.ÀÀ3‘FreqControledRampÀ#À(ŠSRRamp ???À-bÀ14À-dÀ,‰Frequency`À,ŠWrapAround`À16À8äÀ=sdÀ=tlÀ*`!À â#À-`‡Mixer20âÀ-`À=odÀ-`À*b ' )À.‰| maxAmp | maxAmp := SignalProcessor maximumAmplitude. self initialValueAt: 0 xPut: 0 yPut:maxAmp+1. À3`†SRRamp„kym1.`À=À!`ðÿ���À���À@ÿÀ@‚ƒ@ÿ€ƒ@‚@À@À À@À@4@@d@@Ä @A„AC0CF`FLÀLX€Xpp````aa$adÀ=À!`{àB B r F0Gð 0q4Óe–džppaa$adÀ-cÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4%::À9À=å``å``À=åy  såw s˜With a value of one in this input, the output freququency should be half the sample rate, and a value of zero will give an output of DC (Ohz) or (held at its current value). Minus values will give the same frequencys as thier positive counterparts but the output will be inverted.À46::À9À=åy må{ mÀ=åwmåx m™If this input is greater than zero , the output will oscilate continuosly . When this input becomes zero or less, the output will continue to move in the same direction until it reaches plus one (if the frequency input is positve) or minus one (if the frequency input is negative).‡This is a ramp generater to be used when the ramp frequency adjustment has to be varied at sample rate and not controled by a hot paramitor. If the frequency input has a negative value the ramp is turned up side down. If the WrapAround input is greater than zero the ramp will continue to cycle , otherwise the output will ramp just once and rest at 1 or -1 depenant upon the polarity of the Frequency input. If the WrapAround input is fed via a "GateToTrigger' module and the output is sent through an "AsLogic" module (with value one in the invert field) , it can be used as a low function monostable. Although this module is not optimized for indexing , it could be used as an index for a wave table (Waveshaper) which needs to have true frequency modulation It shouldn't be to glitchy if the wavetable has an even number of samples and interpolation is switched on. PeteJohnstonsDSPMods Ver 5ãÀ(‘FreqControledRampÀ-bÀ14À-dÀ8ŠConstant50æWrap`À:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`aÀ16À8ãÀ=d`À=ubÀ*`>À â#À-`‘FreqControledRampâÀ-`À=a`À-`96À= xÀ.ÀÀ3šMixerAndGainWithWrapAroundÀ#À(™Mxr and gain with wrap???À-cÀ14âÀ11À9À=zrÀ=bgÀ16À8äÀ=sdÀ=tlÀ*`!6:âÀ-`À=odÀ-`&À.›| maxAmp IntGain FracGain | maxAmp := SignalProcessor maximumAmplitude. IntGain := ?Gain truncated. FracGain := (?Gain-IntGain)*maxAmp. self initialValueAt: 0 xPut: FracGain yPut: IntGain. self initialValueAt: 1 xPut: 0 yPut: self subSounds size. À3`”MixerAndGainWithWrap„kym1.`À=À!`¿à!ð¡8! áÌÿ€LxÿÿÌx?¡ð!à¡á@€ ¨ø( œç9Μç9΀à€ð€ø€¼<€žx€�ð€‡àƒðƒÀ�ø�€Ÿþ€¼€ð€à€œç9Î``aa$adÀ=À!`sÄRúŸúDSÄpù@ª«<täÅчp0ppaa$adÀ-cÀ4777/œEnter a name for this Sound.À4 $ % %4€À4<)"À9À=åwm`À=åw såx  s€šThis class has no description. PeteJohnstonsDSPMods Ver 5äšMixerAndGainWithWrapAroundÀ-bÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`À:›GenericSource Stereo Sample>ãã‹flamingos sãaÀ!aÀ%å{ maÀ*`aÀ=jÀ.ÀÀ3�MultiplyWithGainÀ#À(“MultiplyWithGain???À-bÀ14À-dÀ,†Input2`À,†Input1`À16À8äÀ=sdÀ=tlÀ*`!6�MultiplyWithGainâÀ-`À=odÀ-`À*b/-À.‰| maxAmp IntGain FracGain GainMaxed | maxAmp := SignalProcessor maximumAmplitude. GainMaxed := ?Gain. IntGain := GainMaxed truncated. FracGain := (GainMaxed-IntGain)*maxAmp. self initialValueAt: 0 xPut: IntGain yPut: FracGain . À3`�MultiplyWithGain„kym1.`À=À!`c€wÀ>8à0>0w1àc1à0`8`À€Æ1üGqCáAÁCáGqpv7@@ðÿ``aa$adÀ=À!`8 D@L D8;n+ê)ÊmÛGq|ppaa$adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À4¦Input1::À9À=å``å``À=åbaåx m€À4<)"À9À=åwmå``À=åx såaa€À4¦Input2::À9À=åxmå``À=åxmåx m€šThis class has no description. PeteJohnstonsDSPMods Ver 5ãÀ(�MultiplyWithGainÀ-cÀ14À-bÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`vÀ11À9À=pxÀ=xmÀ16À8ãÀ=w}À=aÀ*`>À â#À-`�MultiplyWithGainâÀ-`À=`}À-`!a!À=ejÀ.ÀÀ3†DivideÀ#À(‰Divide???À-bÀ14À-dÀ,…Input`À,‰DividedBy`À16À8äÀ=sdÀ=tlÀ*`!9>âÀ-`À=odÀ-`À*b!#À.˜| maxAmp ScaleFact | maxAmp := SignalProcessor maximumAmplitude. ScaleFact := (maxAmp+1)/?FullScale. self initialValueAt: 0 xPut: 1 yPut: ScaleFact . À3`†Divide„kym1.`À=À!`ÿÿÿÿ€€€€€À€à€à€à€À€€€�ÿÿù�ÿÿù�ÿÿù�ÿÿù€€€€À€à€à€à€À€€€€€€ÿÿÿÿ``aa$adÀ=À!`ÿÿ€€ƒ�ƒ�ƒ�€¿ù¿ù€ƒ�ƒ�ƒ�€€ÿÿppaa$adÀ-dÀ4777À9À=åaaåx mÀ=aaœEnter a name for this Sound.À49::À9À=å``å``À=åxma€À4©DividedBy::À9À=åy  såaaÀ=åw sa€À4©FullScale)"À9À=åy  så``À=åw såy m›see class name description.ÀÂãä©GapStringac€–The "Input" signal is divided by the "DevideBy" signal. As the maximum output of a sound is plus and minus one, it would not be able to do any maths that had a value outside these limits. You can however choose our own imaginary scale. If you put 256 into the "FullScale" window it will treat full scale as 256, and therefore if a signal of 1/256 (which would be one in your imaginary scale) was fed to the "DividedBy"input, then any signal fed to "input" would go to the output with no attenuation. This would mean that the integer part of the number would takeup 8 of the 24 bits and the fractional part would use the last 16 bits. If you wanted a multiply (Product) module to work on this same imaginary scale you would have to add a gain module with 256 in its gain field. Better still the"MultyplyWithGain" module uses 48 bits internaly and has a better resolution than the two seperate modules. Adds and subtracts will work just the same as normal regardless of the imaginary scale. This module has been set up so that a division by zero will make the output fullscale plus if the input is positive, full scale minus if the input is negative , and zero if the input is zero. PeteJohnstonsDSPMods Ver 5d zero if the input is zero.{|ã†DivideÀ:™GenericSource Mono Sample>ãä…MSDOSãaÀ!aÀ%å{ maÀ*`4aÀ=ckÀ.À*À(?À-bÀ14À-bÀ8ŠConstant17"`À16À8äÀ=omÀ=czÀ*aÀ3âÀ7````{`n`?&À>â9`aâ"a#âaaä"ãaÀ-mpppppppppppp|åaaè`aâ&À-aÀ1>åaaaáaa`"äãä>&(âÀ-`À=hyÀ-`!À=cwÀ=``À9À=n`À=vv©largeIcon