BOSS 980000 SoundCollectionPointfobjectRepresented:location:lastViewRectangle:lastIconSize:SoundCollectionaname:sounds:SoundCollection57272OrderedCollectionabbSoundPointaobjectRepresented:location:StereoMix2 xname:left:right:in1:pan1:scale1:in2:pan2:scale2:FatStringqstring:extraInformation:AndBackAgain FreqFastIdentityDictionaryadcAssociationabsoundEditorLayoutArraya`rSuperSample gname:frequency:gate:sample:setLoop:loopStart:loopEnd:loopFade:reverse:start:end:fromMemoryWriter:attackTime:releaseTime:scale:Sampledefaultafeedback`a`aTimeInSamplesaaaTimeInSecondsaagca`ConstantSoundnname:value:CountDown``7oneagAbstractedSoundClassuname:structureSound:icon:smallIcon:useFancyIcon:parameterSpecifications:classDescription:shouldExpandFirst:ioProfile:Up/Down CounterDSPProgramWithInputslname:inputs:initialValuesCodeString:programName:wavetable:tableAccess:tableStart:tableEnd:CounterRamp ???*cVariableSoundnname:CountUp*CountDown*ResetKymaCodeString pstring:bindings:| 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. BindingListad`CounterRampkym1none`Depth1ImageahByteArraya`` p# qp0`` 0      @   !!!3``aaMonoMappedPalette rgWordArraya`l``````$ddddab`aad?#`L C0A@ @p@ pPPppaaKymaMappedPaletteaf+l{~{~{~gygygy$ddddfbaad$jParameterSpecificationuname:typeName:viewType:rectangle:helpString:name<"w sz m"bcaaIf 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.9Resetsound1>"y m``"wmxmA 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.9FirstStepOffSet)*>"y mxm"wmwmIf 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.9NoOfStepsUpwards)*>"``xm"z mwmThis 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. 9CountDown11>"z m``"y mxm 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.9NoOfStepsDownwards)*>"z mxm"y mwmThis 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.9CountUp11>"````"z mxmWhen 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.9OffSetHalfStep)*>"x my m"aw sIn 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.9NoOfSamps)*>"x m``"ay mThis 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 5SoundIOProfileaeaa=audio6Up/Down Counter;a?vcsLayoutSoundVCSLayoutofirstTime:windowOrigin:windowExtent:components:selectedPreset:look:name:selectedLayout:subLayouts:editorOrigin:addedSubLayouts:"w{" xl*aVCSEventSourceComponentpmicrosound:layout:label:look:concreteEvent:displayType:presets:id:minimum:maximum:grid:taper:noDice:showNumber:isGenerated:affectedByPresets:LayoutFrameah``````ca`aResetKymaLookunameOrNil:superLook:database:iD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|iD}~jEe=u> y?BasicLook!+b#h0!e/XP\hThumbCap.gifreadGIF:hThumbCapWin:+c#i0!re/XP\hThumbMid.gif:asPatternhThumbMidWin:+b#h0!e/XP\hThumbGrab.gif:hThumbGrabWin:+b#h0!e/XP\hThumbEnd.gif:hThumbEndWin:+b#h0!e/XP\hDeThumbCap.gif:hDeThumbCapWin:+c#i0!re/XP\hDeThumbMid.gif:?hDeThumbMidWin:+b#h0!e/XP\hDeThumbGrab.gif:hDeThumbGrabWin:+b#h0!e/XP\hDeThumbEnd.gif:hDeThumbEndWin:+c#i0!re/XP\hScrollMid.gif:?hScrollBarMidWin:+b#h0!e/XP\hScrollLeftUp.gif:hScrollLeftUpWin:+b#h0!e/XP\hScrollLeftDown.gif:hScrollLeftDownWin:+b#h0!e/XP\hScrollLeftDisabled.gif:hScrollLeftDisabledWin:+b#h0!e/XP\hScrollRightUp.gif:hScrollRightUpWin:*hScrollRightDownWin:+b#h0!e/XP\hScrollRightDisabled.gif:hScrollRightDisabledWin:+b#h0!e/XP\vThumbCap.gif:vThumbCapWin:+c#i0!re/XP\vThumbMid.gif:?vThumbMidWin:+b#h0!e/XP\vThumbGrab.gif:vThumbGrabWin:+b#h0!e/XP\vThumbEnd.gif:vThumbEndWin:+b#h0!e/XP\vDeThumbCap.gif:vDeThumbCapWin:+c#i0!re/XP\vDeThumbMid.gif:?vDeThumbMidWin:+b#h0!e/XP\vDeThumbGrab.gif:vDeThumbGrabWin:+b#h0!e/XP\vDeThumbEnd.gif:vDeThumbEndWin:+c#i0!re/XP\vScrollMid.gif:?vScrollBarMidWin:+b#h0!e/XP\vScrollUpUp.gif:vScrollUpUpWin:+b#h0!e/XP\vScrollUpDown.gif:vScrollUpDownWin:+b#h0!e/XP\vScrollUpDisabled.gif:vScrollUpDisabledWin:+b#h0!e/XP\vScrollDownUp.gif:vScrollDownUpWin:+b#h0!e/XP\vScrollDownDown.gif:vScrollDownDownWin:+b#h0!e/XP\vScrollDownDisabled.gif:vScrollDownDisabledWin:+b#h0!e/XP\vGrowDown.gif:vGrowDownWin:+b#h0!e/XP\vGrowUp.gif:vGrowUpWin:+b#h0!e/XP\vGrowDisabled.gif:vGrowDisabledWin:+b#h0!e/XP\vShrinkDown.gif:vShrinkDownWin:+b#h0!e/XP\vShrinkUp.gif:vShrinkUpWin:+b#h0!e/XP\vShrinkDisabled.gif:vShrinkDisabledWin:+b#h0!e/XP\hGrowDown.gif:hGrowDownWin:+b#h0!e/XP\hGrowUp.gif:hGrowUpWin:+b#h0!e/XP\hGrowDisabled.gif:hGrowDisabledWin:+b#h0!e/XP\hShrinkDown.gif:hShrinkDownWin:+b#h0!e/XP\hShrinkUp.gif:hShrinkUpWin:+b#h0!e/XP\hShrinkDisabled.gif:hShrinkDisabledWin:+b#h0!e/XP\hFitDown.gif:hFitDownWin:+b#h0!e/XP\hFitUp.gif:hFitUpWin:+b#h0!e/XP\hFitDisabled.gif:hFitDisabledWin:+b#h0!e/XP\buttonNormalDownCap.gif:buttonNormalDownCapWin:+c#i0!re/XP\buttonNormalDownMid.gif:?buttonNormalDownMidWin:+b#h0!e/XP\buttonNormalDownEnd.gif:buttonNormalDownEndWin:+b#h0!e/XP\buttonNormalUpCap.gif:buttonNormalUpCapWin:+c#i0!re/XP\buttonNormalUpMid.gif:?buttonNormalUpMidWin:+b#h0!e/XP\buttonNormalUpEnd.gif:buttonNormalUpEndWin:+b#h0!e/XP\buttonNormalDisCap.gif:buttonNormalDisCapWin:+c#i0!re/XP\buttonNormalDisMid.gif:?buttonNormalDisMidWin:+b#h0!e/XP\buttonNormalDisEnd.gif:buttonNormalDisEndWin:+b#h0!e/XP\buttonSmallNormalDownCap.gif:buttonSmallNormalDownCapWin:+c#i0!re/XP\buttonSmallNormalDownMid.gif:?buttonSmallNormalDownMidWin:+b#h0!e/XP\buttonSmallNormalDownEnd.gif:buttonSmallNormalDownEndWin:+b#h0!e/XP\buttonSmallNormalUpCap.gif:buttonSmallNormalUpCapWin:+c#i0!re/XP\buttonSmallNormalUpMid.gif:?buttonSmallNormalUpMidWin:+b#h0!e/XP\buttonSmallNormalUpEnd.gif:buttonSmallNormalUpEndWin:+b#h0!e/XP\buttonSmallNormalDisCap.gif:buttonSmallNormalDisCapWin:+c#i0!re/XP\buttonSmallNormalDisMid.gif:?buttonSmallNormalDisMidWin:+b#h0!e/XP\buttonSmallNormalDisEnd.gif:buttonSmallNormalDisEndWin:yourselfXP\hScrollRightDown.gif:iD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopjqEe4 m5+b#h0!e9buttons\pauseUp19.gif:pauseUp19:+b#h0!e9buttons\pauseDown19.gif:pauseDown19:+b#h0!e9buttons\playUp19.gif:playUp19:+b#h0!e9buttons\playDown19.gif:playDown19:+b#h0!e9buttons\prevMarkerUp19.gif:prevMarkerUp19:+b#h0!e9buttons\prevMarkerDown19.gif:prevMarkerDown19:+b#h0!e9buttons\nextMarkerUp19.gif:nextMarkerUp19:+b#h0!e9buttons\nextMarkerDown19.gif:nextMarkerDown19:+b#h0!e9buttons\prevTimeUp19.gif:prevTimeUp19:+b#h0!e9buttons\prevTimeDown19.gif:prevTimeDown19:+b#h0!e9buttons\nextTimeUp19.gif:nextTimeUp19:+b#h0!e9buttons\nextTimeDown19.gif:nextTimeDown19:+b#h0!e9buttons\newMarkerUp19.gif:newMarkerUp19:+b#h0!e9buttons\newMarkerDown19.gif:newMarkerDown19:+b#h0!e9buttons\newMarkersUp19.gif:newMarkersUp19:+b#h0!e9buttons\newMarkersDown19.gif:newMarkersDown19:+b#h0!e9buttons\anchorUp19.gif:anchorUp19:+b#h0!e9buttons\anchorDown19.gif:anchorDown19:+b#h0!e9buttons\tlRecordDown.gif:tlRecordDown:+b#h0!e9buttons\tlRecordUp.gif:tlRecordUp:+b#h0!e9buttons\blankUp19.gif:tlBlankUp19:+b#h0!e9buttons\blankDown19.gif:tlBlankDown19:+b#h0!e9misc\submix.gif:tlSubmixIcon:+b#h0!e9misc\outputs.gif:tlOutputsIcon:+b#h0!e9misc\sourceLocation.gif:tlSourceLocation:+b#h0!e9misc\microphones\microphone.gif:tlTrackMicrophone:+b#h0!e9misc\microphones\microphoneG.gif:tlTrackMicrophonePlay:+b#h0!e9misc\microphones\microphoneR.gif:tlTrackMicrophoneRecord:+b#h0!e9misc\speakers\trkSpeaker.gif:tlTrackSpeaker:7tlTrackSpeakerSolo:+b#h0!e9misc\speakers\trkSpeakerMute.gif:tlTrackSpeakerMute:+b#h0!e9buttons\cachePlay19.gif:cachePlay19:+b#h0!e9buttons\cacheLive19.gif:cacheLive19:+b#h0!e9buttons\cacheRecord19.gif:cacheRecord19:+b#h0!e9buttons\tfInvertDown.gif:tfInvertDown:+b#h0!e9buttons\tfInvertUp.gif:tfInvertUp:+b#h0!e9buttons\tfLoopDown.gif:tfLoopDown:+b#h0!e9buttons\tfLoopUp.gif:tfLoopUp:+b#h0!e9buttons\tfOffsetDown.gif:tfOffsetDown:+b#h0!e9buttons\tfOffsetUp.gif:tfOffsetUp:+b#h0!e9buttons\tfRetroDown.gif:tfRetroDown:+b#h0!e9buttons\tfRetroUp.gif:tfRetroUp:+b#h0!e9buttons\tfScaleDurationDown.gif:tfScaleDurationDown:+b#h0!e9buttons\tfScaleDurationUp.gif:tfScaleDurationUp:+b#h0!e9buttons\tfScaleDurationToFitDown.gif:tfScaleDurationToFitDown:+b#h0!e9buttons\tfScaleDurationToFitUp.gif:tfScaleDurationToFitUp:+b#h0!e9buttons\tfScaleFunctionDown.gif:tfScaleFunctionDown:+b#h0!e9buttons\tfScaleFunctionUp.gif:tfScaleFunctionUp:+b#h0!e9buttons\tfSnapToGridDown.gif:tfSnapToGridDown:+b#h0!e9buttons\tfSnapToGridUp.gif:tfSnapToGridUp:+b#h0!e9buttons\tfSprayCanDown.gif:tfSprayCanDown:+b#h0!e9buttons\tfSprayCanUp.gif:tfSprayCanUp:+b#h0!e9buttons\tfSquareOffDown.gif:tfSquareOffDown:+b#h0!e9buttons\tfSquareOffUp.gif:tfSquareOffUp:+b#h0!e9buttons\tfThresholdDown.gif:tfThresholdDown:+b#h0!e9buttons\tfThresholdUp.gif:tfThresholdUp:2misc\speakers\trkSpeakerSolo.gif:iD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|iD}~iDiDiDiDiDiDiDiDiDiDiDiDiDjEe4 }5+b#h0!e!OSX\hThumbCap.gif:hThumbCapMac:+c#i0!re!OSX\hThumbMid.gif:?hThumbMidMac:+b#h0!e!OSX\hThumbEnd.gif:hThumbEndMac:+b#h0!e!OSX\hDeThumbCap.gif:hDeThumbCapMac:?hDeThumbMidMac:+b#h0!e!OSX\hDeThumbEnd.gif:hDeThumbEndMac:+b#h0!e!OSX\hScrollCap.gif:hScrollBarCapMac:+c#i0!re!OSX\hScrollMid.gif:?hScrollBarMidMac:+b#h0!e!OSX\hScrollEnd.gif:hScrollBarEndMac:+b#h0!e!OSX\hScrollLeftUp.gif:hScrollLeftUpMac:+b#h0!e!OSX\hScrollLeftDown.gif:hScrollLeftDownMac:+b#h0!e!OSX\hScrollLeftDisabled.gif:hScrollLeftDisabledMac:+b#h0!e!OSX\hScrollRightUp.gif:hScrollRightUpMac:+b#h0!e!OSX\hScrollRightDown.gif:hScrollRightDownMac:+b#h0!e!OSX\hScrollRightDisabled.gif:hScrollRightDisabledMac:+b#h0!e!OSX\vThumbCap.gif:vThumbCapMac:+c#i0!re!OSX\vThumbMid.gif:?vThumbMidMac:+b#h0!e!OSX\vThumbEnd.gif:vThumbEndMac:+b#h0!e!OSX\vDeThumbCap.gif:vDeThumbCapMac:+c#i0!re!OSX\vDeThumbMid.gif:?vDeThumbMidMac:+b#h0!e!OSX\vDeThumbEnd.gif:vDeThumbEndMac:+b#h0!e!OSX\vScrollCap.gif:vScrollBarCapMac:+c#i0!re!OSX\vScrollMid.gif:?vScrollBarMidMac:+b#h0!e!OSX\vScrollEnd.gif:vScrollBarEndMac:+b#h0!e!OSX\vScrollUpUp.gif:vScrollUpUpMac:+b#h0!e!OSX\vScrollUpDown.gif:vScrollUpDownMac:+b#h0!e!OSX\vScrollUpDisabled.gif:vScrollUpDisabledMac:+b#h0!e!OSX\vScrollDownUp.gif:vScrollDownUpMac:+b#h0!e!OSX\vScrollDownDown.gif:vScrollDownDownMac:+b#h0!e!OSX\vScrollDownDisabled.gif:vScrollDownDisabledMac:+b#h0!e!OSX\vGrowDown.gif:vGrowDownMac:+b#h0!e!OSX\vGrowUp.gif:vGrowUpMac:+b#h0!e!OSX\vGrowDisabled.gif:vGrowDisabledMac:+b#h0!e!OSX\vShrinkDown.gif:vShrinkDownMac:+b#h0!e!OSX\vShrinkUp.gif:vShrinkUpMac:+b#h0!e!OSX\vShrinkDisabled.gif:vShrinkDisabledMac:+b#h0!e!OSX\hGrowDown.gif:hGrowDownMac:+b#h0!e!OSX\hGrowUp.gif:hGrowUpMac:+b#h0!e!OSX\hGrowDisabled.gif:hGrowDisabledMac:+b#h0!e!OSX\hShrinkDown.gif:hShrinkDownMac:+b#h0!e!OSX\hShrinkUp.gif:hShrinkUpMac:+b#h0!e!OSX\hShrinkDisabled.gif:hShrinkDisabledMac:+b#h0!e!OSX\hFitDown.gif:hFitDownMac:+b#h0!e!OSX\hFitUp.gif:hFitUpMac:+b#h0!e!OSX\hFitDisabled.gif:hFitDisabledMac:+b#h0!e!OSX\spaceFiller.gif:spaceFillerMac:+b#h0!e!OSX\buttonNormalDownCap.gif:buttonNormalDownCapMac:+c#i0!re!OSX\buttonNormalDownMid.gif:?buttonNormalDownMidMac:+b#h0!e!OSX\buttonNormalDownEnd.gif:buttonNormalDownEndMac:+b#h0!e!OSX\buttonNormalUpCap.gif:buttonNormalUpCapMac:+c#i0!re!OSX\buttonNormalUpMid.gif:?buttonNormalUpMidMac:+b#h0!e!OSX\buttonNormalUpEnd.gif:buttonNormalUpEndMac:+b#h0!e!OSX\buttonNormalDisCap.gif:buttonNormalDisCapMac:+c#i0!re!OSX\buttonNormalDisMid.gif:?buttonNormalDisMidMac:+b#h0!e!OSX\buttonNormalDisEnd.gif:buttonNormalDisEndMac:+b#h0!e!OSX\buttonSmallNormalDownCap.gif:buttonSmallNormalDownCapMac:+c#i0!re!OSX\buttonSmallNormalDownMid.gif:?buttonSmallNormalDownMidMac:+b#h0!e!OSX\buttonSmallNormalDownEnd.gif:buttonSmallNormalDownEndMac:+b#h0!e!OSX\buttonSmallNormalUpCap.gif:buttonSmallNormalUpCapMac:+c#i0!re!OSX\buttonSmallNormalUpMid.gif:?buttonSmallNormalUpMidMac:+b#h0!e!OSX\buttonSmallNormalUpEnd.gif:buttonSmallNormalUpEndMac:+b#h0!e!OSX\buttonSmallNormalDisCap.gif:buttonSmallNormalDisCapMac:+c#i0!re!OSX\buttonSmallNormalDisMid.gif:?buttonSmallNormalDisMidMac:+b#h0!e!OSX\buttonSmallNormalDisEnd.gif:buttonSmallNormalDisEndMac:+b#h0!e!OSX\buttonSmallDMenuFlatDownCap.gif:buttonSmallDMenuFlatDownCapMac:+c#i0!re!OSX\buttonSmallDMenuFlatDownMid.gif:?buttonSmallDMenuFlatDownMidMac:+b#h0!e!OSX\buttonSmallDMenuFlatDownEnd.gif:buttonSmallDMenuFlatDownEndMac:+b#h0!e!OSX\buttonSmallFlatDownEnd.gif:buttonSmallFlatDownEndMac:+b#h0!e!OSX\buttonSmallDMenuFlatUpCap.gif:buttonSmallDMenuFlatUpCapMac:+c#i0!re!OSX\buttonSmallDMenuFlatUpMid.gif:?buttonSmallDMenuFlatUpMidMac:+b#h0!e!OSX\buttonSmallDMenuFlatUpEnd.gif:buttonSmallDMenuFlatUpEndMac:+b#h0!e!OSX\buttonSmallFlatUpEnd.gif:buttonSmallFlatUpEndMac:+b#h0!e!OSX\buttonSmallDMenuFlatDisCap.gif:buttonSmallDMenuFlatDisCapMac:+c#i0!re!OSX\buttonSmallDMenuFlatDisMid.gif:?buttonSmallDMenuFlatDisMidMac:+b#h0!e!OSX\buttonSmallDMenuFlatDisEnd.gif:buttonSmallDMenuFlatDisEndMac:+b#h0!e!OSX\buttonSmallFlatDisEnd.gif:buttonSmallFlatDisEndMac:2OSX\hDeThumbMid.gif:??iD@AiDBCiDDEiDFGiDHIiDJKiDLMiDNOiDPQiDRSiDTUiDVWiDXYiDZ[iD\]iD^_iD`aiDbciDdeiDfgiDhiiDjkiDlmiDnoiDpqiDrsiDtuiDvwiDxyiDz{iD|}iD~iDjDEEe4einitializeBasicButtonIconsinitializeTimelineButtonIconsinitializeFileOrganizerButtonIconsinitializeVCSButtonIconsinitializeTAUButtonIcons5+b#h0!e6misc\warn.gif:warnIcon:+b#h0!e6misc\stop.gif:stopIcon:+b#h0!e6misc\speakers\speaker.gif:speaker:+b#h0!e6buttons\disk21.gif:disk21:+b#h0!e6buttons\dropDownUp17.gif:dropDownUp17:+b#h0!e6buttons\dropDownUp19.gif:dropDownUp19:+b#h0!e6buttons\dropDownDown19.gif:dropDownDown19:+b#h0!e6buttons\makeSelectionUp19.gif:makeSelectionUp19:+b#h0!e6buttons\editSelectionUp19.gif:editSelectionUp19:+b#h0!e6buttons\noSelectionUp19.gif:noSelectionUp19:+b#h0!e6buttons\warpSelectionUp19.gif:warpSelectionUp19:+b#h0!e6buttons\makeSelectionDown19.gif:makeSelectionDown19:+b#h0!e6buttons\editSelectionDown19.gif:editSelectionDown19:+b#h0!e6buttons\noSelectionDown19.gif:noSelectionDown19:+b#h0!e6buttons\warpSelectionDown19.gif:warpSelectionDown19:+b#h0!e6buttons\shapeRectangleUp19.gif:shapeRectangleUp19:+b#h0!e6buttons\shapeEllipseUp19.gif:shapeEllipseUp19:+b#h0!e6buttons\shapePolygonUp19.gif:shapePolygonUp19:+b#h0!e6buttons\shapeTrackUp19.gif:shapeTrackUp19:+b#h0!e6buttons\shapeRectangleDown19.gif:shapeRectangleDown19:+b#h0!e6buttons\shapeEllipseDown19.gif:shapeEllipseDown19:+b#h0!e6buttons\shapePolygonDown19.gif:shapePolygonDown19:+b#h0!e6buttons\shapeTrackDown19.gif:shapeTrackDown19:+b#h0!e6buttons\combinationSingleUp19.gif:combinationSingleUp19:+b#h0!e6buttons\combinationPlusUp19.gif:combinationPlusUp19:+b#h0!e6buttons\combinationTimesUp19.gif:combinationTimesUp19:+b#h0!e6buttons\combinationMinusUp19.gif:combinationMinusUp19:+b#h0!e6buttons\combinationSingleDown19.gif:combinationSingleDown19:+b#h0!e6buttons\combinationPlusDown19.gif:combinationPlusDown19:+b#h0!e6buttons\combinationTimesDown19.gif:combinationTimesDown19:+b#h0!e6buttons\combinationMinusDown19.gif:combinationMinusDown19:+b#h0!e6buttons\combinationFrontDown19.gif:combinationFrontDown19:+b#h0!e6buttons\combinationFrontUp19.gif:combinationFrontUp19:+b#h0!e6buttons\cursorLoopFwdBkwdPlayUp19.gif:cursorLoopFwdBkwdPlayUp19:+b#h0!e6buttons\cursorLoopSelPlayUp19.gif:cursorLoopSelPlayUp19:+b#h0!e6buttons\cursorLoopPlayUp19.gif:cursorLoopPlayUp19:+b#h0!e6buttons\cursorNormalPlayUp19.gif:cursorNormalPlayUp19:+b#h0!e6buttons\cursorLoopFwdBkwdPlayDown19.gif:cursorLoopFwdBkwdPlayDown19:+b#h0!e6buttons\cursorLoopSelPlayDown19.gif:cursorLoopSelPlayDown19:+b#h0!e6buttons\cursorLoopPlayDown19.gif:cursorLoopPlayDown19:+b#h0!e6buttons\cursorNormalPlayDown19.gif:cursorNormalPlayDown19:+b#h0!e6buttons\renderSOSUp19.gif:renderSOSUp19:+b#h0!e6buttons\renderGrainUp19.gif:renderGrainUp19:4renderImpulseUp19:+b#h0!e6buttons\renderFilterUp19.gif:renderFilterUp19:+b#h0!e6buttons\renderSamplesUp19.gif:renderSamplesUp19:+b#h0!e6buttons\createModuleUp19.gif:createModuleUp19:+b#h0!e6buttons\renderSOSDown19.gif:renderSOSDown19:+b#h0!e6buttons\renderGrainDown19.gif:renderGrainDown19:+b#h0!e6buttons\renderImpulseDown19.gif:renderImpulseDown19:+b#h0!e6buttons\renderFilterDown19.gif:renderFilterDown19:+b#h0!e6buttons\renderSamplesDown19.gif:renderSamplesDown19:+b#h0!e6buttons\createModuleDown19.gif:createModuleDown19:+b#h0!e6buttons\hearAllUp19.gif:hearAllUp19:+b#h0!e6buttons\hearSelUp19.gif:hearSelUp19:+b#h0!e6buttons\hearAllDown19.gif:hearAllDown19:+b#h0!e6buttons\hearSelDown19.gif:hearSelDown19:+b#h0!e6buttons\colorSetGrayScaleUp19.gif:colorSetGrayScaleUp19:+b#h0!e6buttons\colorSetInvGrayScaleUp19.gif:colorSetInvGrayScaleUp19:+b#h0!e6buttons\colorSetRainbowUp19.gif:colorSetRainbowUp19:+b#h0!e6buttons\colorSetGrayScaleDown19.gif:colorSetGrayScaleDown19:+b#h0!e6buttons\colorSetInvGrayScaleDown19.gif:colorSetInvGrayScaleDown19:+b#h0!e6buttons\colorSetRainbowDown19.gif:colorSetRainbowDown19:initializeMoreIconButtonsbuttons\renderImpulseUp19.gif:iD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|jD}~fEe4 m5+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:+b#h0!e=buttons\modifySpectFreqUp19.gif: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:;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=faders\verticalYellowMarker.gif:verticalYellowMarker:+b#h0!e=faders\horizontalYellowMarker.gif:horizontalYellowMarker:+b#h0!e=buttons\embossGradientUp19.gif:embossGradientUp19:+b#h0!e=buttons\embossGradientDown19.gif:embossGradientDown19:+b#h0!e=buttons\debossGradientUp19.gif:debossGradientUp19:+b#h0!e=buttons\debossGradientDown19.gif:debossGradientDown19:+b#h0!e=buttons\stencilGradientUp19.gif:stencilGradientUp19:+b#h0!e=buttons\stencilGradientDown19.gif:stencilGradientDown19:+b#h0!e=buttons\stampGradientUp19.gif:stampGradientUp19:+b#h0!e=buttons\stampGradientDown19.gif:stampGradientDown19:+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:+b#h0!e=misc\mixPoint9.gif:mixPoint9:=zapCachebuttons\deSelectionDown19.gif:iD iD!"iD#$iD%&iD'(jD)*Ee4 i5+b#h0!e"buttons\Disabled10.gif:disabled10:+b#h0!e"buttons\Up10.gif:up10:+b#h0!e"buttons\Down10.gif:down10:+b#h0!e"buttons\Disabled15.gif:disabled15:+b#h0!e"buttons\Up15.gif:up15: down15:+b#h0!e"buttons\Disabled17.gif:disabled17:+b#h0!e"buttons\Up17.gif:up17:+b#h0!e"buttons\Down17.gif:down17:+b#h0!e"buttons\Disabled19.gif:disabled19:+b#h0!e"buttons\Up19.gif:up19:+b#h0!e"buttons\Down19.gif:down19:+b#h0!e"buttons\Disabled20.gif:disabled20:+b#h0!e"buttons\Up20.gif:up20:+b#h0!e"buttons\Down20.gif:down20:+b#h0!e"buttons\Disabled21.gif:disabled21:+b#h0!e"buttons\Up21.gif:up21:+b#h0!e"buttons\Down21.gif:down21:+b#h0!e"buttons\Disabled36.gif:disabled36:+b#h0!e"buttons\Up36.gif:up36:+b#h0!e"buttons\Down36.gif:down36:buttons\Down15.gif:i i!"i#$i%&i'(i)*i+,j-.Ee4 i5inheritingFrom:",+c#i0!re OS-X\windowBackground.gif:?windowBackground:+c#i0!re OS-X\dialogBackground.gif:?dialogBackground:ĪColorValue/red:green:blue:selectionBackgroundColor:fieldFocusColor:+c#i0!re OS-X\menuBackground.gif:?menuBackground:+c#i0!re OS-X\menuSelectedBackground.gif:?menuSelectedBackground:'+dp 5$j?family$cLucida GrandeVerdana*?pixelSizem?leading`?baselinem?lineGridp?italic?boldnessaa?underline?color?alignment`synthesizeTextStyle: `$`systemFont:'+dp 5$j?=$cLucida GrandeVerdana*?#m?%`?'m?)p?+?-bc?/?1?3`4 `5systemEmphasizedFont:'+dp 5$j?=$cLucida GrandeVerdana*?#l?%`?'l?)o?+?-aa?/?1?3`4 `5systemListFont:'+dp 5$j?=$cLucida GrandeVerdana*?#k?%`?'k?)n?+?-aa?/?1?3`4 `5systemSmallFont:'+dp 5$j?=$cLucida GrandeVerdana*?#k?%`?'k?)n?+?-bc?/?1?3`4 `5systemSmallEmphasizedFont:>systemLabelFont:'+dp 5$j?=$cLucida GrandeVerdana*?#i?%`?'i?)l?+?-aa?/?1?3`4 `5systemMiniFont:'+dp 5$j?=$bVerdana*?#m?%`?'m?)p?+?-aa?/?1?3`4 `5applicationFont:'+dp 5$j?=$bVerdana*?#m?%`?'m?)p?+?-bc?/?1?3`4 `5applicationEmphasizedFont:'+dp 5$j?=$bVerdana*?#l?%`?'l?)o?+?-aa?/?1?3`4 `5applicationListFont:'+dp 5$j?=$bVerdana*?#k?%`?'k?)n?+?-aa?/?1?3`4 `5applicationSmallFont:'+dp 5$j?=$bVerdana*?#k?%`?'k?)n?+?-bc?/?1?3`4 `5applicationSmallEmphasizedFont:'+dp 5$j?=$bVerdana*?#j?%`?'j?)m?+?-aa?/?1?3`4 `5applicationLabelFont:'+dp 5$j?=$bVerdana*?#i?%`?'i?)l?+?-aa?/?1?3`4 `5applicationMiniFont:'+dp 5$k?=$cCourierCourier New*?#m?fixedTabs`?%`?'m?)p?+?-aa?/?1?3`4 `5applicationFixedFont:5$j?=$cLucida GrandeVerdana*?#j?%`?'j?)m?+?-aa?/?1?3`4 `5?hearSelDown19':iD iD!"iD#$j%Ee4 i5+b#h0!e&buttons\reanalyzeUp16.gif:reanalyzeUp16:+b#h0!e&buttons\reanalyzeDown16.gif:reanalyzeDown16:+b#h0!e&buttons\plusUp16.gif:plusUp16:+b#h0!e&buttons\plusDown16.gif:plusDown16:+b#h0!e&buttons\minusUp16.gif:minusUp16:+b#h0!e&buttons\minusDown16.gif:minusDown16:+b#h0!e&buttons\plus17.gif:plus17:+b#h0!e&buttons\minus17.gif:minus17:+b#h0!e&buttons\groupedDown19.gif:groupedDown19:$groupedUp19:+b#h0!e&buttons\loop19.gif:loop19:+b#h0!e&buttons\originalEnvelope19.gif:originalEnvelope19:+b#h0!e&buttons\unvoicedOnly19.gif:unvoicedOnly19:+b#h0!e&buttons\voicedOnly19.gif:voicedOnly19:+b#h0!e&buttons\doubleSpeed19.gif:doubleSpeed19:+b#h0!e&buttons\halveSpeed19.gif:halveSpeed19:+b#h0!e&buttons\normalSpeed19.gif:normalSpeed19:+b#h0!e&buttons\tauIcon39.gif:tauIcon39:2buttons\groupedUp19.gif:j Ve4  q5" , "lookBackground:īSimpleTrack+width:color:faderBorder:+b#h0!e $faders\faderRightWaldo.gif:verticalFaderKnob:'faders\rotaryTrack20.gif:convertToSystemPalettered(rotaryFaderKnob:faders\circularTrack20.gifcircularFaderKnob:+c#i0!re $backgrounds\stone\smoothBlue.gif:?vcsBackground:$c$b>c$b=b$b=bvcsBorders:vcsScopeBackground:vcsScopeForeground:cyanvcsScopeInfoColor:+cp $$j?=$bcomic sans ms*?#l?%b?'j?)n?+?-`a?/?1?3`4 `vcsLabelTextStyle:+cp $$j?=$bcomic sans ms*?#l?%b?'j?)n?+?-aa?/?1?3`4 `vcsTextStyle:backgrounds\stone\smoothDarkGray.gif:??vcsScopeForeground=?vcsScopeBackground>?verticalFaderKnob' +?vcsBackground' 6"aax m"aaEnter a name for this Sound.9InputssoundCollection'>"``"aaaThis class has no description. PeteJohnstonsDSPMods Ver 5"aa=%MixerWithWrapAround*b?Negate$Negate ???*a*Input3self initialValueAt:0 xPut:0 yPut:0. 8`Negatekym1=`?#`8 8RR 2 <3ππ``aa&ad?#`ppaa2+lz{z{z{ffffff$ddddfbaad$b9<<<>"aax m"aaEnter a name for this Sound.9input11>"``"aaa 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.1"aa%%Negate?TrackAndPreHold$TrackAndPreHold???*b*Input*Gate3self initialValueAt: 0 xPut: 1 yPut: 0. 8`TrackAndPreHoldkym1=`?#`??À 8 0P`@`HB@A@D@@@? ``aa&ad?#`sXppaa "aax m"aaEnter a name for this Sound.9Gate11>"ba``"x sx mWhen 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.9+11>"```"z mx mThis 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"aa=%TrackAndPreHold1?GateToTrigger$GateToTrigger???*a*Input3 | 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. 8`GateToTriggerkym1=`?#`@D@D@D@D@D@D@D|``aa&ad?#`|yDIDIDI@A@A@A@Appaa2+l{~{~{~gygygy$ddddfbaad$d9<<<>"aax m"aaEnter a name for this Sound.9PlusAndMinusOne)*>"y  s``"aay mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.9+11>"``"xma9Invert)*>"xm``"x  sy mWhen 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"aa=%GateToTrigger`?Toggle$Toggle ???*a*Input3 | 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. 8`Togglekym1=`?#```aa&ad?#`qQQQAAAAppaa+ad$d9<<<0Enter a name for this Sound.9 )*!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).95)*6When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.9+11;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"aa=%Toggle``*Triggersa?Up/Down Counter$CounterRamp ???*c*CountUp*CountDown*Reset3| 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. 8`CounterRampkym1=`?#` p# qp0`` 0      @   !!!3``aa&ad?#`L C0A@ @p@ pPPppaa2+l{~{~{~gygygy$ddddfbaad$j9<<<>"aax m"aaEnter a name for this Sound.9()*>"w sz m"bcaaIf 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.9011>"y m``"wmxmA 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.97)*>"y mxm"wmwmIf 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.9=)*>"``xm"z mwmThis 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. 9#11>"z m``"y mxm 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.9))*>"z mxm"y mwmThis 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.9/11>"````"z mxmWhen 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.95)*>"x my m"aw sIn 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.9;)*>"x m``"ay mThis 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"aa=%Up/Down Countera7Reset``a7CountDown``7CountUpa`SignalProcessor sampleRate*2?TrackAndPreHold$TrackAndPreHold???*b*Input*Gate3self initialValueAt: 0 xPut: 1 yPut: 0. 8`TrackAndPreHoldkym1=`?#`??À 8 0P`@`HB@A@D@@@? ``aa&ad?#`sXppaa+ad$c9<<<>"aax m"aaEnter a name for this Sound.9-11>"ba``"x sx mWhen 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.9+11>"```"z mx mThis 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"aa=%TrackAndPreHold2;'`?AsLogic$AsLogic???*a*!3 | 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. 8`AsLogickym1=`?#` } pl9``aa&ad?#` UVb pppaa+ad$d9<<<0Enter a name for this Sound.95)*6When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.9+11;9 )*!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"aa=%Invert`(aa'?#`? ?@@000~~000>``aa&ad?#`  #""""&2$' ppaa2+lz{z{z{ffffff$ddddfbaad$b9<<<>"aax m"aaEnter a name for this Sound.9Triggers11>"``"aaaThis prototype outputs the duration found between two triggers in a range from 0 to 1 mapped from 0 s to 1 s."bb%subaudio6TriggersDuration;a?*,"fu"hn*a37``````ca`aFreqLow<?;` *FreqLow`a .afaderaaFreqLowa$orrrrrrrrrrrrrrqs{`aFader;a? 5ra`h` . 5<?;`TriggersDuration$`"bv$` <`Differencelname:input:minusInput:6Compair;a?*,"qn"`~*` 5<?;`Compair$`"in$`= "`MemoryWriterename:input:captureDuration:global:cyclic:recordingName:silent:trigger:6MemoryWriter;a?replaceableInput?GateToTrigger$GateToTrigger???*a*Input3 | 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. 8`GateToTriggerkym1=`?#`@D@D@D@D@D@D@D|``aa&ad?#`|yDIDIDI@A@A@A@Appaa2+l{~{~{~gygygy$ddddfbaad$d9<<<>"aax m"aaEnter a name for this Sound.95)*>"y  s``"aay mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.9+11>"``"xma9 )*>"xm``"x  sy mWhen 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"aa=%6GateToTrigger;a?*,"sd"xp*` 5<?;`GateToTrigger$`"sd$``0`+/afeedbacka`+`?*,:"hn*a37``````ca`aFreqLow<?;` *#`a .a$aa%a&s{`a';a? 5s{a`h` . 5<?;`AndBackAgain Freq$a9"rv$`?soundEditorIconSizedaa"`a  $`"sd$``165;a?*,"qn"`~*` 5<>$`"in$`>6';a?*,"w{" xl*a37``````ca`a:; * -`a .a /aa 0q 1``a 2;a? 5``q`a` . 5;Up/Down Counter$`"al$`a(+defaulta-`a`a.2a1 a"a7"`i"red