BOSS 980000 SoundCollectionPointfobjectRepresented:location:lastViewRectangle:lastIconSize:SoundCollectionaname:sounds:SoundCollection48253OrderedCollectionabaSoundPointaobjectRepresented:location:AbstractedSoundClassuname:structureSound:icon:smallIcon:useFancyIcon:parameterSpecifications:classDescription:shouldExpandFirst:ioProfile:StepWriterDSPProgramWithInputslname:inputs:initialValuesCodeString:programName:wavetable:tableAccess:tableStart:tableEnd:StepWriter???*cVariableSoundnname:Index>Write>InputKymaCodeString pstring:bindings:| "maxAmp" scale offset TrueSamp EvenSamp StartSamp ExtraSamp DeadSamp | "maxAmp := SignalProcessor maximumAmplitude." TrueSamp:=(?NoOfSamples+0.5)truncated. EvenSamp:=2*(((TrueSamp+1.1)/2)truncated). StartSamp:=self tableAddress. ExtraSamp:=StartSamp+TrueSamp+0. DeadSamp:=StartSamp+TrueSamp+1. offset := ((StartSamp) + (EvenSamp/2))truncated. scale :=( EvenSamp/2)truncated . self initialValueAt: 0 xPut: scale yPut: offset. self initialValueAt: 1 xPut: DeadSamp yPut: StartSamp+1. self initialValueAt: 2 xPut: ExtraSamp yPut: 0. BindingListad`StepWriterLazyVariablea WaveTablewriteOnly`LazyMessageSendareceiver:message:661NoOfSamplesMessageab+Arraya`aaa>truncated#`>!#aaDepth1ImageahByteArraya``BBBBBB <\4 `@  ``aaMonoMappedPalette rgWordArraya`l``````#ddddab`aad,0`YiY `@@ ppaaKymaMappedPaletteaf8l{~{~{~gygygy#ddddfbaad#fParameterSpecificationuname:typeName:viewType:rectangle:helpString:name))RectangleabPointabaax m/aaEnter a name for this Sound.&WaveTablewavetablefileName+/x  s``/x sw{Name of the ram table. should match a reader&inputsound>+/````/baw sOnly the left input is writen to ram but the output gets the sterio input un altered.&index>>+/xm``/xmx sThis level tells the writer which sample to write to. -1 is the first sample and +1 is the last. The other samples are proprtionatly spaced between them. The input will only be writen to the ram when the"Write" level is greater than zero.&Write>>+/xmx s/xmw sWriting will only happen when this signal is greater than one. No writing will take place if this signal is zero or less. A gate to trigger module can be used to ensure only one sample is stored at a time.&NoOfSamplesvalue1+/bcaa/w sx mThis is the total numder of samples in the wave table.This module lets you write to sample ram in a random order , one or more steps at a time. PeteJohnstonsDSPMods Ver 5SoundIOProfileaeaanoneaudioFatStringqstring:extraInformation:OscilloscopeDisplay WeirdnessFastIdentityDictionaryaddAssociationabreplaceableInputNoEnvelopeOscillatormname:frequency:wavetable:modulation:modulator:maxMI:interpolation:envelope:pitchBend:reset:formant:index:fromMemoryWriter:>Oscillator#a'vcsLayoutSoundVCSLayoutofirstTime:windowOrigin:windowExtent:components:selectedPreset:look:name:selectedLayout:subLayouts:editorOrigin:addedSubLayouts:/}y/f~*aVCSEventSourceComponentpmicrosound:layout:label:look:concreteEvent:displayType:presets:id:minimum:maximum:grid:taper:noDice:showNumber:isGenerated:affectedByPresets:LayoutFrameah``````ca`aFrequencyKymaLookunameOrNil:superLook:database:%Waldo%Classic# v'hScrollRightDownWinBlockClosureacCompiledBlockbbb0h0!eCompiledMethodbc`0j4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|iD}~jEe&u' y'BasicLook*4b0h0!e8XP\hThumbCap.gifreadGIF:hThumbCapWin:4c0i0!re8XP\hThumbMid.gif#asPatternhThumbMidWin:4b0h0!e8XP\hThumbGrab.gif#hThumbGrabWin:4b0h0!e8XP\hThumbEnd.gif#hThumbEndWin:4b0h0!e8XP\hDeThumbCap.gif#hDeThumbCapWin:4c0i0!re8XP\hDeThumbMid.gif#(hDeThumbMidWin:4b0h0!e8XP\hDeThumbGrab.gif#hDeThumbGrabWin:4b0h0!e8XP\hDeThumbEnd.gif#hDeThumbEndWin:4c0i0!re8XP\hScrollMid.gif#(hScrollBarMidWin:4b0h0!e8XP\hScrollLeftUp.gif#hScrollLeftUpWin:4b0h0!e8XP\hScrollLeftDown.gif#hScrollLeftDownWin:4b0h0!e8XP\hScrollLeftDisabled.gif#hScrollLeftDisabledWin:4b0h0!e8XP\hScrollRightUp.gif#hScrollRightUpWin:3hScrollRightDownWin:4b0h0!e8XP\hScrollRightDisabled.gif#hScrollRightDisabledWin:4b0h0!e8XP\vThumbCap.gif#vThumbCapWin:4c0i0!re8XP\vThumbMid.gif#(vThumbMidWin:4b0h0!e8XP\vThumbGrab.gif#vThumbGrabWin:4b0h0!e8XP\vThumbEnd.gif#vThumbEndWin:4b0h0!e8XP\vDeThumbCap.gif#vDeThumbCapWin:4c0i0!re8XP\vDeThumbMid.gif#(vDeThumbMidWin:4b0h0!e8XP\vDeThumbGrab.gif#vDeThumbGrabWin:4b0h0!e8XP\vDeThumbEnd.gif#vDeThumbEndWin:4c0i0!re8XP\vScrollMid.gif#(vScrollBarMidWin:4b0h0!e8XP\vScrollUpUp.gif#vScrollUpUpWin:4b0h0!e8XP\vScrollUpDown.gif#vScrollUpDownWin:4b0h0!e8XP\vScrollUpDisabled.gif#vScrollUpDisabledWin:4b0h0!e8XP\vScrollDownUp.gif#vScrollDownUpWin:4b0h0!e8XP\vScrollDownDown.gif#vScrollDownDownWin:4b0h0!e8XP\vScrollDownDisabled.gif#vScrollDownDisabledWin:4b0h0!e8XP\vGrowDown.gif#vGrowDownWin:4b0h0!e8XP\vGrowUp.gif#vGrowUpWin:4b0h0!e8XP\vGrowDisabled.gif#vGrowDisabledWin:4b0h0!e8XP\vShrinkDown.gif#vShrinkDownWin:4b0h0!e8XP\vShrinkUp.gif#vShrinkUpWin:4b0h0!e8XP\vShrinkDisabled.gif#vShrinkDisabledWin:4b0h0!e8XP\hGrowDown.gif#hGrowDownWin:4b0h0!e8XP\hGrowUp.gif#hGrowUpWin:4b0h0!e8XP\hGrowDisabled.gif#hGrowDisabledWin:4b0h0!e8XP\hShrinkDown.gif#hShrinkDownWin:4b0h0!e8XP\hShrinkUp.gif#hShrinkUpWin:4b0h0!e8XP\hShrinkDisabled.gif#hShrinkDisabledWin:4b0h0!e8XP\hFitDown.gif#hFitDownWin:4b0h0!e8XP\hFitUp.gif#hFitUpWin:4b0h0!e8XP\hFitDisabled.gif#hFitDisabledWin:4b0h0!e8XP\buttonNormalDownCap.gif#buttonNormalDownCapWin:4c0i0!re8XP\buttonNormalDownMid.gif#(buttonNormalDownMidWin:4b0h0!e8XP\buttonNormalDownEnd.gif#buttonNormalDownEndWin:4b0h0!e8XP\buttonNormalUpCap.gif#buttonNormalUpCapWin:4c0i0!re8XP\buttonNormalUpMid.gif#(buttonNormalUpMidWin:4b0h0!e8XP\buttonNormalUpEnd.gif#buttonNormalUpEndWin:4b0h0!e8XP\buttonNormalDisCap.gif#buttonNormalDisCapWin:4c0i0!re8XP\buttonNormalDisMid.gif#(buttonNormalDisMidWin:4b0h0!e8XP\buttonNormalDisEnd.gif#buttonNormalDisEndWin:4b0h0!e8XP\buttonSmallNormalDownCap.gif#buttonSmallNormalDownCapWin:4c0i0!re8XP\buttonSmallNormalDownMid.gif#(buttonSmallNormalDownMidWin:4b0h0!e8XP\buttonSmallNormalDownEnd.gif#buttonSmallNormalDownEndWin:4b0h0!e8XP\buttonSmallNormalUpCap.gif#buttonSmallNormalUpCapWin:4c0i0!re8XP\buttonSmallNormalUpMid.gif#(buttonSmallNormalUpMidWin:4b0h0!e8XP\buttonSmallNormalUpEnd.gif#buttonSmallNormalUpEndWin:4b0h0!e8XP\buttonSmallNormalDisCap.gif#buttonSmallNormalDisCapWin:4c0i0!re8XP\buttonSmallNormalDisMid.gif#(buttonSmallNormalDisMidWin:4b0h0!e8XP\buttonSmallNormalDisEnd.gif#buttonSmallNormalDisEndWin:yourselfXP\hScrollRightDown.gif#%'tlTrackSpeakerSolo04b0h0!e9r0 r4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopjqEe= m>4b0h0!e"buttons\pauseUp19.gif#pauseUp19:4b0h0!e"buttons\pauseDown19.gif#pauseDown19:4b0h0!e"buttons\playUp19.gif#playUp19:4b0h0!e"buttons\playDown19.gif#playDown19:4b0h0!e"buttons\prevMarkerUp19.gif#prevMarkerUp19:4b0h0!e"buttons\prevMarkerDown19.gif#prevMarkerDown19:4b0h0!e"buttons\nextMarkerUp19.gif#nextMarkerUp19:4b0h0!e"buttons\nextMarkerDown19.gif#nextMarkerDown19:4b0h0!e"buttons\prevTimeUp19.gif#prevTimeUp19:4b0h0!e"buttons\prevTimeDown19.gif#prevTimeDown19:4b0h0!e"buttons\nextTimeUp19.gif#nextTimeUp19:4b0h0!e"buttons\nextTimeDown19.gif#nextTimeDown19:4b0h0!e"buttons\newMarkerUp19.gif#newMarkerUp19:4b0h0!e"buttons\newMarkerDown19.gif#newMarkerDown19:4b0h0!e"buttons\newMarkersUp19.gif#newMarkersUp19:4b0h0!e"buttons\newMarkersDown19.gif#newMarkersDown19:4b0h0!e"buttons\anchorUp19.gif#anchorUp19:4b0h0!e"buttons\anchorDown19.gif#anchorDown19:4b0h0!e"buttons\tlRecordDown.gif#tlRecordDown:4b0h0!e"buttons\tlRecordUp.gif#tlRecordUp:4b0h0!e"buttons\blankUp19.gif#tlBlankUp19:4b0h0!e"buttons\blankDown19.gif#tlBlankDown19:4b0h0!e"misc\submix.gif#tlSubmixIcon:4b0h0!e"misc\outputs.gif#tlOutputsIcon:4b0h0!e"misc\sourceLocation.gif#tlSourceLocation:4b0h0!e"misc\microphones\microphone.gif#tlTrackMicrophone:4b0h0!e"misc\microphones\microphoneG.gif#tlTrackMicrophonePlay:4b0h0!e"misc\microphones\microphoneR.gif#tlTrackMicrophoneRecord:4b0h0!e"misc\speakers\trkSpeaker.gif#tlTrackSpeaker: tlTrackSpeakerSolo:4b0h0!e"misc\speakers\trkSpeakerMute.gif#tlTrackSpeakerMute:4b0h0!e"buttons\cachePlay19.gif#cachePlay19:4b0h0!e"buttons\cacheLive19.gif#cacheLive19:4b0h0!e"buttons\cacheRecord19.gif#cacheRecord19:4b0h0!e"buttons\tfInvertDown.gif#tfInvertDown:4b0h0!e"buttons\tfInvertUp.gif#tfInvertUp:4b0h0!e"buttons\tfLoopDown.gif#tfLoopDown:4b0h0!e"buttons\tfLoopUp.gif#tfLoopUp:4b0h0!e"buttons\tfOffsetDown.gif#tfOffsetDown:4b0h0!e"buttons\tfOffsetUp.gif#tfOffsetUp:4b0h0!e"buttons\tfRetroDown.gif#tfRetroDown:4b0h0!e"buttons\tfRetroUp.gif#tfRetroUp:4b0h0!e"buttons\tfScaleDurationDown.gif#tfScaleDurationDown:4b0h0!e"buttons\tfScaleDurationUp.gif#tfScaleDurationUp:4b0h0!e"buttons\tfScaleDurationToFitDown.gif#tfScaleDurationToFitDown:4b0h0!e"buttons\tfScaleDurationToFitUp.gif#tfScaleDurationToFitUp:4b0h0!e"buttons\tfScaleFunctionDown.gif#tfScaleFunctionDown:4b0h0!e"buttons\tfScaleFunctionUp.gif#tfScaleFunctionUp:4b0h0!e"buttons\tfSnapToGridDown.gif#tfSnapToGridDown:4b0h0!e"buttons\tfSnapToGridUp.gif#tfSnapToGridUp:4b0h0!e"buttons\tfSprayCanDown.gif#tfSprayCanDown:4b0h0!e"buttons\tfSprayCanUp.gif#tfSprayCanUp:4b0h0!e"buttons\tfSquareOffDown.gif#tfSquareOffDown:4b0h0!e"buttons\tfSquareOffUp.gif#tfSquareOffUp:4b0h0!e"buttons\tfThresholdDown.gif#tfThresholdDown:4b0h0!e"buttons\tfThresholdUp.gif#tfThresholdUp:;misc\speakers\trkSpeakerSolo.gif#%'hDeThumbEndWin0>%'hDeThumbMidMac04c0i0!re9z0r4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|iD}~iDiDiDiDiDiDiDiDiDiDiDiDiDjEe= }>4b0h0!e*OSX\hThumbCap.gif#hThumbCapMac:4c0i0!re*OSX\hThumbMid.gif#(hThumbMidMac:4b0h0!e*OSX\hThumbEnd.gif#hThumbEndMac:4b0h0!e*OSX\hDeThumbCap.gif#hDeThumbCapMac:(hDeThumbMidMac:4b0h0!e*OSX\hDeThumbEnd.gif#hDeThumbEndMac:4b0h0!e*OSX\hScrollCap.gif#hScrollBarCapMac:4c0i0!re*OSX\hScrollMid.gif#(hScrollBarMidMac:4b0h0!e*OSX\hScrollEnd.gif#hScrollBarEndMac:4b0h0!e*OSX\hScrollLeftUp.gif#hScrollLeftUpMac:4b0h0!e*OSX\hScrollLeftDown.gif#hScrollLeftDownMac:4b0h0!e*OSX\hScrollLeftDisabled.gif#hScrollLeftDisabledMac:4b0h0!e*OSX\hScrollRightUp.gif#hScrollRightUpMac:4b0h0!e*OSX\hScrollRightDown.gif#hScrollRightDownMac:4b0h0!e*OSX\hScrollRightDisabled.gif#hScrollRightDisabledMac:4b0h0!e*OSX\vThumbCap.gif#vThumbCapMac:4c0i0!re*OSX\vThumbMid.gif#(vThumbMidMac:4b0h0!e*OSX\vThumbEnd.gif#vThumbEndMac:4b0h0!e*OSX\vDeThumbCap.gif#vDeThumbCapMac:4c0i0!re*OSX\vDeThumbMid.gif#(vDeThumbMidMac:4b0h0!e*OSX\vDeThumbEnd.gif#vDeThumbEndMac:4b0h0!e*OSX\vScrollCap.gif#vScrollBarCapMac:4c0i0!re*OSX\vScrollMid.gif#(vScrollBarMidMac:4b0h0!e*OSX\vScrollEnd.gif#vScrollBarEndMac:4b0h0!e*OSX\vScrollUpUp.gif#vScrollUpUpMac:4b0h0!e*OSX\vScrollUpDown.gif#vScrollUpDownMac:4b0h0!e*OSX\vScrollUpDisabled.gif#vScrollUpDisabledMac:4b0h0!e*OSX\vScrollDownUp.gif#vScrollDownUpMac:4b0h0!e*OSX\vScrollDownDown.gif#vScrollDownDownMac:4b0h0!e*OSX\vScrollDownDisabled.gif#vScrollDownDisabledMac:4b0h0!e*OSX\vGrowDown.gif#vGrowDownMac:4b0h0!e*OSX\vGrowUp.gif#vGrowUpMac:4b0h0!e*OSX\vGrowDisabled.gif#vGrowDisabledMac:4b0h0!e*OSX\vShrinkDown.gif#vShrinkDownMac:4b0h0!e*OSX\vShrinkUp.gif#vShrinkUpMac:4b0h0!e*OSX\vShrinkDisabled.gif#vShrinkDisabledMac:4b0h0!e*OSX\hGrowDown.gif#hGrowDownMac:4b0h0!e*OSX\hGrowUp.gif#hGrowUpMac:4b0h0!e*OSX\hGrowDisabled.gif#hGrowDisabledMac:4b0h0!e*OSX\hShrinkDown.gif#hShrinkDownMac:4b0h0!e*OSX\hShrinkUp.gif#hShrinkUpMac:4b0h0!e*OSX\hShrinkDisabled.gif#hShrinkDisabledMac:4b0h0!e*OSX\hFitDown.gif#hFitDownMac:4b0h0!e*OSX\hFitUp.gif#hFitUpMac:4b0h0!e*OSX\hFitDisabled.gif#hFitDisabledMac:4b0h0!e*OSX\spaceFiller.gif#spaceFillerMac:4b0h0!e*OSX\buttonNormalDownCap.gif#buttonNormalDownCapMac:4c0i0!re*OSX\buttonNormalDownMid.gif#(buttonNormalDownMidMac:4b0h0!e*OSX\buttonNormalDownEnd.gif#buttonNormalDownEndMac:4b0h0!e*OSX\buttonNormalUpCap.gif#buttonNormalUpCapMac:4c0i0!re*OSX\buttonNormalUpMid.gif#(buttonNormalUpMidMac:4b0h0!e*OSX\buttonNormalUpEnd.gif#buttonNormalUpEndMac:4b0h0!e*OSX\buttonNormalDisCap.gif#buttonNormalDisCapMac:4c0i0!re*OSX\buttonNormalDisMid.gif#(buttonNormalDisMidMac:4b0h0!e*OSX\buttonNormalDisEnd.gif#buttonNormalDisEndMac:4b0h0!e*OSX\buttonSmallNormalDownCap.gif#buttonSmallNormalDownCapMac:4c0i0!re*OSX\buttonSmallNormalDownMid.gif#(buttonSmallNormalDownMidMac:4b0h0!e*OSX\buttonSmallNormalDownEnd.gif#buttonSmallNormalDownEndMac:4b0h0!e*OSX\buttonSmallNormalUpCap.gif#buttonSmallNormalUpCapMac:4c0i0!re*OSX\buttonSmallNormalUpMid.gif#(buttonSmallNormalUpMidMac:4b0h0!e*OSX\buttonSmallNormalUpEnd.gif#buttonSmallNormalUpEndMac:4b0h0!e*OSX\buttonSmallNormalDisCap.gif#buttonSmallNormalDisCapMac:4c0i0!re*OSX\buttonSmallNormalDisMid.gif#(buttonSmallNormalDisMidMac:4b0h0!e*OSX\buttonSmallNormalDisEnd.gif#buttonSmallNormalDisEndMac:4b0h0!e*OSX\buttonSmallDMenuFlatDownCap.gif#buttonSmallDMenuFlatDownCapMac:4c0i0!re*OSX\buttonSmallDMenuFlatDownMid.gif#(buttonSmallDMenuFlatDownMidMac:4b0h0!e*OSX\buttonSmallDMenuFlatDownEnd.gif#buttonSmallDMenuFlatDownEndMac:4b0h0!e*OSX\buttonSmallFlatDownEnd.gif#buttonSmallFlatDownEndMac:4b0h0!e*OSX\buttonSmallDMenuFlatUpCap.gif#buttonSmallDMenuFlatUpCapMac:4c0i0!re*OSX\buttonSmallDMenuFlatUpMid.gif#(buttonSmallDMenuFlatUpMidMac:4b0h0!e*OSX\buttonSmallDMenuFlatUpEnd.gif#buttonSmallDMenuFlatUpEndMac:4b0h0!e*OSX\buttonSmallFlatUpEnd.gif#buttonSmallFlatUpEndMac:4b0h0!e*OSX\buttonSmallDMenuFlatDisCap.gif#buttonSmallDMenuFlatDisCapMac:4c0i0!re*OSX\buttonSmallDMenuFlatDisMid.gif#(buttonSmallDMenuFlatDisMidMac:4b0h0!e*OSX\buttonSmallDMenuFlatDisEnd.gif#buttonSmallDMenuFlatDisEndMac:4b0h0!e*OSX\buttonSmallFlatDisEnd.gif#buttonSmallFlatDisEndMac:;OSX\hDeThumbMid.gif#(%'renderImpulseUp1904b0h0!e9e0~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>4b0h0!e?misc\warn.gif#warnIcon:4b0h0!e?misc\stop.gif#stopIcon:4b0h0!e?misc\speakers\speaker.gif#speaker:4b0h0!e?buttons\disk21.gif#disk21:4b0h0!e?buttons\dropDownUp17.gif#dropDownUp17:4b0h0!e?buttons\dropDownUp19.gif#dropDownUp19:4b0h0!e?buttons\dropDownDown19.gif#dropDownDown19:4b0h0!e?buttons\makeSelectionUp19.gif#makeSelectionUp19:4b0h0!e?buttons\editSelectionUp19.gif#editSelectionUp19:4b0h0!e?buttons\noSelectionUp19.gif#noSelectionUp19:4b0h0!e?buttons\warpSelectionUp19.gif#warpSelectionUp19:4b0h0!e?buttons\makeSelectionDown19.gif#makeSelectionDown19:4b0h0!e?buttons\editSelectionDown19.gif#editSelectionDown19:4b0h0!e?buttons\noSelectionDown19.gif#noSelectionDown19:4b0h0!e?buttons\warpSelectionDown19.gif#warpSelectionDown19:4b0h0!e?buttons\shapeRectangleUp19.gif#shapeRectangleUp19:4b0h0!e?buttons\shapeEllipseUp19.gif#shapeEllipseUp19:4b0h0!e?buttons\shapePolygonUp19.gif#shapePolygonUp19:4b0h0!e?buttons\shapeTrackUp19.gif#shapeTrackUp19:4b0h0!e?buttons\shapeRectangleDown19.gif#shapeRectangleDown19:4b0h0!e?buttons\shapeEllipseDown19.gif#shapeEllipseDown19:4b0h0!e?buttons\shapePolygonDown19.gif#shapePolygonDown19:4b0h0!e?buttons\shapeTrackDown19.gif#shapeTrackDown19:4b0h0!e?buttons\combinationSingleUp19.gif#combinationSingleUp19:4b0h0!e?buttons\combinationPlusUp19.gif#combinationPlusUp19:4b0h0!e?buttons\combinationTimesUp19.gif#combinationTimesUp19:4b0h0!e?buttons\combinationMinusUp19.gif#combinationMinusUp19:4b0h0!e?buttons\combinationSingleDown19.gif#combinationSingleDown19:4b0h0!e?buttons\combinationPlusDown19.gif#combinationPlusDown19:4b0h0!e?buttons\combinationTimesDown19.gif#combinationTimesDown19:4b0h0!e?buttons\combinationMinusDown19.gif#combinationMinusDown19:4b0h0!e?buttons\combinationFrontDown19.gif#combinationFrontDown19:4b0h0!e?buttons\combinationFrontUp19.gif#combinationFrontUp19:4b0h0!e?buttons\cursorLoopFwdBkwdPlayUp19.gif#cursorLoopFwdBkwdPlayUp19:4b0h0!e?buttons\cursorLoopSelPlayUp19.gif#cursorLoopSelPlayUp19:4b0h0!e?buttons\cursorLoopPlayUp19.gif#cursorLoopPlayUp19:4b0h0!e?buttons\cursorNormalPlayUp19.gif#cursorNormalPlayUp19:4b0h0!e?buttons\cursorLoopFwdBkwdPlayDown19.gif#cursorLoopFwdBkwdPlayDown19:4b0h0!e?buttons\cursorLoopSelPlayDown19.gif#cursorLoopSelPlayDown19:4b0h0!e?buttons\cursorLoopPlayDown19.gif#cursorLoopPlayDown19:4b0h0!e?buttons\cursorNormalPlayDown19.gif#cursorNormalPlayDown19:4b0h0!e?buttons\renderSOSUp19.gif#renderSOSUp19:4b0h0!e?buttons\renderGrainUp19.gif#renderGrainUp19:=renderImpulseUp19:4b0h0!e?buttons\renderFilterUp19.gif#renderFilterUp19:4b0h0!e?buttons\renderSamplesUp19.gif#renderSamplesUp19:4b0h0!e?buttons\createModuleUp19.gif#createModuleUp19:4b0h0!e?buttons\renderSOSDown19.gif#renderSOSDown19:4b0h0!e?buttons\renderGrainDown19.gif#renderGrainDown19:4b0h0!e?buttons\renderImpulseDown19.gif#renderImpulseDown19:4b0h0!e?buttons\renderFilterDown19.gif#renderFilterDown19:4b0h0!e?buttons\renderSamplesDown19.gif#renderSamplesDown19:4b0h0!e?buttons\createModuleDown19.gif#createModuleDown19:4b0h0!e?buttons\hearAllUp19.gif#hearAllUp19:4b0h0!e?buttons\hearSelUp19.gif#hearSelUp19:4b0h0!e?buttons\hearAllDown19.gif#hearAllDown19:4b0h0!e?buttons\hearSelDown19.gif#hearSelDown19:4b0h0!e?buttons\colorSetGrayScaleUp19.gif#colorSetGrayScaleUp19:4b0h0!e?buttons\colorSetInvGrayScaleUp19.gif#colorSetInvGrayScaleUp19:4b0h0!e?buttons\colorSetRainbowUp19.gif#colorSetRainbowUp19:4b0h0!e?buttons\colorSetGrayScaleDown19.gif#colorSetGrayScaleDown19:4b0h0!e?buttons\colorSetInvGrayScaleDown19.gif#colorSetInvGrayScaleDown19:4b0h0!e?buttons\colorSetRainbowDown19.gif#colorSetRainbowDown19:initializeMoreIconButtonsbuttons\renderImpulseUp19.gif#%'deSelectionDown1904b0h0!e9a0l4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(iD)*iD+,iD-.iD/0iD12iD34iD56iD78iD9:iD;iD?@iDABiDCDiDEFiDGHiDIJiDKLiDMNiDOPiDQRiDSTiDUViDWXiDYZiD[\iD]^iD_`iDabiDcdiDefiDghiDijiDkliDmniDopiDqriDstiDuviDwxiDyziD{|jD}~fEe= m>4b0h0!e&buttons\modifyAmpUp19.gif#modifyAmpUp19:4b0h0!e&buttons\modifyFreqUp19.gif#modifyFreqUp19:4b0h0!e&buttons\modifyFreqDown19.gif#modifyFreqDown19:4b0h0!e&buttons\modifyAmpDown19.gif#modifyAmpDown19:4b0h0!e&buttons\modifyScaleUp19.gif#modifyScaleUp19:4b0h0!e&buttons\modifyScaleDown19.gif#modifyScaleDown19:4b0h0!e&buttons\modifyOffsetUp19.gif#modifyOffsetUp19:4b0h0!e&buttons\modifyOffsetDown19.gif#modifyOffsetDown19:4b0h0!e&buttons\modifySetUp19.gif#modifySetUp19:4b0h0!e&buttons\modifySetDown19.gif#modifySetDown19:4b0h0!e&buttons\modifyRubberbandUp19.gif#modifyRubberbandUp19:4b0h0!e&buttons\modifyConstantUp19.gif#modifyConstantUp19:4b0h0!e&buttons\modifyConstantDown19.gif#modifyConstantDown19:4b0h0!e&buttons\modifyRubberbandDown19.gif#modifyRubberbandDown19:4b0h0!e&buttons\modifySpectAmpUp19.gif#modifySpectAmpUp19:4b0h0!e&buttons\modifySpectAmpDown19.gif#modifySpectAmpDown19:4b0h0!e&buttons\modifySpectFreqUp19.gif#modifySpectFreqUp19:4b0h0!e&buttons\modifySpectFreqDown19.gif#modifySpectFreqDown19:4b0h0!e&buttons\modifyWavetableXUp19.gif#modifyWavetableXUp19:4b0h0!e&buttons\modifyWavetableXDown19.gif#modifyWavetableXDown19:4b0h0!e&buttons\modifyWavetableYUp19.gif#modifyWavetableYUp19:4b0h0!e&buttons\modifyWavetableYDown19.gif#modifyWavetableYDown19:4b0h0!e&buttons\modifyRadialUp19.gif#modifyRadialUp19:4b0h0!e&buttons\modifyRadialDown19.gif#modifyRadialDown19:4b0h0!e&buttons\modifyLinearUp19.gif#modifyLinearUp19:4b0h0!e&buttons\modifyLinearDown19.gif#modifyLinearDown19:4b0h0!e&buttons\deSelectionUp19.gif#deSelectionUp19:$deSelectionDown19:4b0h0!e&buttons\infoSelectionUp19.gif#infoSelectionUp19:4b0h0!e&buttons\infoSelectionDown19.gif#infoSelectionDown19:4b0h0!e&buttons\drawSelectionUp19.gif#drawSelectionUp19:4b0h0!e&buttons\drawSelectionDown19.gif#drawSelectionDown19:4b0h0!e&buttons\drawControlPointsUp19.gif#drawControlPointsUp19:4b0h0!e&buttons\drawControlPointsDown19.gif#drawControlPointsDown19:4b0h0!e&buttons\drawMultiUp19.gif#drawMultiUp19:4b0h0!e&buttons\drawMultiDown19.gif#drawMultiDown19:4b0h0!e&buttons\drawSprayPaintUp19.gif#drawSprayPaintUp19:4b0h0!e&buttons\drawSprayPaintDown19.gif#drawSprayPaintDown19:4b0h0!e&buttons\drawSelfSimilarUp19.gif#drawSelfSimilarUp19:4b0h0!e&buttons\drawSelfSimilarDown19.gif#drawSelfSimilarDown19:4b0h0!e&buttons\drawEraserUp19.gif#drawEraserUp19:4b0h0!e&buttons\drawEraserDown19.gif#drawEraserDown19:4b0h0!e&buttons\hiddenLogLinUp19.gif#hiddenLogLinUp19:4b0h0!e&buttons\hiddenLogLinDown19.gif#hiddenLogLinDown19:4b0h0!e&buttons\joinDotsUp19.gif#joinDotsUp19:4b0h0!e&buttons\joinDotsDown19.gif#joinDotsDown19:4b0h0!e&buttons\shapeFrameIntervalUp19.gif#shapeFrameIntervalUp19:4b0h0!e&buttons\shapeFrameIntervalDown19.gif#shapeFrameIntervalDown19:4b0h0!e&faders\verticalYellowMarker.gif#verticalYellowMarker:4b0h0!e&faders\horizontalYellowMarker.gif#horizontalYellowMarker:4b0h0!e&buttons\embossGradientUp19.gif#embossGradientUp19:4b0h0!e&buttons\embossGradientDown19.gif#embossGradientDown19:4b0h0!e&buttons\debossGradientUp19.gif#debossGradientUp19:4b0h0!e&buttons\debossGradientDown19.gif#debossGradientDown19:4b0h0!e&buttons\stencilGradientUp19.gif#stencilGradientUp19:4b0h0!e&buttons\stencilGradientDown19.gif#stencilGradientDown19:4b0h0!e&buttons\stampGradientUp19.gif#stampGradientUp19:4b0h0!e&buttons\stampGradientDown19.gif#stampGradientDown19:4b0h0!e&buttons\jitterLabel9.gif#jitterLabel9:4b0h0!e&buttons\recursionLabel9.gif#recursionLabel9:4b0h0!e&buttons\smoothingLabel9.gif#smoothingLabel9:4b0h0!e&buttons\scalingLabel9.gif#scalingLabel9:4b0h0!e&misc\mixPoint9.gif#mixPoint9:&zapCachebuttons\deSelectionDown19.gif#%'vScrollBarEndMac0%%'playUp190,%'stopDown2004b0h0!e9}04hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:jD4b0h0!e/buttons\QuestionUp10.gif#fileOrganizerHelpUp:4b0h0!e/buttons\QuestionDown10.gif#fileOrganizerHelpDown:4b0h0!e/buttons\enterDown20.gif#enterDown20:4b0h0!e/buttons\enterUp20.gif#enterUp20:4b0h0!e/buttons\enterMicDown.gif#enterMicDown:4b0h0!e/buttons\enterMicUp.gif#enterMicUp:4b0h0!e/buttons\playDown20.gif#playDown20:4b0h0!e/buttons\playUp20.gif#playUp20:-stopDown20:4b0h0!e/buttons\stopUp20.gif#stopUp20:4b0h0!e/buttons\updateDown20.gif#updateDown20:4b0h0!e/buttons\updateUp20.gif#updateUp20:4b0h0!e/buttons\useInputDown20.gif#useInputDown20:4b0h0!e/buttons\useInputUp20.gif#useInputUp20:buttons\stopDown20.gif#%'diceUp1904b0h0!e9{0x4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8jD:Ee= u>*diceUp19:4b0h0!e,buttons\diceDown19.gif#diceDown19:4b0h0!e,buttons\cameraNot19.gif#cameraNot19:4b0h0!e,buttons\cameraUp19.gif#cameraUp19:4b0h0!e,buttons\cameraDown19.gif#cameraDown19:4b0h0!e,buttons\Lock13.gif#padlockLock:4b0h0!e,buttons\Unlock13.gif#padlockUnlock:4b0h0!e,buttons\Mic13.gif#microphoneEnabled:4b0h0!e,buttons\NoMic13.gif#microphoneDisabled:4b0h0!e,buttons\Pen13.gif#penEnabled:4b0h0!e,buttons\NoPen13.gif#penDisabled:4b0h0!e,buttons\Kbd13.gif#keyboardEnabled:4b0h0!e,buttons\NoKbd13.gif#keyboardDisabled:buttons\diceUp19.gif#%'embossGradientDown1901%'cameraNot1903%'down1504b0h0!e9k0v4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$iD%&iD'(jD)*Ee= i>4b0h0!e+buttons\Disabled10.gif#disabled10:4b0h0!e+buttons\Up10.gif#up10:4b0h0!e+buttons\Down10.gif#down10:4b0h0!e+buttons\Disabled15.gif#disabled15:4b0h0!e+buttons\Up15.gif#up15:)down15:4b0h0!e+buttons\Disabled17.gif#disabled17:4b0h0!e+buttons\Up17.gif#up17:4b0h0!e+buttons\Down17.gif#down17:4b0h0!e+buttons\Disabled19.gif#disabled19:4b0h0!e+buttons\Up19.gif#up19:4b0h0!e+buttons\Down19.gif#down19:4b0h0!e+buttons\Disabled20.gif#disabled20:4b0h0!e+buttons\Up20.gif#up20:4b0h0!e+buttons\Down20.gif#down20:4b0h0!e+buttons\Disabled21.gif#disabled21:4b0h0!e+buttons\Up21.gif#up21:4b0h0!e+buttons\Down21.gif#down21:4b0h0!e+buttons\Disabled36.gif#disabled36:4b0h0!e+buttons\Up36.gif#up36:4b0h0!e+buttons\Down36.gif#down36:buttons\Down15.gif#%'buttonSmallDMenuFlatDownMidMac0-%'modifyScaleDown190<%'systemLabelFont04dp9k0wDF!f4hiDiDi<ؿ)))ji<؈)ر))ji)i+0i2i4i6i8i:ii i!"i#$i%&i'(j)*Ee=  y>inheritingFrom:+ 4c0i0!re)XP\windowBackground.gif#(windowBackground:4c0i0!re)XP\dialogBackground.gif#(dialogBackground:ĪColorValue/red:green:blue:selectionBackgroundColor:fieldFocusColor:04dp)>#j'family#bVerdana*'pixelSizem'leading`'baselinem'lineGridp'italic'boldnessaa'underline'color'alignment`synthesizeTextStyle: `#`systemFont:04dp)>#j'>#bVerdana*'#m'%`''m')p'+'-bc'/'1'3`4 `5systemEmphasizedFont:04dp)>#j'>#bVerdana*'#l'%`''l')o'+'-aa'/'1'3`4 `5systemListFont:04dp)>#j'>#bVerdana*'#k'%`''k')n'+'-aa'/'1'3`4 `5systemSmallFont:04dp)>#j'>#bVerdana*'#k'%`''k')n'+'-bc'/'1'3`4 `5systemSmallEmphasizedFont:'systemLabelFont:04dp)>#j'>#bVerdana*'#i'%`''i')l'+'-aa'/'1'3`4 `5systemMiniFont:04dp)>#j'>#bVerdana*'#m'%`''m')p'+'-aa'/'1'3`4 `5applicationFont:04dp)>#j'>#bVerdana*'#m'%`''m')p'+'-bc'/'1'3`4 `5applicationEmphasizedFont:04dp)>#j'>#bVerdana*'#l'%`''l')o'+'-aa'/'1'3`4 `5applicationListFont:04dp)>#j'>#bVerdana*'#k'%`''k')n'+'-aa'/'1'3`4 `5applicationSmallFont:04dp)>#j'>#bVerdana*'#k'%`''k')n'+'-bc'/'1'3`4 `5applicationSmallEmphasizedFont:04dp)>#j'>#bVerdana*'#j'%`''j')m'+'-aa'/'1'3`4 `5applicationLabelFont:04dp)>#j'>#bVerdana*'#i'%`''i')l'+'-aa'/'1'3`4 `5applicationMiniFont:04dp)>#k'>#cCourierCourier New*'#m'fixedTabs`'%`''m')p'+'-aa'/'1'3`4 `5applicationFixedFont:>#j'>#bVerdana*'#j'%`''j')m'+'-aa'/'1'3`4 `5'hearSelDown190#%'buttonSmallNormalDownMidMac0)%'vScrollUpDownMac0-%'hShrinkDownMac0%%'warnIcon0&%'buttonSmallFlatDisEndMac05%'prevMarkerUp1904%'cameraDown190;%'buttonNormalUpCapWin0 ?%'applicationEmphasizedFont>'vDeThumbMidMac05%'newMarkersDown190 %'cacheLive190!%'newMarkerUp1904%'vGrowUpWin0 ;%'spaceFillerMac0=%'renderGrainDown190#%'vScrollDownUpMac05%'groupedUp1904b0h0!e9f0b4hDiDiDiDiD iD iD iD0iD2iD4iD6iD8iD:iDiD iD!"iD#$j%Ee= i>4b0h0!e buttons\reanalyzeUp16.gif#reanalyzeUp16:4b0h0!e buttons\reanalyzeDown16.gif#reanalyzeDown16:4b0h0!e buttons\plusUp16.gif#plusUp16:4b0h0!e buttons\plusDown16.gif#plusDown16:4b0h0!e buttons\minusUp16.gif#minusUp16:4b0h0!e buttons\minusDown16.gif#minusDown16:4b0h0!e buttons\plus17.gif#plus17:4b0h0!e buttons\minus17.gif#minus17:4b0h0!e buttons\groupedDown19.gif#groupedDown19:>groupedUp19:4b0h0!e buttons\loop19.gif#loop19:4b0h0!e buttons\originalEnvelope19.gif#originalEnvelope19:4b0h0!e buttons\unvoicedOnly19.gif#unvoicedOnly19:4b0h0!e buttons\voicedOnly19.gif#voicedOnly19:4b0h0!e buttons\doubleSpeed19.gif#doubleSpeed19:4b0h0!e buttons\halveSpeed19.gif#halveSpeed19:4b0h0!e buttons\normalSpeed19.gif#normalSpeed19:4b0h0!e buttons\tauIcon39.gif#tauIcon39:;buttons\groupedUp19.gif#%'hFitDownWin0 '%'smoothingLabel905%'buttonNormalDownEndWin0 ;%'buttonSmallNormalDisCapMac0=%'fieldFocusColor5acqvz'tfThresholdDown09%'horizontalYellowMarker0)%'vThumbCapMac0%%'mixPoint90=%'disk2102%'modifyRadialDown190 $%'playDown200)%'hGrowDownMac09%'tfLoopDown01%'vThumbMidMac0)%'vThumbGrabWin0 #%'systemMiniFont<'vDeThumbEndMac09%'vDeThumbMidWin0 /%'down1005%'combinationMinusUp190.%'drawSelectionDown190 !%'noSelectionDown190:%'modifyOffsetDown190 $%'hFitUpMac05%'tfRetroDown0!%'shapeFrameIntervalDown190!%'hShrinkDisabledWin0 #%'tfScaleDurationToFitDown01%'modifyLinearDown190 ,%'hDeThumbEndMac0=%'hGrowUpWin0 3%'cursorLoopSelPlayDown190>%'modifyRubberbandDown190 <%'hThumbMidWin0%%'tfScaleFunctionDown09%'colorSetGrayScaleUp190'%'applicationListFont/'drawControlPointsUp190 %%'vThumbCapWin0;%'embossGradientUp190-%'disabled190.%'hScrollBarEndMac0)%'tfInvertDown0)%'up1902%'combinationSingleUp190"%'combinationPlusDown1906%'nextTimeUp190,%'modifySetDown190 ,%'hFitUpWin0 +%'shapeEllipseUp190&%'tfSnapToGridUp0%%'shapeTrackDown190>%'hThumbCapMac0,%'buttonNormalDisEndWin0 3%'selectionBackgroundColor7wz~'combinationFrontUp190&%'hScrollLeftDisabledMac05%'applicationLabelFont"'up1001%'microphoneEnabled0'%'stopIcon0*%'vGrowDownMac0!%'tlSubmixIcon0<%'modifyWavetableXDown190 4%'renderSOSUp190*%'stopUp2002%'stampGradientDown190)%'tlTrackMicrophonePlay0,%'prevMarkerDown1908%'vThumbEndWin0 '%'drawMultiUp190 -%'buttonSmallNormalDisEndWin07%'warpSelectionDown190>%'tlBlankDown1908%'vScrollUpDisabledWin0 '%'applicationSmallEmphasizedFont1'plusDown160.%'tauIcon390#%'modifyScaleUp1908%'tfSnapToGridDown0!%'hShrinkUpWin0 ?%'prevTimeDown190(%'speaker0.%'down1906%'hShrinkDisabledMac0-%'buttonSmallFlatDownEndMac05%'vShrinkDisabledMac05%'vShrinkDownWin0 #%'shapeEllipseDown1906%'hDeThumbCapMac08%'disabled200:%'doubleSpeed1907%'modifyRubberbandUp190 0%'vScrollDownDisabledMac0=%'enterUp200=%'modifySpectAmpDown190 $%'hScrollLeftDownWin0*%'deSelectionUp190 0%'normalSpeed190?%'buttonSmallNormalUpCapWin0#%'vGrowUpMac0%%'applicationFont-'shapeRectangleDown1902%'systemSmallFont9'tlTrackSpeaker04%'tfThresholdUp0=%'createModuleUp190;%'vScrollBarCapMac0=%'hearAllDown190?%'buttonNormalDisCapMac09%'modifySpectAmpUp190 %'tfSquareOffDown01%'penEnabled0/%'combinationFrontDown190"%'shapePolygonDown190:%'modifyAmpDown1904%'hFitDownMac01%'enterMicUp0%%'useInputDown200>%'buttonNormalUpEndMac05%'systemFont:'tlRecordUp00%'vScrollDownDownWin0 /%'renderGrainUp190.%'loop190'%'vShrinkUpMac01%'nextMarkerUp190<%'renderSamplesDown190/%'groupedDown190"%'pauseDown190(%'modifyFreqDown1900%'fileOrganizerHelpUp01%'hThumbMidMac00%'modifyConstantDown190 8%'buttonSmallDMenuFlatUpMidMac0=%'hGrowDisabledMac0!%'buttonSmallDMenuFlatDisMidMac0-%'stencilGradientDown190!%'hScrollLeftUpWin0&%'up210*%'up170&%'minusUp1602%'dialogBackground00%'drawSelectionUp190 =%'joinDotsDown190 9%'hDeThumbMidWin06%'recursionLabel901%'createModuleDown1903%'buttonSmallNormalDisEndMac0%%'combinationPlusUp190&%'hScrollRightDownMac0=%'hScrollBarMidMac0%%'tfLoopUp05%'buttonNormalUpMidWin0 #%'microphoneDisabled0+%'hearAllUp1907%'colorSetRainbowUp190/%'combinationTimesUp190*%'buttonSmallNormalDisCapWin0/%'scalingLabel909%'buttonSmallNormalUpCapMac01%'buttonSmallDMenuFlatDisEndMac01%'vDeThumbGrabWin0 3%'joinDotsUp190 5%'modifySetUp190 (%'buttonNormalUpCapMac0-%'makeSelectionUp190"%'renderFilterDown190+%'modifyOffsetUp190 %'vGrowDisabledWin0 ?%'infoSelectionDown190 9%'colorSetInvGrayScaleUp190+%'dropDownUp1706%'warpSelectionUp190.%'colorSetRainbowDown190;%'systemSmallEmphasizedFont*'buttonSmallNormalDisMidMac0!%'buttonNormalUpMidMac01%'anchorUp190$%'hScrollLeftUpMac0-%'keyboardDisabled0;%'vScrollDownDownMac09%'hShrinkUpMac0)%'buttonNormalDisCapWin0 +%'tfSprayCanDown0)%'vDeThumbCapWin0 +%'modifyFreqUp190,%'buttonSmallDMenuFlatDisCapMac0)%'vDeThumbEndWin0 7%'tfSprayCanUp0-%'penDisabled03%'reanalyzeUp160"%'systemListFont('buttonSmallNormalDisMidWin03%'drawSelfSimilarDown190 !%'nextMarkerDown190 %'disabled1509%'minusDown1606%'vThumbEndMac0-%'shapeRectangleUp190"%'dropDownDown190>%'cursorNormalPlayUp1906%'cursorLoopFwdBkwdPlayUp190*%'drawEraserUp190 %%'modifyAmpUp190(%'vShrinkUpWin0 '%'cursorNormalPlayDown190&%'vScrollUpUpMac0)%'combinationTimesDown190:%'updateDown2006%'disabled170"%'tfRetroUp0%%'tlBlankUp1904%'hShrinkDownWin0 ;%'vGrowDownWin0 7%'nextTimeDown1900%'buttonSmallFlatUpEndMac0%%'padlockUnlock0#%'unvoicedOnly190/%'jitterLabel90-%'drawControlPointsDown190 )%'vScrollBarMidWin0 ;%'padlockLock0?%'tfScaleDurationToFitUp05%'makeSelectionDown1902%'cursorLoopFwdBkwdPlayDown190:%'down360:%'buttonNormalDownEndMac0)%'tlOutputsIcon0 %'modifySpectFreqDown190 ,%'hScrollRightDisabledMac0!%'cameraUp1907%'tfSquareOffUp05%'vScrollDownUpWin0 +%'originalEnvelope190+%'colorSetGrayScaleDown1903%'combinationMinusDown190>%'up200>%'hiddenLogLinUp190 -%'vScrollDownDisabledWin0 3%'minus170>%'tlTrackMicrophone0(%'stencilGradientUp190=%'systemEmphasizedFont7'buttonSmallNormalUpEndWin0+%'vScrollUpDownWin0 #%'buttonNormalDisMidMac0=%'tlTrackSpeakerMute09%'buttonSmallNormalDownCapWin0 7%'buttonNormalDownCapWin0 3%'buttonSmallNormalUpEndMac09%'tfScaleFunctionUp0=%'disabled3602%'debossGradientDown1909%'cacheRecord190%%'buttonNormalDownMidWin0 7%'tlRecordDown0,%'shapePolygonUp190*%'drawSprayPaintUp190 5%'buttonNormalDisEndMac0!%'modifyWavetableYUp190 8%'cursorLoopPlayUp1902%'enterMicDown0!%'buttonSmallDMenuFlatUpCapMac09%'pauseUp190$%'vThumbMidWin0?%'modifyLinearUp190 (%'down200"%'buttonSmallNormalDownEndMac0-%'buttonSmallDMenuFlatDownCapMac0)%'cachePlay190=%'buttonSmallDMenuFlatDownEndMac01%'hFitDisabledWin0 /%'renderSamplesUp1907%'hThumbGrabWin0*%'vGrowDisabledMac0)%'modifyConstantUp190 4%'newMarkerDown1908%'tlTrackMicrophoneRecord00%'tfInvertUp0-%'voicedOnly1903%'down170*%'drawSelfSimilarUp190 =%'debossGradientUp1905%'hDeThumbGrabWin0:%'hDeThumbCapWin02%'cursorLoopSelPlayUp190.%'modifyWavetableXUp190 0%'tfScaleDurationUp0-%'enterDown2009%'stampGradientUp190%%'applicationSmallFont 'buttonSmallNormalDownMidWin0 ;%'tfOffsetUp0=%'hGrowUpMac0=%'hearSelUp190;%'drawEraserDown190 )%'drawMultiDown190 1%'renderFilterUp1903%'up3606%'hGrowDownWin0 /%'updateUp200:%'hScrollBarCapMac0!%'buttonSmallNormalDownCapMac0%%'plusUp160*%'hiddenLogLinDown190 1%'drawSprayPaintDown190 9%'modifyWavetableYDown190 <%'hScrollLeftDisabledWin0.%'hScrollLeftDownMac01%'prevTimeUp190$%'halveSpeed190;%'vScrollUpUpWin0 ?%'modifyRadialUp190 %'windowBackground0,%'buttonNormalDownMidMac0%%'buttonSmallNormalDownEndWin0 ?%'shapeFrameIntervalUp190 =%'vDeThumbCapMac01%'renderImpulseDown190'%'hThumbEndWin0.%'useInputUp200"%'vShrinkDownMac0-%'vShrinkDisabledWin0 +%'vScrollUpDisabledMac01%'up150=%'cursorLoopPlayDown190"%'combinationSingleDown1902%'dropDownUp190:%'tlSourceLocation0$%'colorSetInvGrayScaleDown1907%'editSelectionDown1906%'buttonNormalDownCapMac0!%'vScrollBarMidMac0!%'shapeTrackUp190.%'buttonSmallDMenuFlatUpEndMac0!%'hGrowDisabledWin0 7%'hThumbCapWin0 %'keyboardEnabled07%'hScrollRightDisabledWin07%'disabled210&%'playDown1900%'hThumbEndMac04%'buttonNormalDisMidWin0 /%'down210.%'plus170:%'buttonNormalUpEndWin0 '%'diceDown190/%'anchorDown190(%'buttonSmallNormalUpMidWin0'%'modifySpectFreqUp190 (%'playUp200-%'applicationFixedFont$'noSelectionUp190*%'hScrollBarMidWin0"%'reanalyzeDown160&%'newMarkersUp190<%'infoSelectionUp190 5%'hScrollRightUpWin02%'hScrollRightUpMac09%'buttonSmallNormalUpMidMac05%'tfScaleDurationDown0)%'disabled100-%'tfOffsetDown09%'fileOrganizerHelpDown05%'editSelectionUp190&%'renderSOSDown190?%'verticalYellowMarker0%%'hFitDisabledMac09%'applicationMiniFont3#l'rotaryFaderKnobKymaKnobjextent:knobImage:minimumAngle:maximumAngle:wedgeStart:wedgeEnd:wedgeAngle:wedgeInside:wedgeBorder:/b`OpaqueImageadDepth24Imageah0pttxxFixedPaletteafph`|,0p<8pp````````pp8<ttaaCoveragePaletteaaaadcacgcns c7``7```'lookBackground04c0i0!re9a0 D4!LhiDi:K;7HiD i " D).-h--;;7 2i " D.Ih-;;7 4iD6i8i;79i;:i;j Ve=  q>+) 6lookBackground:īSimpleTrack4width:color:faderBorder:4b0h0!e8faders\faderRightWaldo.gif#verticalFaderKnob:;faders\rotaryTrack20.gif#convertToSystemPalettered#bcomic sans ms*'#l'%b''j')n'+'-`a'/'1'3`4 `vcsLabelTextStyle:4cp8#j'>#bcomic sans ms*'#l'%b''j')n'+'-aa'/'1'3`4 `vcsTextStyle:backgrounds\stone\smoothDarkGray.gif#(%'faderBorderInput' | 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;`,0`@D@D@D@D@D@D@D|``aa48l``````#ddddab`aad,0`|yDIDIDI@A@A@A@Appaa?8l{~{~{~gygygy#ddddfbaad#d&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&=>>+/``/xma& 9 :1+/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 58aa;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;`,0` p# qp0`` 0      @   !!!3``aa!ad,0`L C0A@ @p@ pPPppaa?8l{~{~{~gygygy#ddddfbaad#j&)))+/aax m/aaEnter a name for this Sound.&WrapAround :1+/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.&Reset>>+/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.&FirstStepOffSet :1+/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.&NoOfStepsUpwards :1+/``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. &CountDown>>+/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.&NoOfStepsDownwards :1+/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.&CountUp>>+/````/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.&OffSetHalfStep :1+/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.&NoOfSamps :1+/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 58aa;TriggersInput`?MaxCountOfTriggers*2` 3 ` -Invert*a!0-10-1`aa,0` @ @  @ @  @ @  @ @ 8`(   @8p``aa3ad,0` _d $ @`  @` ppaa?8lz{z{z{ffffff#ddddfbaad#c&)))+/aax m/aaTriggerCounter&MaxCountOfTriggers :1+/````/aax g&TriggersInput>>+/aa`/av 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.8aa<<>TriggerCounter#a'358/f~*c< u```k`p`MaxCountOfTriggers%(#` >4`a "a #aaMaxCountOfTriggersa#ipppppppmlae`a &#a' )aaaaha "< ````u`u`#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< ````u`p`FreqLow%(#` >FreqLow`a "a #aaFreqLows{`a &#a' )s{b`h` " )+TriggerCounter#`/zi#`.3GateToTrigger8GateToTrigger???*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;`,0`@D@D@D@D@D@D@D|``aa3ad,0`|yDIDIDI@A@A@A@Appaa?8l{~{~{~gygygy#ddddfbaad#d&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&=>>+/``/xma& 9 :1+/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 58aa;<>Zero Crossings Detector#a'358/f~*a< ``````ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` " )%(#`Zero Crossings Detector#`/sd#``+`SuperSample gname:frequency:gate:sample:setLoop:loopStart:loopEnd:loopFade:reverse:start:end:fromMemoryWriter:attackTime:releaseTime:scale:Sampledefaultarepeatrec`a`aTimeInSamplesaaaTimeInSecondsaagca``` 0CountUpa`3Up/Down Counter8CounterRamp ???*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;`,0` p# qp0`` 0      @   !!!3``aa3ad,0`L C0A@ @p@ pPPppaa?8l{~{~{~gygygy#ddddfbaad#j&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&&>>+/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.&, :1+/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.&2 :1+/``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. &8>>+/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.&> :1+/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.&$>>+/````/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.&* :1+/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.&0 :1+/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 58aa;<>Up/Down Counter#a'35/eh/f~*` )%(#`Up/Down Counter#`/fh#`a 8aa 0CountDown`a 0oneahh`"`Oscilloscopenname:input:trigger:>PlayTriggers#b'*MemoryWriterename:input:captureDuration:global:cyclic:recordingName:silent:trigger:Repeat3GateToTrigger8GateToTrigger???*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;`,0`@D@D@D@D@D@D@D|``aa3ad,0`|yDIDIDI@A@A@A@Appaa?8l{~{~{~gygygy#ddddfbaad#d&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&=>>+/``/xma& 9 :1+/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 58aa;Input>Gate'self initialValueAt: 0 xPut: 1 yPut: 0. ,`TrackAndPreHoldkym1;`,0`??À 8 0P`@`HB@A@D@@@? ``aa3ad,0`sXppaa?8l{~{~{~gygygy#ddddfbaad#c&)))+/aax m/aaEnter a name for this Sound.&Gate>>+/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.&=>>+/```/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 58aa;<>Duration#a'358/f~*e< ````Fractionabbe`ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< `ca`#be`ba`a*+ >4`a "a #aa.a/ae`a &#a' )`gaata "< `ba`#be`cc`aPlayOscillator%(#` >PlayOscillator`a "a #aaPlayOscillatorc#i|||||||oxa`a &#a' )aac`a` "VCSWaveformComponentemicrosound:layout:label:look:tableAddress:finishedSweepBlock:triggerSweepBlock:binSizeBlock:presets:SingleSuperMicrosound dstart:stop:sound:preorderLabelBits:ordinal:auxiliaryMicrosound:address:slotSize:terminateList:slotAssignment:offProcessorConnections:groupLabel:superMicrosound:outputAddress:`  `3>RecTriggers#b'*3Up/Down Counter8CounterRamp ???*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;`,0` p# qp0`` 0      @   !!!3``aa3ad,0`L C0A@ @p@ pPPppaa6ad#j&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&&>>+/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.&, :1+/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.&2 :1+/``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. &8>>+/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.&> :1+/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.&$>>+/````/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.&* :1+/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.&0 :1+/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 58aa;<>Index Ramp#a'35/cl/f~*h< ``````ca`aFirstStepOffSet%(#` >,`a "a #aaFirstStepOffSet``a &#a' )``b`ta "< }`g`z`q`CountDowm= >CountDowm`a "a #aa CountDowm``aToggle#a' )``g`a` "< g`g`}`q`CountUp= >$`a "a #aaCountUpa`a)#a' )`af`a` "< }`q`z`e`NoOfDownwardSteps= >NoOfDownwardSteps`a "a #aaNoOfDownwardStepsue`a &#a' )ueb`t` "< t`q`q`e`NoOfSamps= >0`a "a #aa NoOfSamps``a &#a' )lad``` "< ``q`}`e`NoOfUpwardSteps= >NoOfUpwardSteps`a "a #aaNoOfUpwardStepsue`a &#a' )uea`t` "< z`g` q`q`Reset= >MIDIController48`a "agateaaReset``a)#a' )``q`a` "< `g`d`q`WrapAround= > `a "a #aa WrapArounda`a)#a' )`ac`a` " )=Index Ramp#`/al#``3>7#b'*;> *`,/4>!#a'35/eh/f~*` )(*#`/fh#`a 9 '*b *>"#a'35/}y/f~*c< u```k`p`*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< ````u`u`#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< ````u`p`9: >=`a "a #aa>s{`a &#a' )s{b`h` " )+!#`/zi#`.&>1#a'357/f~*a< ``````ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` " )<>#`/sd#``,>0#a'357/f~*a< ``````ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` " )$ *#`/xr#` $ .; 0 3``;0.2*!PlayOscillator``a``#&defaulta(`a`a)-a``aa 0/`a 01ahh1>:#a'357/f~*e< ````"`ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< `ca`+`ba`a*+ >4`a "a #aa.a/ae`a &#a' )`gaata "< `ba`1`cc`a23 >6`a "a #aa7c8a`a &#a' )aac`a` "<? ```````a`#beMaster%(#``04b0y8IIJed9p0oDqJ+ODPIIcWJ !cWK !cWcWcEQ$f&f(Efl_`RecordForDisplaynname:input:wavetable:trigger:usegmentSizeceilingaddressForWavetablesInSound:microsound:emitOffsetInitialValueAt:high:low:`informationClassmicrosound:tableAddress:04bt/setYAt:to:  `5triggerSweepBlock:,finishedSweepBlock:04b x/setXAt:to: `5binSizeBlock:needsDisplayingdisplayInformation:yAt:bitAnd:5:?#`< `cc`#be`aa`aPlaySample3 >PlaySample`a "a #aa PlaySampleb#ivvvvvvveg``a &#a' )aab`a` " )3Duration#`/oy#`3Set/Reset FlipFlop8SRFlipFlop ???*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;`,0`p_pp`;``p``;p?;;?p`;``}`p`;_pp``aa3ad,0` <$$? ppaa#ad#e&)))+/aax m/aaExclusiveOrGate&&>>+/xm``/xmw sRight input is not used&Set>>+/````/baw sRight input is not used&  :1+/x m``/x sy mWhen this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.& 9 :1+/wm``/bcy 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 58aa;<>RecGate#a'357/f~*g< ````#be`ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< `ca`#be`ba`a*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< `ba`#be`cc`a2%(#` >6`a "a #aa7c8a`a &#a' )aac`a` "<? ```````a`#beMaster%(#``,:?#`< `cc`#be`aa`a+ < >-`a "a #aa.b/``a &#a' )aab`a` "< ````}`e`Reset%(#` >.`a "a/aa0q#mbbbbbbbbbbbbra`a &#b' )a'Oscilator`qaa` "< }```z`e`Set 1 >5`a "a #aaSeta#mrrrrrrrrrrrr`aa`a &#b' )aa' 8aaaaa` " ) Input>Gate'self initialValueAt: 0 xPut: 1 yPut: 0. ,`TrackAndPreHoldkym1;`,0`??À 8 0P`@`HB@A@D@@@? ``aa >ad,0`sXppaa #ad#c&)))+/aax m/aaEnter a name for this Sound.&->>+/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.&=>>+/```/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 58aa;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;`,0`@D@D@D@D@D@D@D|``aa >ad,0`|yDIDIDI@A@A@A@Appaa?8l{~{~{~gygygy#ddddfbaad#d&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&=>>+/``/xma& 9 :1+/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 58aa;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;`,0```aa >ad,0`qQQQAAAAppaa/ad#d&)))4Enter a name for this Sound.& 9 :1#When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).&  :19When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.&=>>>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 58aa;Triggersa3Up/Down Counter8CounterRamp ???*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;`,0` p# qp0`` 0      @   !!!3``aa >ad,0`L C0A@ @p@ pPPppaa?8l{~{~{~gygygy#ddddfbaad#j&)))+/aax m/aaEnter a name for this Sound.&  :1+/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.&&>>+/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.&, :1+/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.&2 :1+/``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. &8>>+/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.&> :1+/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.&$>>+/````/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.&* :1+/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.&0 :1+/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 58aa;Input>Gate'self initialValueAt: 0 xPut: 1 yPut: 0. ,`TrackAndPreHoldkym1;`,0`??À 8 0P`@`HB@A@D@@@? ``aa >ad,0`sXppaa/ad#c&)))+/aax m/aaEnter a name for this Sound.&->>+/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.&=>>+/```/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 58aa;%' | 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;`,0` } pl9``aa >ad,0` UVb pppaa/ad#d&)))4Enter a name for this Sound.&  :19When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.&=>>>& 9 :1#When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).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 58aa;>+/aa`/av sThis class has no description.8aaTriggersDuration#a'35/} e/f~*` )%(#`TriggersDuration#`/` e#`h3RisingFallingTriggers3OrGate8OrGate ??? =' | 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. ,`OrGatekym1;`,0`|<``aa >ad,0` `ppaa?8l{~{~{~gygygy#ddddfbaad#d&)))+/aax m/aaEnter a name for this Sound.& 2 3 3+/````/aax mMaximun 30 inputs& 9 :1+/xm``/x  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).&  :1+/bc``/w 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 58aa;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;`,0`@D@D@D@D@D@D@D|``aa48l``````#ddddab`aad,0`|yDIDIDI@A@A@A@Appaa>ad#d&)))#Enter a name for this Sound.&  :1+/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.&=>>+/``/xma& 9 :1+/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 58aa;Gate`;"`3AsLogic8AsLogic???*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;`,0` } pl9``aa)ad,0` UVb pppaa>ad#d&)))#Enter a name for this Sound.&  :12When this value is greater than zero, the output goes from -1 to +1. If not the output goes from 0 to 1.&=>>7& 9 :1<When this value is greater than zero the output is inverted as per logic values not analogue. i.e. 1 becomes 0 and 0 becomes 1 (assuming PlusAndMinusOne value is low).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 58aa;>+/``/aaaThis prototype outputs a triggers on each rising or falling edges of its input.8aa<<>RisingFallingTriggers#a'357/f~*b< ``````ca`a*+ >4`a "a #aa.a/ae`a &#a' )`gaata "< ````#be`ca`a9: >=`a "a #aa>c#i|||||||wzh`a &#a' )sgc`h` " )%(#`RisingFallingTriggers#`/jy#`6`*arepeatreca'357/f~*e< ````#be`ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< `ca`#be`ba`a*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< `ba`#be`cc`a2%(#` >6`a "a #aa7c8a`a &#a' )aac`a` "<? ```````a`#beMaster%(#``,:?#`< `cc`#be`aa`a+" >-`a "a #aa.b/``a &#a' )aab`a` " )"PlayTriggers#`/iy#`",`a 0CountDown`` 02a``'357/f~*e< `` z`g`r`#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< g` z`n`r`*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< n` z` u`r`2%(#` >6`a "a #aa7c8a`a &#a' )aac`a` "<? ````x` z`RecTriggers%(#``,:?#`< `cc`#be`aa`a++ >-`a "a #aa.b/``a &#a' )aab`a` " )+RecTriggers#`/cj#`82*cNameHoldernname:subSound:/:#18#33?;>8**a#&,/8&*c#:/#<.#>8 '*b -3*b8 *a# 987*c#(#>8-*a#,SimpleOscillatorWithAmpEnvm.< > !`a "a #aa $b %ti`a .;*`;ScaledEventec >6`a "a #aa7c8a`az m``a`'.,b'1PlusAndMinusOne`'1Invert`GateToTriggerkym1;`#*;#,8'.,f'1FirstStepOffSet`'1OffSetHalfStep`'1WrapArounda'1NoOfStepsDownwardsa'1NoOfStepsUpwardsa'=& >4`a "a #aa.a/ae`abCounterRamp3;`' ;,b'-`'0`GateToTrigger3;`8 *a# 9 -"*a:$%' ;,b'-`'0`GateToTrigger3;`aa,' ,b'-`'0`OrGate3;`' ,f'9a'<h'?a'"a'%a'=hCounterRamp3;`81*b#7 .?8 3*b - 6*a8=*b# ?86*c#0;#29#47'6,f'9`'#?8 (*b>5' ,,b'-`'0`AndGate3;`'!,b'-`'0aSRFlipFlop3;`'#,b'-`'0`GateToTrigger3;`8"*a#!8!*a#!.'.,b'-`'0aAsLogic3;`'#,b'-`'0`GateToTrigger3;`'6,b'-`'0`OrGate3;`'3,b'-`'0`Toggle3;`'',b'-`'0aGateToTrigger3;`"TrackAndPreHold3;`? 8&*b#(3#*8)*a#%8#*a#%%'0,b'-`'0aAsLogic3;`'',b'-`'0aGateToTrigger3;`+TrackAndPreHold3;` 7MixerWithWrap3;`#9/:TrackAndPreHold3;`'(,b'-`'0`GateToTrigger3;`-.a>'5,f'9`'<`'?`'"`'%a'=`CounterRamp3;`>i~vgbu ```````a`()*`,:?#`< `cc`*`aa`a+3 >-`a "a #aa.b/``a &#a' )aab`a` " )32#`/oy#`7> '#a'358/f~*g< ```` /`ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< `ca` 5`ba`a*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< `ba` ;`cc`a2 < >6`a "a #aa7c8a`a &#a' )aac`a` "<? ```````a` # $ %`,:?#`< `cc` *`aa`a+ < >-`a "a #aa.b/``a &#a' )aab`a` "< ````}`e` 0 1 >.`a "a/aa0q 4a`a &#b' )a' 8`qaa` "< }```z`e` ; 1 >5`a "a #aa =a >aa`a &#b' )aa' 8aaaaa` " ) < "#`/`d#` ' (*b% )``%`a +> #a'35/} e/f~*` )')#`/` e#`h.>5#a'358/f~*b< ``````ca`a*+ >4`a "a #aa.a/ae`a &#a' )`gaata "< ````"`ca`a9: >=`a "a #aa>c$h`a &#a' )sgc`h` " )')#`/jy#`4`-.a'358/f~*e< ````5`ca`a#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< `ca`;`ba`a*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< `ba`!`cc`a2" >6`a "a #aa7c8a`a &#a' )aac`a` "<? ```````a`)*+`,:?#`< `cc`0`aa`a+" >-`a "a #aa.b/``a &#a' )aab`a` " )"4#`/iy#`:%`0b3>%#b'*)>3#a'35/cl/f~*h< ``````ca`a<= >,`a "a #aa ``a &#a' )``b`ta "< }`g`z`q`%= >'`a "a #aa(``a)#a' )``g`a` "< g`g`}`q`.= >$`a "a #aa0a`a)#a' )`af`a` "< }`q`z`e`5= >7`a "a #aa8ue`a &#a' )ueb`t` "< t`q`q`e`== >0`a "a #aa?``a &#a' )lad``` "< ``q`}`e`$= >&`a "a #aa'ue`a &#a' )uea`t` "< z`g` q`q`,= >.`a "a/aa0``a)#a' )``q`a` "< `g`d`q`5= > `a "a #aa7a`a)#a' )`ac`a` " )=:#`/al#``2`a 09``1``'358/f~*e< `` z`g`r`#$ > !`a "a #aa $b %ti`a &#a' )m eb` p` "< g` z`n`r`*+ >4`a "a #aa.a/ae`a &#a' )aaaaha "< n` z` u`r`2+ >6`a "a #aa7c8a`a &#a' )aac`a` "<? ````x` z`23`,:?#`< `cc`8`aa`a++ >-`a "a #aa.b/``a &#a' )aab`a` " )+<#`/cj#` $%`0k.` 7`#`!{+b $p?`+`.` )n:`%b4g'358/f~*j<? ``q`x`w`PlayTriggers%(#``,:?#`< ``w` |`r`#$ > !`a "a #aa $b %ti`a &#a' )tib` p` "< |`w`x`r`*+ >4`a "a #aa.a/ae`a &#a' )aeaaha "< |```x`c`2%(#` >6`a "a #aa7c8a`a)#a' )`ac`a` "< `  `(i|fgbc ```` |`f`7%(#``,:?#`< k`p`w`b`+ , >-`a "a #aa.b/``a)#a' )``b`a` "< l` d` r`g`Readout , >Readout`a "asmallFaderaaReadouta#ippppppppcaa`aSmall Fader#a' )v sa`a` "< n``` t`i`Write , >*`a "a #aaWritea`a)#a' )aaa`a` "< ````g`i`Index , >MIDIController21`a "a #abIndexaa`a &#a' )aavaa` "< g```n`i`Value , >Value`a "a #aaValueaa`a &#a' )aabaa` " ) ,OscilloscopeDisplay Weirdness#h 944 #%=28/va#`'soundEditorIconSize{wtable+ 4`/r~/``+/vi/dkd