' ************************************************* ' * pitchmapping test procedures * ' * february 2007 * ' ************************************************* ' supports: ' ' ' ' ' Include file for the test programs for these robots. %Pitchmap_Test = 1 ' %False ' tasknr. 0 - also defined in the instrument include files. ' using 0 gives a conflict! DECLARE SUB Pitchmap_Test () DECLARE SUB Pitchmap_UD_Low () DECLARE SUB Pitchmap_UD_High () DECLARE SUB PitchMap_UD_Step SUB Pitchmap_Test () ' test procedure for debugging the software... STATIC TaskParamLabels() AS ASCIIZ*8 STATIC slnr AS INTEGER STATIC udnr AS INTEGER STATIC init AS DWORD STATIC note AS SINGLE LOCAL velo AS BYTE LOCAL ret AS LONG IF ISFALSE Task(%Pitchmap_Test).tog THEN init = 1 DIM TaskParamLabels(5) TaskParamLabels(0)="velo" ' aanslagtijd in ms - now we have 27.2 microsecond resolution TaskParamLabels(1)="speed" ' herhalingsfrekwentie TaskParamLabels(2)="cents" TaskParamLabels(3)="LoLim" 'was HiLim.. TaskParamLabels(4)="HiLim" 'was lo.. TaskPAramLAbels(5) = "Step" IF Task(%Pitchmap_Test).hParam = %Null THEN MakeTaskParameterDialog %Pitchmap_Test,3, Slider(),3,UdCtrl(), TaskParamLabels() slnr = TaskEX(%Pitchmap_Test).SliderNumbers(0) udnr = TaskEX(%Pitchmap_Test).UpDownNumbers(0) UDctrl(udnr).cptr = CODEPTR(Pitchmap_UD_Low) UDctrl(udnr+1).cptr = CODEPTR(Pitchmap_UD_High) UDctrl(udnr+2).cptr = CODEPTR(PitchMap_UD_Step) UDctrl(udnr).value = 43 note = UDctrl(udnr).value UDctrl(udnr+1).value = 127 UDCtrl(udnr + 2).value = 64 Slider(slnr).value = 10 SendMessage Slider(Slnr).h, %TBM_SETPOS,%True, Slider(Slnr).value Slider(slnr+1).value = 10 SendMessage Slider(Slnr+1).h, %TBM_SETPOS,%True, Slider(Slnr+1).value Slider(slnr +2).value = 25 SendMessage Slider(slnr+2).h, %TBM_SETPOS, %True, Slider(slnr+2).value END IF Task(%Pitchmap_Test).tog = %True EXIT SUB END IF ' note = UDCtrl(udnr).value 'this only played the lolim note! note = note + UDCtrl(udnr + 2).value/127 IF note >= Udctrl(udnr + 1).value THEN note = UdCtrl(udnr).value velo = slider(slnr).value CONTROL SET TEXT gh.cockpit, %GMT_MSG1, "Playkloks" + STR$(note) + STR$(velo) 'show what we are doing.. IF velo THEN ret = PlayKloks (note, velo, slider(slnr+2).value, 0, 0) END IF ' IF ret THEN SetDlgItemText gh.Cockpit, %GMT_MSG2, "Noot = " & STR$(note) + "->" + HEX$(ret) ' END IF Task(%Pitchmap_Test).freq = Slider(slnr+1).value / 5 IF Task(%Pitchmap_Test).freq < 0.2 THEN Task(%Pitchmap_Test).freq = 0.2 IF Task(%Pitchmap_Test).freq > 16 THEN Task(%Pitchmap_Test).freq = 16 END SUB SUB Pitchmap_UD_Low () ' for callback . LOCAL n AS BYTE n = UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(0)).value IF n < 0 THEN n = 0 END IF IF n > UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(1)).value THEN n = UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(1)).value END IF UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(0)).value = n SetDlgItemText Task(%Pitchmap_Test).hparam, %GMT_TEXT0_ID + 16, "L=" & STR$(n) END SUB SUB Pitchmap_UD_High () ' for callback . LOCAL n AS BYTE n = UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(1)).value IF n < UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(0)).value THEN n = UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(0)).value END IF IF n > 127 THEN n = 127 END IF UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(1)).value = n SetDlgItemText Task(%Pitchmap_Test).hparam, %GMT_TEXT0_ID + 17, "H=" & STR$(n) END SUB SUB PitchMap_UD_Step CONTROL SET TEXT Task(%Pitchmap_Test).hparam, %GMT_TEXT0_ID + 18, "S=" + FORMAT$(UDCtrl(TaskEX(%Pitchmap_Test).UpdownNumbers(2)).value/127, "0.00") END SUB