BOSS 980000 SoundCollectionPointfobjectRepresented:location:lastViewRectangle:lastIconSize:SoundCollectionaname:sounds:SoundCollection21218OrderedCollectionabjSoundPointaobjectRepresented:location:AbstractedSoundClassuname:structureSound:icon:smallIcon:useFancyIcon:parameterSpecifications:classDescription:shouldExpandFirst:ioProfile:RisingFallingTriggers3OrGateDSPProgramWithInputslname:inputs:initialValuesCodeString:programName:wavetable:tableAccess:tableStart:tableEnd:OrGate ???LazyVariableaname:inputsKymaCodeString pstring:bindings: | 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. BindingListad`OrGatekym1none`Depth1ImageahByteArraya``|<``aaMonoMappedPalette rgWordArraya`l``````Arraya`ddddab`aad15` `ppaaKymaMappedPaletteaf=l{~{~{~gygygy!ddddfbaad!dParameterSpecificationuname:typeName:viewType:rectangle:helpString:name11RectangleabPointabaax m7aaEnter a name for this Sound..InputssoundCollection>37````7aax mMaximun 30 inputs.InverthotValuevalue37xm``7x  sy mThis 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)..PlusAndMinusOne%&37bc``7w sy mWhen 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 5SoundIOProfileaeaa/audioRisingFallingTriggers ???*b3GateToTrigger;GateToTrigger???*aVariableSoundn"Input% | 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. *`GateToTriggerkym1/`15`@D@D@D@D@D@D@D|``aa9=l``````!ddddab`aad15`|yDIDIDI@A@A@A@Appaa&ad!d.1112Enter a name for this Sound..,%&37y  s``7aay mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..inputsound937``7xma.$%&37xm``7x  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 53aa/6GateToTrigger` Gate`:%`3AsLogic;AsLogic???*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. *`AsLogickym1/`15` } pl9``aa*ad15` UVb pppaa&ad!d.1112Enter a name for this Sound..,%&3When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..899:.$%&?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 53aa/6Invert`&1 ```15```aa8ad15` `ppaa'=lz{z{z{ffffff!ddddfbaad!b.11137aax m7aaEnter a name for this Sound..Gate9937``7aaaThis prototype outputs a triggers on each rising or falling edges of its input.3aa66RisingFallingTriggersGenericSourcenname:source:leftChannel:rightChannel:sample:autoloop:trigger:attackTime:releaseTime:scale:frequency:GenericSource Mono SampleRAMMSDOSaTimeInSamplesaaaTimeInSecondsaa{ maFrequencyInHertzaa`7la.3TriggerCounterMixeroname:inputs:left:right:retrograde:reverse:TriggerCounter ???*b3GateToTrigger;GateToTrigger???*a Input% | 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. *`GateToTriggerkym1/`15`@D@D@D@D@D@D@D|``aa*ad15`|yDIDIDI@A@A@A@Appaa'=l{~{~{~gygygy!ddddfbaad!d.11137aax m7aaEnter a name for this Sound..,%&37y  s``7aay mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..89937``7xma.$%&37xm``7x  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 53aa/6GateToTrigger`3Up/Down Counter;CounterRamp ???*c CountUp CountDown Reset%| 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. *`CounterRampkym1/`15` p# qp0`` 0      @   !!!3``aa*ad15`L C0A@ @p@ pPPppaa'=l{~{~{~gygygy!ddddfbaad!j.11137aax m7aaEnter a name for this Sound..WrapAround%&37w sz m7bcaaIf 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..Reset9937y m``7wmxmA 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..FirstStepOffSet%&37y mxm7wmwmIf 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..NoOfStepsUpwards%&37``xm7z 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. .CountDown9937z m``7y 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..NoOfStepsDownwards%&37z mxm7y 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..CountUp9937````7z 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..OffSetHalfStep%&37x my m7aw 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..NoOfSamps%&37x m``7ay 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 53aa/6Up/Down CounteraConstantSoundnname:value:Reset`0 a >CountDown`a TriggersInput`?MaxCountOfTriggers*2`; %`5Invert*a &0-10-1`aa15` @ @  @ @  @ @  @ @ 8`(   @8p``aa8ad15` _d $ @`  @` ppaa*ad!c.11137aax m7aaTriggerCounter.MaxCountOfTriggers%&37````7aax g.TriggersInput9937aa`7av sThis sound counts the triggers on the input and outputs a trigger when !MaxCountOfTriggers has been reached. Side effect: Extra clicks could be outputted if this value is changed.3aa66FatStringqstring:extraInformation:TriggerCounterFastIdentityDictionaryaddAssociationabreplaceableInputPulseTrainwname:period:variableDutyCycle:dutyCycle:gate:PulseTrain!FreqLow hz inverseaaa 0soundEditorLayout!b 4` 0vcsLayoutSoundVCSLayoutofirstTime:windowOrigin:windowExtent:components:selectedPreset:look:name:selectedLayout:subLayouts:editorOrigin:addedSubLayouts:7 s a7 x |*bVCSEventSourceComponentpmicrosound:layout:label:look:concreteEvent:displayType:presets:id:minimum:maximum:grid:taper:noDice:showNumber:isGenerated:affectedByPresets:LayoutFrameah````u`p`FreqLowKymaLookunameOrNil:superLook:database:0Waldo0Classic , v 0hScrollRightDownWinBlockClosureacCompiledBlockbbb5h0!eCompiledMethodbc`5j4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|iD}~jEe1u2 y 0BasicLook5?b5h0!e#XP\hThumbCap.gifreadGIF:hThumbCapWin:?c5i0!re#XP\hThumbMid.gif.asPatternhThumbMidWin:?b5h0!e#XP\hThumbGrab.gif.hThumbGrabWin:?b5h0!e#XP\hThumbEnd.gif.hThumbEndWin:?b5h0!e#XP\hDeThumbCap.gif.hDeThumbCapWin:?c5i0!re#XP\hDeThumbMid.gif.3hDeThumbMidWin:?b5h0!e#XP\hDeThumbGrab.gif.hDeThumbGrabWin:?b5h0!e#XP\hDeThumbEnd.gif.hDeThumbEndWin:?c5i0!re#XP\hScrollMid.gif.3hScrollBarMidWin:?b5h0!e#XP\hScrollLeftUp.gif.hScrollLeftUpWin:?b5h0!e#XP\hScrollLeftDown.gif.hScrollLeftDownWin:?b5h0!e#XP\hScrollLeftDisabled.gif.hScrollLeftDisabledWin:?b5h0!e#XP\hScrollRightUp.gif.hScrollRightUpWin:>hScrollRightDownWin:?b5h0!e#XP\hScrollRightDisabled.gif.hScrollRightDisabledWin:?b5h0!e#XP\vThumbCap.gif.vThumbCapWin:?c5i0!re#XP\vThumbMid.gif.3vThumbMidWin:?b5h0!e#XP\vThumbGrab.gif.vThumbGrabWin:?b5h0!e#XP\vThumbEnd.gif.vThumbEndWin:?b5h0!e#XP\vDeThumbCap.gif.vDeThumbCapWin:?c5i0!re#XP\vDeThumbMid.gif.3vDeThumbMidWin:?b5h0!e#XP\vDeThumbGrab.gif.vDeThumbGrabWin:?b5h0!e#XP\vDeThumbEnd.gif.vDeThumbEndWin:?c5i0!re#XP\vScrollMid.gif.3vScrollBarMidWin:?b5h0!e#XP\vScrollUpUp.gif.vScrollUpUpWin:?b5h0!e#XP\vScrollUpDown.gif.vScrollUpDownWin:?b5h0!e#XP\vScrollUpDisabled.gif.vScrollUpDisabledWin:?b5h0!e#XP\vScrollDownUp.gif.vScrollDownUpWin:?b5h0!e#XP\vScrollDownDown.gif.vScrollDownDownWin:?b5h0!e#XP\vScrollDownDisabled.gif.vScrollDownDisabledWin:?b5h0!e#XP\vGrowDown.gif.vGrowDownWin:?b5h0!e#XP\vGrowUp.gif.vGrowUpWin:?b5h0!e#XP\vGrowDisabled.gif.vGrowDisabledWin:?b5h0!e#XP\vShrinkDown.gif.vShrinkDownWin:?b5h0!e#XP\vShrinkUp.gif.vShrinkUpWin:?b5h0!e#XP\vShrinkDisabled.gif.vShrinkDisabledWin:?b5h0!e#XP\hGrowDown.gif.hGrowDownWin:?b5h0!e#XP\hGrowUp.gif.hGrowUpWin:?b5h0!e#XP\hGrowDisabled.gif.hGrowDisabledWin:?b5h0!e#XP\hShrinkDown.gif.hShrinkDownWin:?b5h0!e#XP\hShrinkUp.gif.hShrinkUpWin:?b5h0!e#XP\hShrinkDisabled.gif.hShrinkDisabledWin:?b5h0!e#XP\hFitDown.gif.hFitDownWin:?b5h0!e#XP\hFitUp.gif.hFitUpWin:?b5h0!e#XP\hFitDisabled.gif.hFitDisabledWin:?b5h0!e#XP\buttonNormalDownCap.gif.buttonNormalDownCapWin:?c5i0!re#XP\buttonNormalDownMid.gif.3buttonNormalDownMidWin:?b5h0!e#XP\buttonNormalDownEnd.gif.buttonNormalDownEndWin:?b5h0!e#XP\buttonNormalUpCap.gif.buttonNormalUpCapWin:?c5i0!re#XP\buttonNormalUpMid.gif.3buttonNormalUpMidWin:?b5h0!e#XP\buttonNormalUpEnd.gif.buttonNormalUpEndWin:?b5h0!e#XP\buttonNormalDisCap.gif.buttonNormalDisCapWin:?c5i0!re#XP\buttonNormalDisMid.gif.3buttonNormalDisMidWin:?b5h0!e#XP\buttonNormalDisEnd.gif.buttonNormalDisEndWin:?b5h0!e#XP\buttonSmallNormalDownCap.gif.buttonSmallNormalDownCapWin:?c5i0!re#XP\buttonSmallNormalDownMid.gif.3buttonSmallNormalDownMidWin:?b5h0!e#XP\buttonSmallNormalDownEnd.gif.buttonSmallNormalDownEndWin:?b5h0!e#XP\buttonSmallNormalUpCap.gif.buttonSmallNormalUpCapWin:?c5i0!re#XP\buttonSmallNormalUpMid.gif.3buttonSmallNormalUpMidWin:?b5h0!e#XP\buttonSmallNormalUpEnd.gif.buttonSmallNormalUpEndWin:?b5h0!e#XP\buttonSmallNormalDisCap.gif.buttonSmallNormalDisCapWin:?c5i0!re#XP\buttonSmallNormalDisMid.gif.3buttonSmallNormalDisMidWin:?b5h0!e#XP\buttonSmallNormalDisEnd.gif.buttonSmallNormalDisEndWin:yourselfXP\hScrollRightDown.gif.0 0tlTrackSpeakerSolo;?b5h0!e$r5 r4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopjqEe( m)?b5h0!e-buttons\pauseUp19.gif.pauseUp19:?b5h0!e-buttons\pauseDown19.gif.pauseDown19:?b5h0!e-buttons\playUp19.gif.playUp19:?b5h0!e-buttons\playDown19.gif.playDown19:?b5h0!e-buttons\prevMarkerUp19.gif.prevMarkerUp19:?b5h0!e-buttons\prevMarkerDown19.gif.prevMarkerDown19:?b5h0!e-buttons\nextMarkerUp19.gif.nextMarkerUp19:?b5h0!e-buttons\nextMarkerDown19.gif.nextMarkerDown19:?b5h0!e-buttons\prevTimeUp19.gif.prevTimeUp19:?b5h0!e-buttons\prevTimeDown19.gif.prevTimeDown19:?b5h0!e-buttons\nextTimeUp19.gif.nextTimeUp19:?b5h0!e-buttons\nextTimeDown19.gif.nextTimeDown19:?b5h0!e-buttons\newMarkerUp19.gif.newMarkerUp19:?b5h0!e-buttons\newMarkerDown19.gif.newMarkerDown19:?b5h0!e-buttons\newMarkersUp19.gif.newMarkersUp19:?b5h0!e-buttons\newMarkersDown19.gif.newMarkersDown19:?b5h0!e-buttons\anchorUp19.gif.anchorUp19:?b5h0!e-buttons\anchorDown19.gif.anchorDown19:?b5h0!e-buttons\tlRecordDown.gif.tlRecordDown:?b5h0!e-buttons\tlRecordUp.gif.tlRecordUp:?b5h0!e-buttons\blankUp19.gif.tlBlankUp19:?b5h0!e-buttons\blankDown19.gif.tlBlankDown19:?b5h0!e-misc\submix.gif.tlSubmixIcon:?b5h0!e-misc\outputs.gif.tlOutputsIcon:?b5h0!e-misc\sourceLocation.gif.tlSourceLocation:?b5h0!e-misc\microphones\microphone.gif.tlTrackMicrophone:?b5h0!e-misc\microphones\microphoneG.gif.tlTrackMicrophonePlay:?b5h0!e-misc\microphones\microphoneR.gif.tlTrackMicrophoneRecord:?b5h0!e-misc\speakers\trkSpeaker.gif.tlTrackSpeaker:+tlTrackSpeakerSolo:?b5h0!e-misc\speakers\trkSpeakerMute.gif.tlTrackSpeakerMute:?b5h0!e-buttons\cachePlay19.gif.cachePlay19:?b5h0!e-buttons\cacheLive19.gif.cacheLive19:?b5h0!e-buttons\cacheRecord19.gif.cacheRecord19:?b5h0!e-buttons\tfInvertDown.gif.tfInvertDown:?b5h0!e-buttons\tfInvertUp.gif.tfInvertUp:?b5h0!e-buttons\tfLoopDown.gif.tfLoopDown:?b5h0!e-buttons\tfLoopUp.gif.tfLoopUp:?b5h0!e-buttons\tfOffsetDown.gif.tfOffsetDown:?b5h0!e-buttons\tfOffsetUp.gif.tfOffsetUp:?b5h0!e-buttons\tfRetroDown.gif.tfRetroDown:?b5h0!e-buttons\tfRetroUp.gif.tfRetroUp:?b5h0!e-buttons\tfScaleDurationDown.gif.tfScaleDurationDown:?b5h0!e-buttons\tfScaleDurationUp.gif.tfScaleDurationUp:?b5h0!e-buttons\tfScaleDurationToFitDown.gif.tfScaleDurationToFitDown:?b5h0!e-buttons\tfScaleDurationToFitUp.gif.tfScaleDurationToFitUp:?b5h0!e-buttons\tfScaleFunctionDown.gif.tfScaleFunctionDown:?b5h0!e-buttons\tfScaleFunctionUp.gif.tfScaleFunctionUp:?b5h0!e-buttons\tfSnapToGridDown.gif.tfSnapToGridDown:?b5h0!e-buttons\tfSnapToGridUp.gif.tfSnapToGridUp:?b5h0!e-buttons\tfSprayCanDown.gif.tfSprayCanDown:?b5h0!e-buttons\tfSprayCanUp.gif.tfSprayCanUp:?b5h0!e-buttons\tfSquareOffDown.gif.tfSquareOffDown:?b5h0!e-buttons\tfSquareOffUp.gif.tfSquareOffUp:?b5h0!e-buttons\tfThresholdDown.gif.tfThresholdDown:?b5h0!e-buttons\tfThresholdUp.gif.tfThresholdUp:&misc\speakers\trkSpeakerSolo.gif.0 0hDeThumbEndWin;)0 0hDeThumbMidMac;?c5i0!re$z5r4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|iD}~iDiDiDiDiDiDiDiDiDiDiDiDiDjEe( })?b5h0!e5OSX\hThumbCap.gif.hThumbCapMac:?c5i0!re5OSX\hThumbMid.gif.3hThumbMidMac:?b5h0!e5OSX\hThumbEnd.gif.hThumbEndMac:?b5h0!e5OSX\hDeThumbCap.gif.hDeThumbCapMac:3hDeThumbMidMac:?b5h0!e5OSX\hDeThumbEnd.gif.hDeThumbEndMac:?b5h0!e5OSX\hScrollCap.gif.hScrollBarCapMac:?c5i0!re5OSX\hScrollMid.gif.3hScrollBarMidMac:?b5h0!e5OSX\hScrollEnd.gif.hScrollBarEndMac:?b5h0!e5OSX\hScrollLeftUp.gif.hScrollLeftUpMac:?b5h0!e5OSX\hScrollLeftDown.gif.hScrollLeftDownMac:?b5h0!e5OSX\hScrollLeftDisabled.gif.hScrollLeftDisabledMac:?b5h0!e5OSX\hScrollRightUp.gif.hScrollRightUpMac:?b5h0!e5OSX\hScrollRightDown.gif.hScrollRightDownMac:?b5h0!e5OSX\hScrollRightDisabled.gif.hScrollRightDisabledMac:?b5h0!e5OSX\vThumbCap.gif.vThumbCapMac:?c5i0!re5OSX\vThumbMid.gif.3vThumbMidMac:?b5h0!e5OSX\vThumbEnd.gif.vThumbEndMac:?b5h0!e5OSX\vDeThumbCap.gif.vDeThumbCapMac:?c5i0!re5OSX\vDeThumbMid.gif.3vDeThumbMidMac:?b5h0!e5OSX\vDeThumbEnd.gif.vDeThumbEndMac:?b5h0!e5OSX\vScrollCap.gif.vScrollBarCapMac:?c5i0!re5OSX\vScrollMid.gif.3vScrollBarMidMac:?b5h0!e5OSX\vScrollEnd.gif.vScrollBarEndMac:?b5h0!e5OSX\vScrollUpUp.gif.vScrollUpUpMac:?b5h0!e5OSX\vScrollUpDown.gif.vScrollUpDownMac:?b5h0!e5OSX\vScrollUpDisabled.gif.vScrollUpDisabledMac:?b5h0!e5OSX\vScrollDownUp.gif.vScrollDownUpMac:?b5h0!e5OSX\vScrollDownDown.gif.vScrollDownDownMac:?b5h0!e5OSX\vScrollDownDisabled.gif.vScrollDownDisabledMac:?b5h0!e5OSX\vGrowDown.gif.vGrowDownMac:?b5h0!e5OSX\vGrowUp.gif.vGrowUpMac:?b5h0!e5OSX\vGrowDisabled.gif.vGrowDisabledMac:?b5h0!e5OSX\vShrinkDown.gif.vShrinkDownMac:?b5h0!e5OSX\vShrinkUp.gif.vShrinkUpMac:?b5h0!e5OSX\vShrinkDisabled.gif.vShrinkDisabledMac:?b5h0!e5OSX\hGrowDown.gif.hGrowDownMac:?b5h0!e5OSX\hGrowUp.gif.hGrowUpMac:?b5h0!e5OSX\hGrowDisabled.gif.hGrowDisabledMac:?b5h0!e5OSX\hShrinkDown.gif.hShrinkDownMac:?b5h0!e5OSX\hShrinkUp.gif.hShrinkUpMac:?b5h0!e5OSX\hShrinkDisabled.gif.hShrinkDisabledMac:?b5h0!e5OSX\hFitDown.gif.hFitDownMac:?b5h0!e5OSX\hFitUp.gif.hFitUpMac:?b5h0!e5OSX\hFitDisabled.gif.hFitDisabledMac:?b5h0!e5OSX\spaceFiller.gif.spaceFillerMac:?b5h0!e5OSX\buttonNormalDownCap.gif.buttonNormalDownCapMac:?c5i0!re5OSX\buttonNormalDownMid.gif.3buttonNormalDownMidMac:?b5h0!e5OSX\buttonNormalDownEnd.gif.buttonNormalDownEndMac:?b5h0!e5OSX\buttonNormalUpCap.gif.buttonNormalUpCapMac:?c5i0!re5OSX\buttonNormalUpMid.gif.3buttonNormalUpMidMac:?b5h0!e5OSX\buttonNormalUpEnd.gif.buttonNormalUpEndMac:?b5h0!e5OSX\buttonNormalDisCap.gif.buttonNormalDisCapMac:?c5i0!re5OSX\buttonNormalDisMid.gif.3buttonNormalDisMidMac:?b5h0!e5OSX\buttonNormalDisEnd.gif.buttonNormalDisEndMac:?b5h0!e5OSX\buttonSmallNormalDownCap.gif.buttonSmallNormalDownCapMac:?c5i0!re5OSX\buttonSmallNormalDownMid.gif.3buttonSmallNormalDownMidMac:?b5h0!e5OSX\buttonSmallNormalDownEnd.gif.buttonSmallNormalDownEndMac:?b5h0!e5OSX\buttonSmallNormalUpCap.gif.buttonSmallNormalUpCapMac:?c5i0!re5OSX\buttonSmallNormalUpMid.gif.3buttonSmallNormalUpMidMac:?b5h0!e5OSX\buttonSmallNormalUpEnd.gif.buttonSmallNormalUpEndMac:?b5h0!e5OSX\buttonSmallNormalDisCap.gif.buttonSmallNormalDisCapMac:?c5i0!re5OSX\buttonSmallNormalDisMid.gif.3buttonSmallNormalDisMidMac:?b5h0!e5OSX\buttonSmallNormalDisEnd.gif.buttonSmallNormalDisEndMac:?b5h0!e5OSX\buttonSmallDMenuFlatDownCap.gif.buttonSmallDMenuFlatDownCapMac:?c5i0!re5OSX\buttonSmallDMenuFlatDownMid.gif.3buttonSmallDMenuFlatDownMidMac:?b5h0!e5OSX\buttonSmallDMenuFlatDownEnd.gif.buttonSmallDMenuFlatDownEndMac:?b5h0!e5OSX\buttonSmallFlatDownEnd.gif.buttonSmallFlatDownEndMac:?b5h0!e5OSX\buttonSmallDMenuFlatUpCap.gif.buttonSmallDMenuFlatUpCapMac:?c5i0!re5OSX\buttonSmallDMenuFlatUpMid.gif.3buttonSmallDMenuFlatUpMidMac:?b5h0!e5OSX\buttonSmallDMenuFlatUpEnd.gif.buttonSmallDMenuFlatUpEndMac:?b5h0!e5OSX\buttonSmallFlatUpEnd.gif.buttonSmallFlatUpEndMac:?b5h0!e5OSX\buttonSmallDMenuFlatDisCap.gif.buttonSmallDMenuFlatDisCapMac:?c5i0!re5OSX\buttonSmallDMenuFlatDisMid.gif.3buttonSmallDMenuFlatDisMidMac:?b5h0!e5OSX\buttonSmallDMenuFlatDisEnd.gif.buttonSmallDMenuFlatDisEndMac:?b5h0!e5OSX\buttonSmallFlatDisEnd.gif.buttonSmallFlatDisEndMac:&OSX\hDeThumbMid.gif.30 0renderImpulseUp19;?b5h0!e$e5~DEEEEf9hDiDiD iD iDiD1iD3iD5iD7iD9iD;iD=iD?iD !iD"#iD$%iD&'iD()iD*+iD,-iD./iD01iD23iD45iD67iD89iD:;iD<=iD>?iD@AiDBCiDDEiDFGiDHIiDJKiDLMiDNOiDPQiDRSiDTUiDVWiDXYiDZ[iD\]iD^_iD`aiDbciDdeiDfgiDhiiDjkiDlmiDnoiDpqiDrsiDtuiDvwiDxyiDz{iD|}iD~iDjDEEe(einitializeBasicButtonIconsinitializeTimelineButtonIconsinitializeFileOrganizerButtonIconsinitializeVCSButtonIconsinitializeTAUButtonIcons)?b5h0!e*misc\warn.gif.warnIcon:?b5h0!e*misc\stop.gif.stopIcon:?b5h0!e*misc\speakers\speaker.gif.speaker:?b5h0!e*buttons\disk21.gif.disk21:?b5h0!e*buttons\dropDownUp17.gif.dropDownUp17:?b5h0!e*buttons\dropDownUp19.gif.dropDownUp19:?b5h0!e*buttons\dropDownDown19.gif.dropDownDown19:?b5h0!e*buttons\makeSelectionUp19.gif.makeSelectionUp19:?b5h0!e*buttons\editSelectionUp19.gif.editSelectionUp19:?b5h0!e*buttons\noSelectionUp19.gif.noSelectionUp19:?b5h0!e*buttons\warpSelectionUp19.gif.warpSelectionUp19:?b5h0!e*buttons\makeSelectionDown19.gif.makeSelectionDown19:?b5h0!e*buttons\editSelectionDown19.gif.editSelectionDown19:?b5h0!e*buttons\noSelectionDown19.gif.noSelectionDown19:?b5h0!e*buttons\warpSelectionDown19.gif.warpSelectionDown19:?b5h0!e*buttons\shapeRectangleUp19.gif.shapeRectangleUp19:?b5h0!e*buttons\shapeEllipseUp19.gif.shapeEllipseUp19:?b5h0!e*buttons\shapePolygonUp19.gif.shapePolygonUp19:?b5h0!e*buttons\shapeTrackUp19.gif.shapeTrackUp19:?b5h0!e*buttons\shapeRectangleDown19.gif.shapeRectangleDown19:?b5h0!e*buttons\shapeEllipseDown19.gif.shapeEllipseDown19:?b5h0!e*buttons\shapePolygonDown19.gif.shapePolygonDown19:?b5h0!e*buttons\shapeTrackDown19.gif.shapeTrackDown19:?b5h0!e*buttons\combinationSingleUp19.gif.combinationSingleUp19:?b5h0!e*buttons\combinationPlusUp19.gif.combinationPlusUp19:?b5h0!e*buttons\combinationTimesUp19.gif.combinationTimesUp19:?b5h0!e*buttons\combinationMinusUp19.gif.combinationMinusUp19:?b5h0!e*buttons\combinationSingleDown19.gif.combinationSingleDown19:?b5h0!e*buttons\combinationPlusDown19.gif.combinationPlusDown19:?b5h0!e*buttons\combinationTimesDown19.gif.combinationTimesDown19:?b5h0!e*buttons\combinationMinusDown19.gif.combinationMinusDown19:?b5h0!e*buttons\combinationFrontDown19.gif.combinationFrontDown19:?b5h0!e*buttons\combinationFrontUp19.gif.combinationFrontUp19:?b5h0!e*buttons\cursorLoopFwdBkwdPlayUp19.gif.cursorLoopFwdBkwdPlayUp19:?b5h0!e*buttons\cursorLoopSelPlayUp19.gif.cursorLoopSelPlayUp19:?b5h0!e*buttons\cursorLoopPlayUp19.gif.cursorLoopPlayUp19:?b5h0!e*buttons\cursorNormalPlayUp19.gif.cursorNormalPlayUp19:?b5h0!e*buttons\cursorLoopFwdBkwdPlayDown19.gif.cursorLoopFwdBkwdPlayDown19:?b5h0!e*buttons\cursorLoopSelPlayDown19.gif.cursorLoopSelPlayDown19:?b5h0!e*buttons\cursorLoopPlayDown19.gif.cursorLoopPlayDown19:?b5h0!e*buttons\cursorNormalPlayDown19.gif.cursorNormalPlayDown19:?b5h0!e*buttons\renderSOSUp19.gif.renderSOSUp19:?b5h0!e*buttons\renderGrainUp19.gif.renderGrainUp19:(renderImpulseUp19:?b5h0!e*buttons\renderFilterUp19.gif.renderFilterUp19:?b5h0!e*buttons\renderSamplesUp19.gif.renderSamplesUp19:?b5h0!e*buttons\createModuleUp19.gif.createModuleUp19:?b5h0!e*buttons\renderSOSDown19.gif.renderSOSDown19:?b5h0!e*buttons\renderGrainDown19.gif.renderGrainDown19:?b5h0!e*buttons\renderImpulseDown19.gif.renderImpulseDown19:?b5h0!e*buttons\renderFilterDown19.gif.renderFilterDown19:?b5h0!e*buttons\renderSamplesDown19.gif.renderSamplesDown19:?b5h0!e*buttons\createModuleDown19.gif.createModuleDown19:?b5h0!e*buttons\hearAllUp19.gif.hearAllUp19:?b5h0!e*buttons\hearSelUp19.gif.hearSelUp19:?b5h0!e*buttons\hearAllDown19.gif.hearAllDown19:?b5h0!e*buttons\hearSelDown19.gif.hearSelDown19:?b5h0!e*buttons\colorSetGrayScaleUp19.gif.colorSetGrayScaleUp19:?b5h0!e*buttons\colorSetInvGrayScaleUp19.gif.colorSetInvGrayScaleUp19:?b5h0!e*buttons\colorSetRainbowUp19.gif.colorSetRainbowUp19:?b5h0!e*buttons\colorSetGrayScaleDown19.gif.colorSetGrayScaleDown19:?b5h0!e*buttons\colorSetInvGrayScaleDown19.gif.colorSetInvGrayScaleDown19:?b5h0!e*buttons\colorSetRainbowDown19.gif.colorSetRainbowDown19:initializeMoreIconButtonsbuttons\renderImpulseUp19.gif.0 0deSelectionDown19;?b5h0!e$a5l4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|jD}~fEe( m)?b5h0!e1buttons\modifyAmpUp19.gif.modifyAmpUp19:?b5h0!e1buttons\modifyFreqUp19.gif.modifyFreqUp19:?b5h0!e1buttons\modifyFreqDown19.gif.modifyFreqDown19:?b5h0!e1buttons\modifyAmpDown19.gif.modifyAmpDown19:?b5h0!e1buttons\modifyScaleUp19.gif.modifyScaleUp19:?b5h0!e1buttons\modifyScaleDown19.gif.modifyScaleDown19:?b5h0!e1buttons\modifyOffsetUp19.gif.modifyOffsetUp19:?b5h0!e1buttons\modifyOffsetDown19.gif.modifyOffsetDown19:?b5h0!e1buttons\modifySetUp19.gif.modifySetUp19:?b5h0!e1buttons\modifySetDown19.gif.modifySetDown19:?b5h0!e1buttons\modifyRubberbandUp19.gif.modifyRubberbandUp19:?b5h0!e1buttons\modifyConstantUp19.gif.modifyConstantUp19:?b5h0!e1buttons\modifyConstantDown19.gif.modifyConstantDown19:?b5h0!e1buttons\modifyRubberbandDown19.gif.modifyRubberbandDown19:?b5h0!e1buttons\modifySpectAmpUp19.gif.modifySpectAmpUp19:?b5h0!e1buttons\modifySpectAmpDown19.gif.modifySpectAmpDown19:?b5h0!e1buttons\modifySpectFreqUp19.gif.modifySpectFreqUp19:?b5h0!e1buttons\modifySpectFreqDown19.gif.modifySpectFreqDown19:?b5h0!e1buttons\modifyWavetableXUp19.gif.modifyWavetableXUp19:?b5h0!e1buttons\modifyWavetableXDown19.gif.modifyWavetableXDown19:?b5h0!e1buttons\modifyWavetableYUp19.gif.modifyWavetableYUp19:?b5h0!e1buttons\modifyWavetableYDown19.gif.modifyWavetableYDown19:?b5h0!e1buttons\modifyRadialUp19.gif.modifyRadialUp19:?b5h0!e1buttons\modifyRadialDown19.gif.modifyRadialDown19:?b5h0!e1buttons\modifyLinearUp19.gif.modifyLinearUp19:?b5h0!e1buttons\modifyLinearDown19.gif.modifyLinearDown19:?b5h0!e1buttons\deSelectionUp19.gif.deSelectionUp19:/deSelectionDown19:?b5h0!e1buttons\infoSelectionUp19.gif.infoSelectionUp19:?b5h0!e1buttons\infoSelectionDown19.gif.infoSelectionDown19:?b5h0!e1buttons\drawSelectionUp19.gif.drawSelectionUp19:?b5h0!e1buttons\drawSelectionDown19.gif.drawSelectionDown19:?b5h0!e1buttons\drawControlPointsUp19.gif.drawControlPointsUp19:?b5h0!e1buttons\drawControlPointsDown19.gif.drawControlPointsDown19:?b5h0!e1buttons\drawMultiUp19.gif.drawMultiUp19:?b5h0!e1buttons\drawMultiDown19.gif.drawMultiDown19:?b5h0!e1buttons\drawSprayPaintUp19.gif.drawSprayPaintUp19:?b5h0!e1buttons\drawSprayPaintDown19.gif.drawSprayPaintDown19:?b5h0!e1buttons\drawSelfSimilarUp19.gif.drawSelfSimilarUp19:?b5h0!e1buttons\drawSelfSimilarDown19.gif.drawSelfSimilarDown19:?b5h0!e1buttons\drawEraserUp19.gif.drawEraserUp19:?b5h0!e1buttons\drawEraserDown19.gif.drawEraserDown19:?b5h0!e1buttons\hiddenLogLinUp19.gif.hiddenLogLinUp19:?b5h0!e1buttons\hiddenLogLinDown19.gif.hiddenLogLinDown19:?b5h0!e1buttons\joinDotsUp19.gif.joinDotsUp19:?b5h0!e1buttons\joinDotsDown19.gif.joinDotsDown19:?b5h0!e1buttons\shapeFrameIntervalUp19.gif.shapeFrameIntervalUp19:?b5h0!e1buttons\shapeFrameIntervalDown19.gif.shapeFrameIntervalDown19:?b5h0!e1faders\verticalYellowMarker.gif.verticalYellowMarker:?b5h0!e1faders\horizontalYellowMarker.gif.horizontalYellowMarker:?b5h0!e1buttons\embossGradientUp19.gif.embossGradientUp19:?b5h0!e1buttons\embossGradientDown19.gif.embossGradientDown19:?b5h0!e1buttons\debossGradientUp19.gif.debossGradientUp19:?b5h0!e1buttons\debossGradientDown19.gif.debossGradientDown19:?b5h0!e1buttons\stencilGradientUp19.gif.stencilGradientUp19:?b5h0!e1buttons\stencilGradientDown19.gif.stencilGradientDown19:?b5h0!e1buttons\stampGradientUp19.gif.stampGradientUp19:?b5h0!e1buttons\stampGradientDown19.gif.stampGradientDown19:?b5h0!e1buttons\jitterLabel9.gif.jitterLabel9:?b5h0!e1buttons\recursionLabel9.gif.recursionLabel9:?b5h0!e1buttons\smoothingLabel9.gif.smoothingLabel9:?b5h0!e1buttons\scalingLabel9.gif.scalingLabel9:?b5h0!e1misc\mixPoint9.gif.mixPoint9:1zapCachebuttons\deSelectionDown19.gif.0 0vScrollBarEndMac;00 0playUp19;70 0stopDown20;?b5h0!e$}54hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:jD0 0down15;?b5h0!e$k5v4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(jD)*Ee( i)?b5h0!e6buttons\Disabled10.gif.disabled10:?b5h0!e6buttons\Up10.gif.up10:?b5h0!e6buttons\Down10.gif.down10:?b5h0!e6buttons\Disabled15.gif.disabled15:?b5h0!e6buttons\Up15.gif.up15:4down15:?b5h0!e6buttons\Disabled17.gif.disabled17:?b5h0!e6buttons\Up17.gif.up17:?b5h0!e6buttons\Down17.gif.down17:?b5h0!e6buttons\Disabled19.gif.disabled19:?b5h0!e6buttons\Up19.gif.up19:?b5h0!e6buttons\Down19.gif.down19:?b5h0!e6buttons\Disabled20.gif.disabled20:?b5h0!e6buttons\Up20.gif.up20:?b5h0!e6buttons\Down20.gif.down20:?b5h0!e6buttons\Disabled21.gif.disabled21:?b5h0!e6buttons\Up21.gif.up21:?b5h0!e6buttons\Down21.gif.down21:?b5h0!e6buttons\Disabled36.gif.disabled36:?b5h0!e6buttons\Up36.gif.up36:?b5h0!e6buttons\Down36.gif.down36:buttons\Down15.gif.0 0buttonSmallDMenuFlatDownMidMac;80 0modifyScaleDown19;'0 0systemLabelFont;?dp$k5wDF!f4hiDiDi<ؿ)))ji<؈)ر))ji)i+0i2i4i6i8i:ii i!"i#$i%&i'(j)*Ee(  y)inheritingFrom:6"?c5i0!re4XP\windowBackground.gif.3windowBackground:?c5i0!re4XP\dialogBackground.gif.3dialogBackground:ĪColorValue/red:green:blue:selectionBackgroundColor:fieldFocusColor:;?dp4)!j 0family!bVerdana* 0pixelSizem 0leading` 0baselinem 0lineGridp 0italic 0boldnessaa 0underline 0color 0alignment`synthesizeTextStyle: `!`systemFont:;?dp4)!j 0)!bVerdana* 0.m 00` 02m 04p 06 08bc 0: 0< 0>`? ` systemEmphasizedFont:;?dp4)!j 0)!bVerdana* 0.l 00` 02l 04o 06 08aa 0: 0< 0>`? ` systemListFont:;?dp4)!j 0)!bVerdana* 0.k 00` 02k 04n 06 08aa 0: 0< 0>`? ` systemSmallFont:;?dp4)!j 0)!bVerdana* 0.k 00` 02k 04n 06 08bc 0: 0< 0>`? ` systemSmallEmphasizedFont:2systemLabelFont:;?dp4)!j 0)!bVerdana* 0.i 00` 02i 04l 06 08aa 0: 0< 0>`? ` systemMiniFont:;?dp4)!j 0)!bVerdana* 0.m 00` 02m 04p 06 08aa 0: 0< 0>`? ` applicationFont:;?dp4)!j 0)!bVerdana* 0.m 00` 02m 04p 06 08bc 0: 0< 0>`? ` applicationEmphasizedFont:;?dp4)!j 0)!bVerdana* 0.l 00` 02l 04o 06 08aa 0: 0< 0>`? ` applicationListFont:;?dp4)!j 0)!bVerdana* 0.k 00` 02k 04n 06 08aa 0: 0< 0>`? ` applicationSmallFont:;?dp4)!j 0)!bVerdana* 0.k 00` 02k 04n 06 08bc 0: 0< 0>`? ` applicationSmallEmphasizedFont:;?dp4)!j 0)!bVerdana* 0.j 00` 02j 04m 06 08aa 0: 0< 0>`? ` applicationLabelFont:;?dp4)!j 0)!bVerdana* 0.i 00` 02i 04l 06 08aa 0: 0< 0>`? ` applicationMiniFont:;?dp4)!k 0)!cCourierCourier New* 0.m 0fixedTabs` 00` 02m 04p 06 08aa 0: 0< 0>`? ` applicationFixedFont:)!j 0)!bVerdana* 0.j 00` 02j 04m 06 08aa 0: 0< 0>`? ` 0hearSelDown19;.0 0buttonSmallNormalDownMidMac;40 0vScrollUpDownMac;80 0hShrinkDownMac;00 0warnIcon;10 0buttonSmallFlatDisEndMac; 0 0prevMarkerUp19;?0 0cameraDown19;&0 0buttonNormalUpCapWin;*0 0applicationEmphasizedFont) 0vDeThumbMidMac; 0 0newMarkersDown19;+0 0cacheLive19;,0 0newMarkerUp19;?0 0vGrowUpWin;&0 0spaceFillerMac;(0 0renderGrainDown19;.0 0vScrollDownUpMac; 0 0groupedUp19;?b5h0!e$f5b4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$j%Ee( i)?b5h0!e +buttons\reanalyzeUp16.gif.reanalyzeUp16:?b5h0!e +buttons\reanalyzeDown16.gif.reanalyzeDown16:?b5h0!e +buttons\plusUp16.gif.plusUp16:?b5h0!e +buttons\plusDown16.gif.plusDown16:?b5h0!e +buttons\minusUp16.gif.minusUp16:?b5h0!e +buttons\minusDown16.gif.minusDown16:?b5h0!e +buttons\plus17.gif.plus17:?b5h0!e +buttons\minus17.gif.minus17:?b5h0!e +buttons\groupedDown19.gif.groupedDown19: )groupedUp19:?b5h0!e +buttons\loop19.gif.loop19:?b5h0!e +buttons\originalEnvelope19.gif.originalEnvelope19:?b5h0!e +buttons\unvoicedOnly19.gif.unvoicedOnly19:?b5h0!e +buttons\voicedOnly19.gif.voicedOnly19:?b5h0!e +buttons\doubleSpeed19.gif.doubleSpeed19:?b5h0!e +buttons\halveSpeed19.gif.halveSpeed19:?b5h0!e +buttons\normalSpeed19.gif.normalSpeed19:?b5h0!e +buttons\tauIcon39.gif.tauIcon39:&buttons\groupedUp19.gif.0 0hFitDownWin;20 0smoothingLabel9; 0 0buttonNormalDownEndWin;&0 0buttonSmallNormalDisCapMac;(0 0fieldFocusColor acqvz 0tfThresholdDown;$0 0horizontalYellowMarker;40 0vThumbCapMac;00 0mixPoint9;(0 0disk21;=0 0modifyRadialDown19;/0 0playDown20;40 0hGrowDownMac;$0 0tfLoopDown;<0 0vThumbMidMac;40 0vThumbGrabWin;.0 0systemMiniFont' 0vDeThumbEndMac;$0 0vDeThumbMidWin;:0 0down10; 0 0combinationMinusUp19; 90 0drawSelectionDown19;,0 0noSelectionDown19; %0 0modifyOffsetDown19;/0 0hFitUpMac; 0 0tfRetroDown;,0 0shapeFrameIntervalDown19;,0 0hShrinkDisabledWin;.0 0tfScaleDurationToFitDown;<0 0modifyLinearDown19;70 0hDeThumbEndMac;(0 0hGrowUpWin;>0 0cursorLoopSelPlayDown19; )0 0modifyRubberbandDown19;'0 0hThumbMidWin;00 0tfScaleFunctionDown;$0 0colorSetGrayScaleUp19;20 0applicationListFont: 0drawControlPointsUp19;00 0vThumbCapWin;&0 0embossGradientUp19;80 0disabled19;90 0hScrollBarEndMac;40 0tfInvertDown;40 0up19;=0 0combinationSingleUp19; -0 0combinationPlusDown19; !0 0nextTimeUp19;70 0modifySetDown19;70 0hFitUpWin;60 0shapeEllipseUp19; 10 0tfSnapToGridUp;00 0shapeTrackDown19; )0 0hThumbCapMac;70 0buttonNormalDisEndWin;>0 0selectionBackgroundColor "wz~ 0combinationFrontUp19; 10 0hScrollLeftDisabledMac; 0 0applicationLabelFont- 0up10;<0 0microphoneEnabled;20 0stopIcon;50 0vGrowDownMac;,0 0tlSubmixIcon;'0 0modifyWavetableXDown19;?0 0renderSOSUp19; 50 0stopUp20;=0 0stampGradientDown19;40 0tlTrackMicrophonePlay;70 0prevMarkerDown19;#0 0vThumbEndWin;20 0drawMultiUp19;80 0buttonSmallNormalDisEndWin;"0 0warpSelectionDown19; )0 0tlBlankDown19;#0 0vScrollUpDisabledWin;20 0applicationSmallEmphasizedFont< 0plusDown16; 90 0tauIcon39; .0 0modifyScaleUp19;#0 0tfSnapToGridDown;,0 0hShrinkUpWin;*0 0prevTimeDown19;30 0speaker;90 0down19;!0 0hShrinkDisabledMac;80 0buttonSmallFlatDownEndMac; 0 0vShrinkDisabledMac; 0 0vShrinkDownWin;.0 0shapeEllipseDown19; !0 0hDeThumbCapMac;#0 0disabled20;%0 0doubleSpeed19; "0 0modifyRubberbandUp19;;0 0vScrollDownDisabledMac;(0 0enterUp20;(0 0modifySpectAmpDown19;/0 0hScrollLeftDownWin;50 0deSelectionUp19;;0 0normalSpeed19; *0 0buttonSmallNormalUpCapWin;.0 0vGrowUpMac;00 0applicationFont8 0shapeRectangleDown19; =0 0systemSmallFont$ 0tlTrackSpeaker;?0 0tfThresholdUp;(0 0createModuleUp19;&0 0vScrollBarCapMac;(0 0hearAllDown19;*0 0buttonNormalDisCapMac;$0 0modifySpectAmpUp19;+0 0tfSquareOffDown;<0 0penEnabled;:0 0combinationFrontDown19; -0 0shapePolygonDown19; %0 0modifyAmpDown19;?0 0hFitDownMac;<0 0enterMicUp;00 0useInputDown20;)0 0buttonNormalUpEndMac; 0 0systemFont% 0tlRecordUp;;0 0vScrollDownDownWin;:0 0renderGrainUp19; 90 0loop19; 20 0vShrinkUpMac;<0 0nextMarkerUp19;'0 0renderSamplesDown19;:0 0groupedDown19; -0 0pauseDown19;30 0modifyFreqDown19;;0 0fileOrganizerHelpUp;<0 0hThumbMidMac;;0 0modifyConstantDown19;#0 0buttonSmallDMenuFlatUpMidMac;(0 0hGrowDisabledMac;,0 0buttonSmallDMenuFlatDisMidMac;80 0stencilGradientDown19;,0 0hScrollLeftUpWin;10 0up21;50 0up17;10 0minusUp16; =0 0dialogBackground;;0 0drawSelectionUp19;(0 0joinDotsDown19;$0 0hDeThumbMidWin;!0 0recursionLabel9;<0 0createModuleDown19;>0 0buttonSmallNormalDisEndMac;00 0combinationPlusUp19; 10 0hScrollRightDownMac;(0 0hScrollBarMidMac;00 0tfLoopUp; 0 0buttonNormalUpMidWin;.0 0microphoneDisabled;60 0hearAllUp19;"0 0colorSetRainbowUp19;:0 0combinationTimesUp19; 50 0buttonSmallNormalDisCapWin;:0 0scalingLabel9;$0 0buttonSmallNormalUpCapMac;<0 0buttonSmallDMenuFlatDisEndMac;<0 0vDeThumbGrabWin;>0 0joinDotsUp19; 0 0modifySetUp19;30 0buttonNormalUpCapMac;80 0makeSelectionUp19; -0 0renderFilterDown19;60 0modifyOffsetUp19;+0 0vGrowDisabledWin;*0 0infoSelectionDown19;$0 0colorSetInvGrayScaleUp19;60 0dropDownUp17; !0 0warpSelectionUp19; 90 0colorSetRainbowDown19;&0 0systemSmallEmphasizedFont5 0buttonSmallNormalDisMidMac;,0 0buttonNormalUpMidMac;<0 0anchorUp19;/0 0hScrollLeftUpMac;80 0keyboardDisabled;&0 0vScrollDownDownMac;$0 0hShrinkUpMac;40 0buttonNormalDisCapWin;60 0tfSprayCanDown;40 0vDeThumbCapWin;60 0modifyFreqUp19;70 0buttonSmallDMenuFlatDisCapMac;40 0vDeThumbEndWin;"0 0tfSprayCanUp;80 0penDisabled;>0 0reanalyzeUp16; -0 0systemListFont3 0buttonSmallNormalDisMidWin;>0 0drawSelfSimilarDown19;,0 0nextMarkerDown19;+0 0disabled15;$0 0minusDown16; !0 0vThumbEndMac;80 0shapeRectangleUp19; -0 0dropDownDown19; )0 0cursorNormalPlayUp19; !0 0cursorLoopFwdBkwdPlayUp19; 50 0drawEraserUp19;00 0modifyAmpUp19;30 0vShrinkUpWin;20 0cursorNormalPlayDown19; 10 0vScrollUpUpMac;40 0combinationTimesDown19; %0 0updateDown20;!0 0disabled17;-0 0tfRetroUp;00 0tlBlankUp19;?0 0hShrinkDownWin;&0 0vGrowDownWin;"0 0nextTimeDown19;;0 0buttonSmallFlatUpEndMac;00 0padlockUnlock;.0 0unvoicedOnly19; :0 0jitterLabel9;80 0drawControlPointsDown19;40 0vScrollBarMidWin;&0 0padlockLock;*0 0tfScaleDurationToFitUp; 0 0makeSelectionDown19; =0 0cursorLoopFwdBkwdPlayDown19; %0 0down36;%0 0buttonNormalDownEndMac;40 0tlOutputsIcon;+0 0modifySpectFreqDown19;70 0hScrollRightDisabledMac;,0 0cameraUp19;"0 0tfSquareOffUp; 0 0vScrollDownUpWin;60 0originalEnvelope19; 60 0colorSetGrayScaleDown19;>0 0combinationMinusDown19; )0 0up20;)0 0hiddenLogLinUp19;80 0vScrollDownDisabledWin;>0 0minus17; )0 0tlTrackMicrophone;30 0stencilGradientUp19;(0 0systemEmphasizedFont" 0buttonSmallNormalUpEndWin;60 0vScrollUpDownWin;.0 0buttonNormalDisMidMac;(0 0tlTrackSpeakerMute;$0 0buttonSmallNormalDownCapWin;"0 0buttonNormalDownCapWin;>0 0buttonSmallNormalUpEndMac;$0 0tfScaleFunctionUp;(0 0disabled36;=0 0debossGradientDown19;$0 0cacheRecord19;00 0buttonNormalDownMidWin;"0 0tlRecordDown;70 0shapePolygonUp19; 50 0drawSprayPaintUp19; 0 0buttonNormalDisEndMac;,0 0modifyWavetableYUp19;#0 0cursorLoopPlayUp19; =0 0enterMicDown;,0 0buttonSmallDMenuFlatUpCapMac;$0 0pauseUp19;/0 0vThumbMidWin;*0 0modifyLinearUp19;30 0down20;-0 0buttonSmallNormalDownEndMac;80 0buttonSmallDMenuFlatDownCapMac;40 0cachePlay19;(0 0buttonSmallDMenuFlatDownEndMac;<0 0hFitDisabledWin;:0 0renderSamplesUp19;"0 0hThumbGrabWin;50 0vGrowDisabledMac;40 0modifyConstantUp19;?0 0newMarkerDown19;#0 0tlTrackMicrophoneRecord;;0 0tfInvertUp;80 0voicedOnly19; >0 0down17;50 0drawSelfSimilarUp19;(0 0debossGradientUp19; 0 0hDeThumbGrabWin;%0 0hDeThumbCapWin;=0 0cursorLoopSelPlayUp19; 90 0modifyWavetableXUp19;;0 0tfScaleDurationUp;80 0enterDown20;$0 0stampGradientUp19;00 0applicationSmallFont+ 0buttonSmallNormalDownMidWin;&0 0tfOffsetUp;(0 0hGrowUpMac;(0 0hearSelUp19;&0 0drawEraserDown19;40 0drawMultiDown19;<0 0renderFilterUp19; >0 0up36;!0 0hGrowDownWin;:0 0updateUp20;%0 0hScrollBarCapMac;,0 0buttonSmallNormalDownCapMac;00 0plusUp16; 50 0hiddenLogLinDown19;<0 0drawSprayPaintDown19;$0 0modifyWavetableYDown19;'0 0hScrollLeftDisabledWin;90 0hScrollLeftDownMac;<0 0prevTimeUp19;/0 0halveSpeed19; &0 0vScrollUpUpWin;*0 0modifyRadialUp19;+0 0windowBackground;70 0buttonNormalDownMidMac;00 0buttonSmallNormalDownEndWin;*0 0shapeFrameIntervalUp19;(0 0vDeThumbCapMac;<0 0renderImpulseDown19;20 0hThumbEndWin;90 0useInputUp20;-0 0vShrinkDownMac;80 0vShrinkDisabledWin;60 0vScrollUpDisabledMac;<0 0up15;(0 0cursorLoopPlayDown19; -0 0combinationSingleDown19; =0 0dropDownUp19; %0 0tlSourceLocation;/0 0colorSetInvGrayScaleDown19;"0 0editSelectionDown19; !0 0buttonNormalDownCapMac;,0 0vScrollBarMidMac;,0 0shapeTrackUp19; 90 0buttonSmallDMenuFlatUpEndMac;,0 0hGrowDisabledWin;"0 0hThumbCapWin;+0 0keyboardEnabled;"0 0hScrollRightDisabledWin;"0 0disabled21;10 0playDown19;;0 0hThumbEndMac;?0 0buttonNormalDisMidWin;:0 0down21;90 0plus17; %0 0buttonNormalUpEndWin;20 0diceDown19;:0 0anchorDown19;30 0buttonSmallNormalUpMidWin;20 0modifySpectFreqUp19;30 0playUp20;80 0applicationFixedFont/ 0noSelectionUp19; 50 0hScrollBarMidWin;-0 0reanalyzeDown16; 10 0newMarkersUp19;'0 0infoSelectionUp19; 0 0hScrollRightUpWin;=0 0hScrollRightUpMac;$0 0buttonSmallNormalUpMidMac; 0 0tfScaleDurationDown;40 0disabled10;80 0tfOffsetDown;$0 0fileOrganizerHelpDown; 0 0editSelectionUp19; 10 0renderSOSDown19;*0 0verticalYellowMarker;00 0hFitDisabledMac;$0 0applicationMiniFont> ,l 0rotaryFaderKnobKymaKnobjextent:knobImage:minimumAngle:maximumAngle:wedgeStart:wedgeEnd:wedgeAngle:wedgeInside:wedgeBorder:7b`OpaqueImageadDepth24Imageah5pttxxFixedPaletteafph`|15p<8pp````````pp8<ttaaCoveragePaletteaaaadcacgcns c "`` "``` 0lookBackground;?c5i0!re$a5 D4!LhiDi:K;7HiD i " D).-h--;;7 2i " D.Ih-;;7 4iD6i8i;79i;:i;j Ve(  q)64"!lookBackground:īSimpleTrack?width:color:faderBorder:?b5h0!e#faders\faderRightWaldo.gif.verticalFaderKnob:&faders\rotaryTrack20.gif.convertToSystemPalettered'rotaryFaderKnob:faders\circularTrack20.gifcircularFaderKnob:?c5i0!re#backgrounds\stone\smoothBlue.gif.3vcsBackground:!c!b=c!b`? `vcsLabelTextStyle:?cp#!j 0)!bcomic sans ms* 0.l 00b 02j 04n 06 08aa 0: 0< 0>`? `vcsTextStyle:backgrounds\stone\smoothDarkGray.gif.30 0faderBorder'abb= 0vcsScopeForeground< 0vcsScopeBackground= 0verticalFaderKnob;*0 0vcsTextStyle;33 0circularFaderKnob%7b`*.5pttxx2|15p<8pp````````pp8<ttaa8ad```acns c<= 0vcsBackground;50 0vcsScopeInfoColor "` 0vcsBorders9 0vcsLabelTextStyle;#3 ,`ConcreteEventesFreqLow`alinearafaderaaFreqLows{`aFader ,a 0Defaults{b`h`-'+u```k`p`MaxCountOfTriggers03 ,`) 9`a-a.aaMaxCountOfTriggersaa`a0 ,a 03aaaata-37TriggerCounter!a #7 x |*c'+````s` x`./),`a-a.aa/s{`a0 ,a 03s{b`h`-'+c```x` x`NumberOfTriggers/)NumberOfTriggers`a-a.aaNumberOfTriggersba`a0 ,a 03aaa`ta-'+``````ca`aReset/)MIDIController48`a-agateaaReset``aToggle ,a 03``q`a`-3/Up/Down Counter!`7al!`7zi!` 0soundEditorIconSized: 47ya.3SyncedTrigger5Synced Trigger ???*a3Set/Reset FlipFlop;SRFlipFlop ???*b Set Reset% | 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. *`SRFlipFlopkym1/`15`p_pp`;``p``;p?;;?p`;``}`p`;_pp``aa*ad15` <$$? ppaa'=l{~{~{~gygygy!ddddfbaad!e.11137aax m7aaExclusiveOrGate. +9937xm``7xmw sRight input is not used.Set9937````7baw sRight input is not used.,%&37x m``7x sy mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..$%&37wm``7bcy 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).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 53aa/6Set/Reset FlipFlop3GateToTrigger;GateToTrigger???*a Input% | 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. *`GateToTriggerkym1/`15`@D@D@D@D@D@D@D|``aa*ad15`|yDIDIDI@A@A@A@Appaa"` Trigger`>"` MasterTrigger````>"`3AsLogic;AsLogic???*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. *`AsLogickym1/`15` } pl9``aa*ad15` UVb pppaap@@@@@p@``aa8ad15` _d $ @`  @` ppaa*ad!c.11137aax m7aaEnter a name for this Sound..trigger9937````7aax gThis is the control gate..MasterTrigger9937aa`7av sThis is the master triggers or gates source on which the output trigger or gate will be synchronized.When the input trigger is fired, this prototype outputs one trigger or gate synced with the master trigger or gate.3bb66 'SyncedTrigger ,d 0 3 5PulseTrain!FreqLow hz inverseaaa 0 ;!d#` >ConstantGate` 0 > 7do7g w*b'+````Fractionabad`ca`aFreqLow03 ,`),`a-a.aa/a!ittttttttwr`a0 ,a 03ra`h`-'+``````ca`3adGate03 ,`)MIDIController47`a-a4ab*p!i||||||||o`aButton ,a 03`p`a`-3!SyncedTrigger!a 7do7g w*d'+``````ca`a67),`a-a.aa/a:r`a0 ,a 03ra`h`-'+`ca```ba`aValue7)Value`a-a.aaValuee!ittttttttq``a0 ,a 03aae`a`-'+`ca```ba`aReset03 ,`)3`a-a4aa5q!ibbbbbbbbsa`a0 ,b 03a 0Oscilator`qaa`-'+}```z`e`Set )+`a-a.aaSeta!mrrrrrrrrrrrr`aa`a0 ,b 03aa 0'aaaaa`-37Set/Reset FlipFlop!`7`d!`7so!` 0 d(#7 fa.3TriggersDurationAbsoluteValuezname:input:TriggersDuration ???3MixerWithWrapAround;mxr with wrap????%"maxAmp := SignalProcessor maximumAmplitude." self initialValueAt: 0 xPut: 0 yPut: self subSounds size. *`MixerWithWrapkym1/`15`!!@?!@ @( 9Μ9<x``aa*ad15`pPPp@<tp0ppaa'=l{~{~{~gygygy!ddddfbaad!b.11137aax m7aaEnter a name for this Sound..=>>37``7aaaThis class has no description. PeteJohnstonsDSPMods Ver 53aa/6MixerWithWrapAround*b3Negate;Negate ???*a Input%self initialValueAt:0 xPut:0 yPut:0. *`Negatekym1/`15`8 8RR 2 <3ππ``aa*ad15`ppaa'=lz{z{z{ffffff!ddddfbaad!b.11137aax m7aaEnter a name for this Sound..89937``7aaa 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.13aa66Negate3TrackAndPreHold;TrackAndPreHold???*b Input Gate%self initialValueAt: 0 xPut: 1 yPut: 0. *`TrackAndPreHoldkym1/`15`??À 8 0P`@`HB@A@D@@@? ``aa*ad15`sXppaa0ad!c.11137aax m7aaEnter a name for this Sound..49937ba``7x 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..89937```7z 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 53aa/6TrackAndPreHold13GateToTrigger;GateToTrigger???*a Input% | 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. *`GateToTriggerkym1/`15`@D@D@D@D@D@D@D|``aa*ad15`|yDIDIDI@A@A@A@Appaa'=l{~{~{~gygygy!ddddfbaad!d.11137aax m7aaEnter a name for this Sound..,%&37y  s``7aay mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..89937``7xma.$%&37xm``7x  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 53aa/6GateToTrigger`3Toggle;Toggle ???*a Input% | 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. *`Togglekym1/`15```aa*ad15`qQQQAAAAppaa;ad!d.111 Enter a name for this Sound..$%&/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 this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..899*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 53aa/6Toggle`` Triggersa3Up/Down Counter;CounterRamp ???*c CountUp CountDown Reset%| 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. *`CounterRampkym1/`15` p# qp0`` 0      @   !!!3``aa*ad15`L C0A@ @p@ pPPppaa'=l{~{~{~gygygy!ddddfbaad!j.11137aax m7aaEnter a name for this Sound.. %%&37w sz m7bcaaIf 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.. +9937y m``7wmxmA 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.. 1%&37y mxm7wmwmIf 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.. 7%&37``xm7z 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. . =9937z m``7y 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.. #%&37z mxm7y 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.. )9937````7z 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.. /%&37x my m7aw 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.. 5%&37x m``7ay 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 53aa/6Up/Down Countera >Reset``a >CountDown`` >CountUpa`SignalProcessor sampleRate*23TrackAndPreHold;TrackAndPreHold???*b Input Gate%self initialValueAt: 0 xPut: 1 yPut: 0. *`TrackAndPreHoldkym1/`15`??À 8 0P`@`HB@A@D@@@? ``aa*ad15`sXppaa;ad!c.11137aax m7aaEnter a name for this Sound..49937ba``7x 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..89937```7z 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 53aa/6TrackAndPreHold2+5`3AsLogic;AsLogic???*a 1% | 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. *`AsLogickym1/`15` } pl9``aa*ad15` UVb pppaa;ad!d.111 Enter a name for this Sound..,%&%When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..899*.$%&/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 53aa/6Invert`6aa515`? ?@@000~~000>``aa8ad15`  #""""&2$' ppaa*ad!b.11137aax m7aaEnter a name for this Sound..Triggers9937``7aaaThis prototype outputs the duration found between two triggers in a range from 0 to 1 mapped from 0 s to 1 s.3bb6subaudio 'TriggersDuration ,c 0 ;!b 5PulseTrain!FreqLow hz inverseaaa` 0 > 7bv7 x w*a'+``````ca`aFreqLow03 ,`),`a-a.aa/a!ipppppppppr`a0 ,a 03ra`h`-303 ,`TriggersDuration!a 7uz7e u*c'+``````ca`a/0),`a-a.aa/a3r`a0 ,a 03ra`h`-'+``````ca`aAmpLow03 ,`)AmpLow`a-a.aaAmpLowb!mvvvvvvvvvvvvh|e`a0 ,a 03|eb`a`-'+`ca```ba`aLogFreq &)LogFreq`a-a.aaLogFreqa!mpppppppppppp{p`a0 ,a 03pa``-3 &MixerWithWrapAround!`7y y!`7bv!` 0 d%7 sa.3FiredTriggersDuration3TrackAndHold;TrackAndHold???*b Input Gate%self initialValueAt: 0 xPut: 1 yPut: 0. *`TrackAndHoldkym1/`15` 8 0`@`H@@A@D@@@@@@@``aa8ad15`pXppaa&ad!c.11137aax m7aaEnter a name for this Sound..49937ba``7x 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..89937```7z mx mThis class has no description. PeteJohnstonsDSPMods Ver 53aa/6FiredTriggersDuration ???*Invert`2 *b2;$SyncedTrigger Reset3Toggle;Toggle ???*a Input% | 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. *`Togglekym1/`15```aa*ad15`qQQQAAAAppaa&ad!d.1112Enter a name for this Sound..$%&?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)..,%&3When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1..899: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 53aa/6Toggle`` Triggersa;! ,15`? @ @ @ @ @ @ @ @@@@000~~000>``aa8ad15`pXppaa*ad!c.11137aax m7aaEnter a name for this Sound.. +9937````7aax gWhen this input is fired with a trigger the duration between the next two triggers is being computed..89937aa`7av sThis is the source of the triggers.This prototype find the time between two triggers when the Reset input is being fired. The time to give the result depends on the time between two triggers. If the time between two triggers must be found continuously, then the prototype TriggersDuration is best suited.3aa6?FiredTriggersDuration= !"a#'a+ (7{.87*b:%` '`:%`*$` .1 ```7~f.5 'TriggerCounter ??? ,c 0 ;!n; %`5 **a ' !`0 a > $`a &`?MaxCountOfTriggers*20-10-1`` >` ;`; %` =`` `!` = ` 0 > 7bv7 x w*`303 ,`TriggerCounter ???!`7bv!` 0 d*b% :aa7kf.5 'Synced Trigger ??? ,d 0 d 0 ;!r>"` &``>"`,&` )a``?`>"` ``>"`*<<!````=`#`*<">`a` ` 0 > 7bv7 x w*`303 ,`Synced Trigger ???!`7bv!` 0soundEditorBoundingBox37ya7}g*a$aa7 xf.>!# *b##%)+5`72`` 4a6"a >$``a >&`` >(a`SignalProcessor sampleRate*2+/+5`2,`>aa 7 ef. $ (* *`2 *b2;$ .  0 2 -``  /a;!-7rf7``37m p7{rd