-- Define the knobs, buttons, etc. of the device
-- This is also used to check if this device is a match (model, manufacturer and/or device inquiry status)

function controller_info()
	return {
		model = 'DeviceJockey',
		manufacturer = 'Claussen',
		OSC_pattern = "iOS.*DeviceJockey",
		version = 43,
		copyright = "Copyright © 2023 Olaf Claussen. All rights reserved",
		
		items = {
		-- Buttons
				{controlID=1, name='Rewind', label='◀◀', objectType='Button', fbType=FB_OFF, valueMode=kAssignRelative, OSCValueChange = "/rewind"},
				{controlID=2, name='Forward', label='▶▶', objectType='Button', fbType=FB_OFF, valueMode=kAssignRelative, OSCValueChange = "/forward"},
				{controlID=3, name='Stop', label='STOP', objectType='Button', OSCValueChange = "/stop"},
				{controlID=4, name='Play', label='PLAY', objectType='Button', OSCValueChange = "/play"},
				{controlID=5, name='Pause', label='PAUSE', objectType='Button', OSCValueChange = "/pause"},
				{controlID=6, name='Start', label='START', objectType='Button', OSCValueChange = "/start"},
				{controlID=7, name='End', label='END', objectType='Button', OSCValueChange = "/end"},
				{controlID=8, name='Record', label='REC', objectType='Button', OSCValueChange = "/record"},
				{controlID=9, name='Cycle', label='CYCLE', objectType='Button', OSCValueChange = "/cycle"},
				{controlID=10, name='Punch', label='PUNCH', objectType='Button', OSCValueChange = "/punch"},
				{controlID=11, name='Track ◀', label='TRACK ◀', objectType='Button', OSCValueChange = "/track/previous"},
				{controlID=12, name='Track ▶', label='TRACK ▶', objectType='Button', OSCValueChange = "/track/next"},
				{controlID=13, name='Undo', label='UNDO', objectType='Button', OSCValueChange = "/undo"},
				{controlID=14, name='Redo', label='REDO', objectType='Button', OSCValueChange = "/redo"},
				{controlID=15, name='Add Marker', label='ADD MARKER', objectType='Button', OSCValueChange = "/marker/add"},
				{controlID=16, name='Marker ▶', label='MARKER ▶', objectType='Button', OSCValueChange = "/marker/next"},
				{controlID=17, name='Marker ◀', label='MARKER ◀', objectType='Button', OSCValueChange = "/marker/previous"},


				{controlID=18, name='Click', label='CLICK', valueMode=kAssignRotate, keyCmd=474, OSCValueChange = "/click"},
				{controlID=19, name='Count', label='COUNT', valueMode=kAssignRotate, keyCmd=1291, OSCValueChange = "/count"},
				{controlID=20, name='Solo', label='SOLO', keyCmd=17, valueMode=kAssignRotate, OSCValueChange = "/solo"},
				{controlID=21, name='Replace', label='REPLACE', keyCmd=20, valueMode=kAssignRotate, OSCValueChange = "/replace"},

		-- Bank switch by bank
				{controlID=22, name='Bank ◀', CSGroupObj=ACS_CURMODEFADERBANK, bankType=ABT_BYBANK, multiply=-1, valueMode=kAssignRelative, OSCValueChange='/bank/previous'},
				{controlID=23, name='Bank ▶', CSGroupObj=ACS_CURMODEFADERBANK, bankType=ABT_BYBANK, multiply=1, valueMode=kAssignRelative, OSCValueChange='/bank/next'},
		-- Bank switch by track		
				{controlID=24, name='Bank Pos ◀', CSGroupObj=ACS_CURMODEFADERBANK, bankType=ABT_BYONE, multiply=-1, valueMode=kAssignRelative, OSCValueChange='/bank/pos/previous'},
				{controlID=25, name='Bank Pos ▶', CSGroupObj=ACS_CURMODEFADERBANK, bankType=ABT_BYONE, multiply=1, valueMode=kAssignRelative, OSCValueChange='/bank/pos/next'},

		-- Playhead
				{controlID=200, name='Playhead Frames', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_FRAMES, valueMode=kAssignDirect, paramName='Playhead', shortParamName='', OSCValueChange='/playhead/frames'},
				{controlID=201, name='Playhead Beat', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_BEAT, valueMode=kAssignDirect, paramName='Playhead', shortParamName='', OSCValueChange='/playhead/beat'},
				{controlID=202, name='Playhead Bar', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_BAR, valueMode=kAssignDirect, paramName='Playhead', shortParamName='', OSCValueChange='/playhead/bar'},
				{controlID=203, name='Playhead Division', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_FORMAT, valueMode=kAssignDirect, paramName='Playhead', shortParamName='', OSCValueChange='/playhead/division'},
				{controlID=204, name='Playhead Cycle', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_CYCLE, valueMode=kAssignDirect, paramName='Playhead', shortParamName='', OSCValueChange='/playhead/cycle'},

				{controlID=210, name='Playhead Frames ▶', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_FRAMES, paramName='Playhead', shortParamName='', multiply=1, valueMode=kAssignRelative, OSCValueChange='/playhead/frame/next'},
				{controlID=211, name='Playhead Frames ◀', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_FRAMES, paramName='Playhead', shortParamName='', multiply=-1, valueMode=kAssignRelative, OSCValueChange='/playhead/frame/previous'},
				{controlID=212, name='Playhead Bar ▶', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_BAR, paramName='Playhead', shortParamName='', multiply=1, valueMode=kAssignRelative, OSCValueChange='/playhead/bar/next'},
				{controlID=213, name='Playhead Bar ◀', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_BAR, paramName='Playhead', shortParamName='', multiply=-1, valueMode=kAssignRelative, OSCValueChange='/playhead/bar/previous'},
				{controlID=214, name='Playhead Beat ▶', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_BEAT, paramName='Playhead', shortParamName='', multiply=1, valueMode=kAssignRelative, OSCValueChange='/playhead/beat/next'},
				{controlID=215, name='Playhead Beat ◀', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_BEAT, paramName='Playhead', shortParamName='', multiply=-1, valueMode=kAssignRelative, OSCValueChange='/playhead/beat/previous'},
				{controlID=216, name='Playhead Division ▶', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_FORMAT, paramName='Playhead', shortParamName='', multiply=1, valueMode=kAssignRelative, OSCValueChange='/playhead/division/next'},
				{controlID=217, name='Playhead Division ◀', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_FORMAT, paramName='Playhead', shortParamName='', multiply=-1, valueMode=kAssignRelative, OSCValueChange='/playhead/division/previous'},
				{controlID=218, name='Playhead Cycle ▶', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_CYCLE, paramName='Playhead', shortParamName='', multiply=1, valueMode=kAssignRelative, OSCValueChange='/playhead/cycle/next'},
				{controlID=219, name='Playhead Cycle ◀', fbType=FB_OFF, globalObj=AGL_CLOCK, clockPart=ACP_CYCLE, paramName='Playhead', shortParamName='', multiply=-1, valueMode=kAssignRelative, OSCValueChange='/playhead/cycle/previous'},
				{controlID=220, name='Shuttle', fbType=FB_OFF, globalObj=AGL_SHUTTLE, valueMode=kAssignScaled, paramName='Shuttle Speed', shortParamName='', OSCValueChange='/shuttle'},

		-- Key Commands
				{controlID=300, name='Show Track Automation', keyCmd=146, paramName='Show Track Automation', shortParamName='', OSCValueChange='/automation/track'}, -- Show Track Automation
				{controlID=301, name='Show Region Automation', keyCmd=147, paramName='Show Region Automation', shortParamName='', OSCValueChange='/automation/region'}, -- Show Region Automation
				{controlID=302, name='Show/Hide Automation', keyCmd=116, paramName='Show/Hide Automation', shortParamName='', OSCValueChange='/automation'}, -- Show/Hide Automation
				{controlID=303, name='Delete unused Tracks', keyCmd=89, paramName='Delete unused Tracks', shortParamName='', OSCValueChange='/track/delete/unused'}, -- Delete unused Tracks
				{controlID=304, name='Delete Track', keyCmd=88, paramName='Delete Track', shortParamName='', OSCValueChange='/track/delete'}, -- Delete Track
				-- New
				{controlID=305, name='New Track with Same Channel Strip/Instrument', keyCmd=87, paramName='New Track with Same Channel Strip/Instrument', shortParamName='', OSCValueChange='/track/new/same'}, -- New Track with Same Channel Strip/Instrument
				{controlID=306, name='New Track with Next Channel / MIDI Channel', keyCmd=581, paramName='New Track with Next Channel / MIDI Channel', shortParamName='', OSCValueChange='/track/new/next'}, -- New Track with Next Channel / MIDI Channel
				{controlID=307, name='New Track with Duplicate Settings and Content', keyCmd=2351, paramName='New Track with Duplicate Settings and Content', shortParamName='', OSCValueChange='/track/new/duplicate/settings/content'}, -- New Track with Duplicate Settings and Content
				{controlID=308, name='New Track with Duplicate Settings', keyCmd=1728, paramName='New Track with Duplicate Settings', shortParamName='', OSCValueChange='/track/new/duplicate/settings'}, -- New Track with Duplicate Settings
				{controlID=309, name='New External MIDI Track', keyCmd=1798, paramName='New External MIDI Track', shortParamName='', OSCValueChange='/track/new/midi'}, -- New External MIDI Track
				{controlID=310, name='New Drummer Track', keyCmd=1797, paramName='New Drummer Track', shortParamName='', OSCValueChange='/track/new/drummer'}, -- New Drummer Track
				{controlID=311, name='New Software Intrument Track', keyCmd=1796, paramName='New Software Instrument Track', shortParamName='', OSCValueChange='/track/new/instrument'}, -- New Software Instrument Track
				{controlID=312, name='New Audio Track', keyCmd=1795, paramName='New Audio Track', shortParamName='', OSCValueChange='/track/new/audio'}, -- New Audio Track
				-- Stack
				--{controlID=314, name='Create Track Stack', keyCmd=1791, paramName='Create Track Stack', shortParamName='', OSCValueChange='/track/stack/new'}, -- Create Track Stack…
				{controlID=315, name='Create Folder Stack', keyCmd=1792, paramName='Create Folder Stack', shortParamName='', OSCValueChange='/folder/stack/new'}, -- Create Folder Stack
				{controlID=316, name='Create Summing Stack', keyCmd=1793, paramName='Create Summing Stack', shortParamName='', OSCValueChange='/summing/stack/new'}, -- Create Summing Stack
				{controlID=317, name='Flatten Stack', keyCmd=1794, paramName='Flatten Stack', shortParamName='', OSCValueChange='/stack/flatten'}, -- Flatten Stack
				{controlID=318, name='Open/Close Track Stack', keyCmd=2279, paramName='Open/Close Track Stack', shortParamName='', OSCValueChange='/track/stack/toggle'}, -- Open/Close Track Stack
				{controlID=319, name='Open Track Stack', keyCmd=2274, paramName='Open Track Stack', shortParamName='', OSCValueChange='/track/stack/open'}, -- Open Track Stack
				{controlID=320, name='Close Track Stack', keyCmd=2275, paramName='Close Track Stack', shortParamName='', OSCValueChange='/track/stack/close'}, -- Close Track Stack
				{controlID=321, name='Open/Close All Track Stacks', keyCmd=2361, paramName='Open/Close All Track Stacks', shortParamName='', OSCValueChange='/track/stack/all/toggle'}, -- Open/Close All Track Stacks
	
				-- Edit
				{controlID=330, name='Paste', keyCmd=764, paramName='Paste', shortParamName='', OSCValueChange='/paste'}, -- Paste
				{controlID=331, name='Copy', keyCmd=763, paramName='Copy', shortParamName='', OSCValueChange='/copy'}, -- Copy
				{controlID=332, name='Cut', keyCmd=762, paramName='Cut', shortParamName='', OSCValueChange='/cut'}, -- Cut
				{controlID=333, name='Delete', keyCmd=765, paramName='Delete', shortParamName='', OSCValueChange='/delete'}, -- Delete
				{controlID=334, name='Delete and Move', keyCmd=1292, paramName='Delete and Move', shortParamName='', OSCValueChange='/delete/move'}, -- Delete and Move
				{controlID=335, name='Select All', keyCmd=766, paramName='Select All', shortParamName='', OSCValueChange='/select'}, -- Select All
				{controlID=336, name='Deselect All', keyCmd=347, paramName='Deselect All', shortParamName='', OSCValueChange='/deselect'}, -- Deselect All
				{controlID=337, name='Invert Selection', keyCmd=340, paramName='Invert Selection', shortParamName='', OSCValueChange='/selection/invert'}, -- Invert Selection
				-- Show/Hide Views
				{controlID=338, name='Show/Hide Output Track', keyCmd=1775, paramName='Show/Hide Output Track', shortParamName='', OSCValueChange='/outputtrack'}, -- Show/Hide Output Track
				{controlID=339, name='Show/Hide Browsers', keyCmd=1253, paramName='Show/Hide Browsers', shortParamName='', OSCValueChange='/browsers'}, -- Show/Hide Browsers
				{controlID=340, name='Show/Hide List Editors', keyCmd=1254, paramName='Show/Hide List Editors', shortParamName='', OSCValueChange='/listeditors'}, -- Show/Hide List Editors
				{controlID=341, name='Show/Hide Note Pad', keyCmd=1282, paramName='Show/Hide Note Pad', shortParamName='', OSCValueChange='/notepad'}, -- Show/Hide Note Pad
				{controlID=342, name='Show/Hide Editor', keyCmd=1274, paramName='Show/Hide Editor', shortParamName='', OSCValueChange='/editor'}, -- Show/Hide Editor
				{controlID=343, name='Show/Hide Toolbar', keyCmd=1758, paramName='Show/Hide Toolbar', shortParamName='', OSCValueChange='/toolbar'}, -- Show/Hide Toolbar
				{controlID=344, name='Show/Hide Mixer', keyCmd=735, paramName='Show/Hide Mixer', shortParamName='', OSCValueChange='/mixer'}, -- Show/Hide Mixer
				{controlID=345, name='Show/Hide Tuner', keyCmd=1299, paramName='Show/Hide Tuner', shortParamName='', OSCValueChange='/tuner'}, -- Show/Hide Tuner
				{controlID=346, name='Show/Hide Smart Controls', keyCmd=1296, paramName='Show/Hide Smart Controls', shortParamName='', OSCValueChange='/smart'}, -- Show/Hide Smart Controls

				-- Zoom
				{controlID=350, name='Toggle Vertical Auto Zoom', keyCmd=2268, paramName='Toggle Vertical Auto Zoom', shortParamName='', OSCValueChange='/zoom/vertical/auto'}, -- Toggle Vertical Auto Zoom
				{controlID=351, name='Zoom Vertical In', keyCmd=44, paramName='Zoom Vertical In', shortParamName='', OSCValueChange='/zoom/vertical/in'}, -- Zoom Vertical In
				{controlID=352, name='Zoom Vertical Out', keyCmd=43, paramName='Zoom Vertical Out', shortParamName='', OSCValueChange='/zoom/vertical/out'}, -- Zoom Vertical Out
				{controlID=353, name='Toggle Horizontal Auto Zoom', keyCmd=2265, paramName='Toggle Horizontal Auto Zoom', shortParamName='', OSCValueChange='/zoom/horizontal/auto'}, -- Toggle Horizontal Auto Zoom
				{controlID=354, name='Zoom Horizontal In', keyCmd=42, paramName='Zoom Horizontal In', shortParamName='', OSCValueChange='/zoom/horizontal/in'}, -- Zoom Horizontal In
				{controlID=355, name='Zoom Horizontal Out', keyCmd=41, paramName='Zoom Horizontal Out', shortParamName='', OSCValueChange='/zoom/horizontal/out'}, -- Zoom Horizontal Out
				-- Tools
				{controlID=360, name='Set Next Tool or Edit Mode', keyCmd=70, paramName='Set Next Tool or Edit Mode', shortParamName='', OSCValueChange='/tool/next'}, -- Set Next Tool or Edit Mode
				{controlID=361, name='Set Previous Tool or Edit Mode', keyCmd=71, paramName='Set Previous Tool or Edit Mode', shortParamName='', OSCValueChange='/tool/previous'}, -- Set Previous Tool or Edit Mode
				{controlID=362, name='Set Pointer Tool', keyCmd=850, paramName='Set Pointer Tool', shortParamName='', OSCValueChange='/tool/pointer'}, -- Set Pointer Tool
				{controlID=363, name='Set Pencil Tool', keyCmd=857, paramName='Set Pencil Tool', shortParamName='', OSCValueChange='/tool/pencil'}, -- Set Pencil Tool
				{controlID=364, name='Set Eraser Tool', keyCmd=853, paramName='Set Eraser Tool', shortParamName='', OSCValueChange='/tool/eraser'}, -- Set Eraser Tool
				{controlID=365, name='Set Scissors Tool', keyCmd=851, paramName='Set Scissors Tool', shortParamName='', OSCValueChange='/tool/scissors'}, -- Set Scissors Tool
				{controlID=366, name='Set Glue Tool', keyCmd=852, paramName='Set Glue Tool', shortParamName='', OSCValueChange='/tool/glue'}, -- Set Glue Tool
				{controlID=367, name='Set Finger Tool', keyCmd=860, paramName='Set Finger Tool', shortParamName='', OSCValueChange='/tool/finger'}, -- Set Finger Tool
				{controlID=368, name='Set Text Tool', keyCmd=855, paramName='Set Text Tool', shortParamName='', OSCValueChange='/tool/text'}, -- Set Text Tool
				{controlID=369, name='Set Zoom Tool', keyCmd=862, paramName='Set Zoom Tool', shortParamName='', OSCValueChange='/tool/zoom'}, -- Set Zoom Tool
				{controlID=370, name='Set Solo Tool', keyCmd=856, paramName='Set Solo Tool', shortParamName='', OSCValueChange='/tool/solo'}, -- Set Solo Tool
				{controlID=371, name='Set Mute Tool', keyCmd=859, paramName='Set Mute Tool', shortParamName='', OSCValueChange='/tool/mute'}, -- Set Mute Tool
				{controlID=372, name='Set Quantize Tool', keyCmd=867, paramName='Set Quantize Tool', shortParamName='', OSCValueChange='/tool/quantisize'}, -- Set Quantize Tool
				{controlID=373, name='Set Velocity Tool', keyCmd=866, paramName='Set Velocity Tool', shortParamName='', OSCValueChange='/tool/velocity'}, -- Set Velocity Tool
				{controlID=374, name='Set Automation Select Tool', keyCmd=872, paramName='Set Automation Select Tool', shortParamName='', OSCValueChange='/tool/automation/select'}, -- Set Automation Select Tool
				{controlID=375, name='Set Automation Curve Tool', keyCmd=873, paramName='Set Automation Curve Tool', shortParamName='', OSCValueChange='/tool/automation/curve'}, -- Set Automation Curve Tool
				{controlID=376, name='Set Fade Tool', keyCmd=868, paramName='Set Fade Tool', shortParamName='', OSCValueChange='/tool/fade'}, -- Set Fade Tool
				{controlID=377, name='Set Marquee Tool', keyCmd=871, paramName='Set Marquee Tool', shortParamName='', OSCValueChange='/tool/marquee'}, -- Set Marquee Tool
				{controlID=378, name='Set Flex Tool', keyCmd=875, paramName='Set Flex Tool', shortParamName='', OSCValueChange='/tool/flex'}, -- Set Flex Tool
				{controlID=379, name='Set Flex Pitch Vibrato Tool', keyCmd=877, paramName='Set Flex Pitch Vibrato Tool', shortParamName='', OSCValueChange='/tool/flex/pitch/vibrato'}, -- Set Flex Pitch Vibrato Tool
				{controlID=380, name='Set Flex Pitch Velocity Tool', keyCmd=878, paramName='Set Flex Pitch Velocity Tool', shortParamName='', OSCValueChange='/tool/flex/pitch/velocity'}, -- Set Flex Pitch Velocity Tool
				{controlID=381, name='Set Brush Tool', keyCmd=876, paramName='Set Brush Tool', shortParamName='', OSCValueChange='/tool/brush'}, -- Set Brush Tool
				{controlID=382, name='Set Layout Tool', keyCmd=861, paramName='Set Layout Tool', shortParamName='', OSCValueChange='/tool/layout'}, -- Set Layout Tool
				{controlID=383, name='Set Voice Separation Tool', keyCmd=864, paramName='Set Voice Separation Tool', shortParamName='', OSCValueChange='/tool/voice/separation'}, -- Set Voice Separation Tool
				{controlID=384, name='Set Resize Tool', keyCmd=863, paramName='Set Resize Tool', shortParamName='', OSCValueChange='/tool/resize'}, -- Set Resize Tool
				{controlID=385, name='Set Camera Tool', keyCmd=865, paramName='Set Camera Tool', shortParamName='', OSCValueChange='/tool/camera'}, -- Set Camera Tool
				{controlID=386, name='Set Crosshair Tool', keyCmd=858, paramName='Set Crosshair Tool', shortParamName='', OSCValueChange='/tool/crosshair'}, -- Set Crosshair Tool
				{controlID=387, name='Set MIDI Thru Tool', keyCmd=854, paramName='Set MIDI Thru Tool', shortParamName='', OSCValueChange='/tool/midi/thru'}, -- Set MIDI Thru Tool
				{controlID=388, name='Set Move Tool', keyCmd=2572, paramName='Set Move Tool', shortParamName='', OSCValueChange='/tool/move'}, -- Set Move Tool
				{controlID=389, name='Set Gain Tool', keyCmd=966, paramName='Set Gain Tool', shortParamName='', OSCValueChange='/tool/gain'}, -- Set Gain Tool
				{controlID=390, name='Set Previously Set Tool', keyCmd=2341, paramName='Set Previously Set Tool', shortParamName='', OSCValueChange='/tool/previous/set'}, -- Set Previously Set Tool

				-- Play
				{controlID=400, name='Play from Beginning', keyCmd=14, fbType=FB_OFF, paramName='Play from Beginning', shortParamName='', OSCValueChange='/play/beginning'}, -- Play from Beginning
				{controlID=401, name='Play from Previous Bar', keyCmd=496, fbType=FB_OFF, paramName='Play from Previous Bar', shortParamName='', OSCValueChange='/play/bar/previous'}, -- Play from Previous Bar
				{controlID=402, name='Play from Left Locator', keyCmd=472, fbType=FB_OFF, paramName='Play from Left Locator', shortParamName='', OSCValueChange='/play/locator/left'}, -- Play from Left Locator
				{controlID=403, name='Play from Right Locator', keyCmd=473, fbType=FB_OFF, paramName='Play from Right Locator', shortParamName='', OSCValueChange='/play/locator/right'}, -- Play from Right Locator
				{controlID=404, name='Play from Left Window Edge', keyCmd=683, fbType=FB_OFF, paramName='Play from Left Window Edge', shortParamName='', OSCValueChange='/play/window/left'}, -- Play from Left Window Edge
				{controlID=405, name='Play from Selection', keyCmd=544, fbType=FB_OFF, paramName='Play from Selection', shortParamName='', OSCValueChange='/play/selection'}, -- Play from Selection
				-- Go To
				{controlID=420, name='Go to Left Locator', keyCmd=480, fbType=FB_OFF, paramName='Go to Left Locator', shortParamName='', OSCValueChange='/locator/goto/left'}, -- Go to Left Locator
				{controlID=421, name='Go to Right Locator', keyCmd=481, fbType=FB_OFF, paramName='Go to Right Locator', shortParamName='', OSCValueChange='/locator/goto/right'}, -- Go to Right Locator
				{controlID=422, name='Go to Last Locate Position', keyCmd=526, fbType=FB_OFF, paramName='Go to Last Locate Position', shortParamName='', OSCValueChange='/locate/goto/last'}, -- Go to Last Locate Position
				{controlID=423, name='Go to Selection Start', keyCmd=682, fbType=FB_OFF, paramName='Go to Selection Start', shortParamName='', OSCValueChange='/goto/selection/start'}, -- Go to Selection Start
				{controlID=424, name='Go to Selection End', keyCmd=1221, fbType=FB_OFF, paramName='Go to Selection End', shortParamName='', OSCValueChange='/goto/selection/end'}, -- Go to Selection End
				{controlID=425, name='Go to Beginning of First Region', keyCmd=1239, fbType=FB_OFF, paramName='Go to Beginning of First Region', shortParamName='', OSCValueChange='/goto/region/first'}, -- Go to Beginning of First Region
				{controlID=426, name='Go to End of Last Region', keyCmd=1240, fbType=FB_OFF, paramName='Go to End of Last Region', shortParamName='', OSCValueChange='/goto/region/last'}, -- Go to End of Last Region
				-- Stop and Go To
				{controlID=450, name='Stop and Go to Last Locate Position', keyCmd=527, fbType=FB_OFF, paramName='Stop and Go to Last Locate Position', shortParamName='', OSCValueChange='/stop/goto/last'}, -- Stop and Go to Last Locate Position
				{controlID=451, name='Stop and Go to Left Locator', keyCmd=687, fbType=FB_OFF, paramName='Stop and Go to Left Locator', shortParamName='', OSCValueChange='/stop/goto/locator/left'}, -- Stop and Go to Left Locator
				{controlID=452, name='Stop and Go to Beginning', keyCmd=1236, fbType=FB_OFF, paramName='Stop and Go to Beginning', shortParamName='', OSCValueChange='/stop/goto/beginning'}, -- Stop and Go to Beginning
				-- Skip Locators
				{controlID=460, name='Swap Left and Right Locators (Skip Cycle)', keyCmd=698, fbType=FB_OFF, paramName='Swap Left and Right Locators (Skip Cycle)', shortParamName='', OSCValueChange='/locators/swap'}, -- Swap Left and Right Locators (Skip Cycle)
				-- Free Tempo Recording
				{controlID=470, name='Free Tempo Recording', keyCmd=1369, fbType=FB_OFF, paramName='Free Tempo Recording', shortParamName='', OSCValueChange='/record/free'}, -- Free Tempo Recording

				-- Go to Marker
				{controlID=500, name='Go to Marker 1', keyCmd=521, fbType=FB_OFF, paramName='Go to Marker 1', shortParamName='', OSCValueChange='/marker/1'},
				{controlID=501, name='Go to Marker 2', keyCmd=522, fbType=FB_OFF, paramName='Go to Marker 2', shortParamName='', OSCValueChange='/marker/2'},
				{controlID=502, name='Go to Marker 3', keyCmd=523, fbType=FB_OFF, paramName='Go to Marker 3', shortParamName='', OSCValueChange='/marker/3'},
				{controlID=503, name='Go to Marker 4', keyCmd=524, fbType=FB_OFF, paramName='Go to Marker 4', shortParamName='', OSCValueChange='/marker/4'},
				{controlID=504, name='Go to Marker 5', keyCmd=525, fbType=FB_OFF, paramName='Go to Marker 5', shortParamName='', OSCValueChange='/marker/5'},
				{controlID=505, name='Go to Marker 6', keyCmd=546, fbType=FB_OFF, paramName='Go to Marker 6', shortParamName='', OSCValueChange='/marker/6'},
				{controlID=506, name='Go to Marker 7', keyCmd=547, fbType=FB_OFF, paramName='Go to Marker 7', shortParamName='', OSCValueChange='/marker/7'},
				{controlID=507, name='Go to Marker 8', keyCmd=548, fbType=FB_OFF, paramName='Go to Marker 8', shortParamName='', OSCValueChange='/marker/8'},
				{controlID=508, name='Go to Marker 9', keyCmd=549, fbType=FB_OFF, paramName='Go to Marker 9', shortParamName='', OSCValueChange='/marker/9'},
				{controlID=509, name='Go to Marker 10', keyCmd=670, fbType=FB_OFF, paramName='Go to Marker 10', shortParamName='', OSCValueChange='/marker/10'},
				{controlID=510, name='Go to Marker 11', keyCmd=671, fbType=FB_OFF, paramName='Go to Marker 11', shortParamName='', OSCValueChange='/marker/11'},
				{controlID=511, name='Go to Marker 12', keyCmd=672, fbType=FB_OFF, paramName='Go to Marker 12', shortParamName='', OSCValueChange='/marker/12'},
				{controlID=512, name='Go to Marker 13', keyCmd=673, fbType=FB_OFF, paramName='Go to Marker 13', shortParamName='', OSCValueChange='/marker/13'},
				{controlID=513, name='Go to Marker 14', keyCmd=674, fbType=FB_OFF, paramName='Go to Marker 14', shortParamName='', OSCValueChange='/marker/14'},
				{controlID=514, name='Go to Marker 15', keyCmd=675, fbType=FB_OFF, paramName='Go to Marker 15', shortParamName='', OSCValueChange='/marker/15'},
				{controlID=515, name='Go to Marker 16', keyCmd=676, fbType=FB_OFF, paramName='Go to Marker 16', shortParamName='', OSCValueChange='/marker/16'},
				{controlID=516, name='Go to Marker 17', keyCmd=677, fbType=FB_OFF, paramName='Go to Marker 17', shortParamName='', OSCValueChange='/marker/17'},
				{controlID=517, name='Go to Marker 18', keyCmd=678, fbType=FB_OFF, paramName='Go to Marker 18', shortParamName='', OSCValueChange='/marker/18'},
				{controlID=518, name='Go to Marker 19', keyCmd=679, fbType=FB_OFF, paramName='Go to Marker 19', shortParamName='', OSCValueChange='/marker/19'},
				{controlID=519, name='Go to Marker 20', keyCmd=680, fbType=FB_OFF, paramName='Go to Marker 20', shortParamName='', OSCValueChange='/marker/20'},
				-- Delete Marker
				{controlID=520, name='Delete Marker', keyCmd=514, fbType=FB_OFF, paramName='Delete Marker', shortParamName='', OSCValueChange='/marker/delete'},

		-- Zoom
				{controlID=600, name='Vertical Zoom', globalObj=AGL_VERTICALZOOM, valueMode=kAssignDirect, paramName='Vertical Zoom', shortParamName='', OSCValueChange='/zoom/vertical'},
				{controlID=601, name='Horizontal Zoom', globalObj=AGL_HORIZONTALZOOM, valueMode=kAssignDirect, paramName='Horizontal Zoom', shortParamName='', OSCValueChange='/zoom/horizontal'},

		-- Locator
				--{controlID=620, name='Left Locator',globalObj=AGL_LEFTLOCATOR, clockPart=ACP_BAR, valueMode=kAssignDirect, paramName='Left Locator', shortParamName='', OSCValueChange='/locator/left'},
				--{controlID=621, name='Right Locator', globalObj=AGL_RIGHTLOCATOR, clockPart=ACP_BAR, valueMode=kAssignDirect, paramName='Right Locator', shortParamName='', OSCValueChange='/locator/right'},
				{controlID=622, name='Left Locator ▶', globalObj=AGL_LEFTLOCATOR, clockPart=ACP_BAR, valueMode=kAssignRelative, multiply=1, paramName='Left Locator', shortParamName='', OSCValueChange='/locator/left/next'},
				{controlID=623, name='Left Locator ◀', globalObj=AGL_LEFTLOCATOR, clockPart=ACP_BAR, multiply=-1, valueMode=kAssignRelative, paramName='Left Locator', shortParamName='', OSCValueChange='/locator/left/previous'},
				{controlID=624, name='Right Locator ▶', globalObj=AGL_RIGHTLOCATOR, clockPart=ACP_BAR, multiply=1, valueMode=kAssignRelative, paramName='Right Locator', shortParamName='', OSCValueChange='/locator/right/next'},
				{controlID=625, name='Right Locator ◀', globalObj=AGL_RIGHTLOCATOR, clockPart=ACP_BAR, multiply=-1, valueMode=kAssignRelative, paramName='Right Locator', shortParamName='', OSCValueChange='/locator/right/previous'},

		-- Track selected
				{controlID=900, name='Pan (selected)', trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/selected/pan", OSCValueString='/selected/pan/value'},
				{controlID=901, name='Mute (selected)', trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/selected/mute", OSCValueString='/selected/mute/value'},
				{controlID=902, name='Solo (selected)', trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/selected/solo", OSCValueString='/selected/solo/value'},
				{controlID=903, name='Record (selected)', trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/selected/record", OSCValueString='/selected/record/value'},
				{controlID=904, name='Volume (selected)', trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/selected/volume", OSCValueString='/selected/volume/value'},
				{controlID=905, name='Name (selected)', trackParam=CS_NAME, OSCValueString='/selected/name'},
				{controlID=906, name='Color (selected)', trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/selected/color'},
				

		-- Bank offset 0
				{controlID=1000, CSTrack= true, name='Pan (Bank pos.1)', faderBankTrack=0, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/1/pan", OSCValueString='/bank/1/pan/value'},
				{controlID=1001, CSTrack= true, name='Mute (Bank pos.1)', faderBankTrack=0, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/1/mute", OSCValueString='/bank/1/mute/value'},
				{controlID=1002, CSTrack= true, name='Solo (Bank pos.1)', faderBankTrack=0, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/1/solo", OSCValueString='/bank/1/solo/value'},
				{controlID=1003, CSTrack= true, name='Record (Bank pos.1)', faderBankTrack=0, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/1/record", OSCValueString='/bank/1/record/value'},
				{controlID=1004, CSTrack= true, name='Volume (Bank pos.1)', faderBankTrack=0, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/1/volume", OSCValueString='/bank/1/volume/value', OSCTouched='/bank/1/volume/touched'},
				{controlID=1005, CSTrack= true, name='Name (Bank pos.1)', faderBankTrack=0, trackParam=CS_NAME, OSCValueString='/bank/1/name'},
				{controlID=1006, CSTrack= true, name='Color (Bank pos.1)', faderBankTrack=0, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/1/color'},
		-- Bank offset 1
				{controlID=1100, CSTrack= true, name='Pan (Bank pos.2)', faderBankTrack=1, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/2/pan", OSCValueString='/bank/2/pan/value'},
				{controlID=1101, CSTrack= true, name='Mute (Bank pos.2)', faderBankTrack=1, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/2/mute", OSCValueString='/bank/2/mute/value'},
				{controlID=1102, CSTrack= true, name='Solo (Bank pos.2)', faderBankTrack=1, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/2/solo", OSCValueString='/bank/2/solo/value'},
				{controlID=1103, CSTrack= true, name='Record (Bank pos.2)', faderBankTrack=1, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/2/record", OSCValueString='/bank/2/record/value'},
				{controlID=1104, CSTrack= true, name='Volume (Bank pos.2)', faderBankTrack=1, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/2/volume", OSCValueString='/bank/2/volume/value', OSCTouched='/bank/2/volume/touched'},
				{controlID=1105, CSTrack= true, name='Name (Bank pos.2)', faderBankTrack=1, trackParam=CS_NAME, OSCValueString='/bank/2/name'},
				{controlID=1106, CSTrack= true, name='Color (Bank pos.2)', faderBankTrack=1, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/2/color'},
		-- Bank offset 2
				{controlID=1200, CSTrack= true, name='Pan (Bank pos.3)', faderBankTrack=2, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/3/pan", OSCValueString='/bank/3/pan/value'},
				{controlID=1201, CSTrack= true, name='Mute (Bank pos.3)', faderBankTrack=2, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/3/mute", OSCValueString='/bank/3/mute/value'},
				{controlID=1202, CSTrack= true, name='Solo (Bank pos.3)', faderBankTrack=2, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/3/solo", OSCValueString='/bank/3/solo/value'},
				{controlID=1203, CSTrack= true, name='Record (Bank pos.3)', faderBankTrack=2, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/3/record", OSCValueString='/bank/3/record/value'},
				{controlID=1204, CSTrack= true, name='Volume (Bank pos.3)', faderBankTrack=2, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/3/volume", OSCValueString='/bank/3/volume/value', OSCTouched='/bank/3/volume/touched'},
				{controlID=1205, CSTrack= true, name='Name (Bank pos.3)', faderBankTrack=2, trackParam=CS_NAME, OSCValueString='/bank/3/name'},
				{controlID=1206, CSTrack= true, name='Color (Bank pos.3)', faderBankTrack=2, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/3/color'},
		-- Bank offset 3
				{controlID=1300, CSTrack= true, name='Pan (Bank pos.4)', faderBankTrack=3, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/4/pan", OSCValueString='/bank/4/pan/value'},
				{controlID=1301, CSTrack= true, name='Mute (Bank pos.4)', faderBankTrack=3, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/4/mute", OSCValueString='/bank/4/mute/value'},
				{controlID=1302, CSTrack= true, name='Solo (Bank pos.4)', faderBankTrack=3, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/4/solo", OSCValueString='/bank/4/solo/value'},
				{controlID=1303, CSTrack= true, name='Record (Bank pos.4)', faderBankTrack=3, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/4/record", OSCValueString='/bank/4/record/value'},
				{controlID=1304, CSTrack= true, name='Volume (Bank pos.4)', faderBankTrack=3, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/4/volume", OSCValueString='/bank/4/volume/value', OSCTouched='/bank/4/volume/touched'},
				{controlID=1305, CSTrack= true, name='Name (Bank pos.4)', faderBankTrack=3, trackParam=CS_NAME, OSCValueString='/bank/4/name'},
				{controlID=1306, CSTrack= true, name='Color (Bank pos.4)', faderBankTrack=3, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/4/color'},
		-- Bank offset 4
				{controlID=1400, CSTrack= true, name='Pan (Bank pos.5)', faderBankTrack=4, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/5/pan", OSCValueString='/bank/5/pan/value'},
				{controlID=1401, CSTrack= true, name='Mute (Bank pos.5)', faderBankTrack=4, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/5/mute", OSCValueString='/bank/5/mute/value'},
				{controlID=1402, CSTrack= true, name='Solo (Bank pos.5)', faderBankTrack=4, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/5/solo", OSCValueString='/bank/5/solo/value'},
				{controlID=1403, CSTrack= true, name='Record (Bank pos.5)', faderBankTrack=4, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/5/record", OSCValueString='/bank/5/record/value'},
				{controlID=1404, CSTrack= true, name='Volume (Bank pos.5)', faderBankTrack=4, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/5/volume", OSCValueString='/bank/5/volume/value', OSCTouched='/bank/5/volume/touched'},					{controlID=1305, CSTrack= true, name='Name (Bank pos.4)', faderBankTrack=3, trackParam=CS_NAME, OSCValueString='/bank/4/name'},
				{controlID=1405, CSTrack= true, name='Name (Bank pos.5)', faderBankTrack=4, trackParam=CS_NAME, OSCValueString='/bank/5/name'},
				{controlID=1406, CSTrack= true, name='Color (Bank pos.5)', faderBankTrack=4, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/5/color'},
		-- Bank offset 5
				{controlID=1500, CSTrack= true, name='Pan (Bank pos.6)', faderBankTrack=5, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/6/pan", OSCValueString='/bank/6/pan/value'},
				{controlID=1501, CSTrack= true, name='Mute (Bank pos.6)', faderBankTrack=5, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/6/mute", OSCValueString='/bank/6/mute/value'},
				{controlID=1502, CSTrack= true, name='Solo (Bank pos.6)', faderBankTrack=5, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/6/solo", OSCValueString='/bank/6/solo/value'},
				{controlID=1503, CSTrack= true, name='Record (Bank pos.6)', faderBankTrack=5, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/6/record", OSCValueString='/bank/6/record/value'},
				{controlID=1504, CSTrack= true, name='Volume (Bank pos.6)', faderBankTrack=5, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/6/volume", OSCValueString='/bank/6/volume/value', OSCTouched='/bank/6/volume/touched'},
				{controlID=1505, CSTrack= true, name='Name (Bank pos.6)', faderBankTrack=5, trackParam=CS_NAME, OSCValueString='/bank/6/name'},
				{controlID=1506, CSTrack= true, name='Color (Bank pos.6)', faderBankTrack=5, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/6/color'},
			-- Bank offset 6
				{controlID=1600, CSTrack= true, name='Pan (Bank pos.7)', faderBankTrack=6, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/7/pan", OSCValueString='/bank/7/pan/value'},
				{controlID=1601, CSTrack= true, name='Mute (Bank pos.7)', faderBankTrack=6, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/7/mute", OSCValueString='/bank/7/mute/value'},
				{controlID=1602, CSTrack= true, name='Solo (Bank pos.7)', faderBankTrack=6, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/7/solo", OSCValueString='/bank/7/solo/value'},
				{controlID=1603, CSTrack= true, name='Record (Bank pos.7)', faderBankTrack=6, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/7/record", OSCValueString='/bank/7/record/value'},
				{controlID=1604, CSTrack= true, name='Volume (Bank pos.7)', faderBankTrack=6, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/7/volume", OSCValueString='/bank/7/volume/value', OSCTouched='/bank/7/volume/touched'},
				{controlID=1605, CSTrack= true, name='Name (Bank pos.7)', faderBankTrack=6, trackParam=CS_NAME, OSCValueString='/bank/7/name'},
				{controlID=1606, CSTrack= true, name='Color (Bank pos.7)', faderBankTrack=6, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/7/color'},
			-- Bank offset 7
			{controlID=1700, CSTrack= true, name='Pan (Bank pos.8)', faderBankTrack=7, trackParam=AUPAN, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/8/pan", OSCValueString='/bank/8/pan/value'},
			{controlID=1701, CSTrack= true, name='Mute (Bank pos.8)', faderBankTrack=7, trackParam=CS_MUTE, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/8/mute", OSCValueString='/bank/8/mute/value'},
			{controlID=1702, CSTrack= true, name='Solo (Bank pos.8)', faderBankTrack=7, trackParam=CS_SOLO, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/8/solo", OSCValueString='/bank/8/solo/value'},
			{controlID=1703, CSTrack= true, name='Record (Bank pos.8)', faderBankTrack=7, trackParam=CS_RECRDY, paramName='@tp', shortParamName='@tn', valueMode=kAssignToggle, OSCValueChange = "/bank/8/record", OSCValueString='/bank/8/record/value'},
			{controlID=1704, CSTrack= true, name='Volume (Bank pos.8)', faderBankTrack=7, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/bank/8/volume", OSCValueString='/bank/8/volume/value', OSCTouched='/bank/8/volume/touched'},
			{controlID=1705, CSTrack= true, name='Name (Bank pos.8)', faderBankTrack=7, trackParam=CS_NAME, OSCValueString='/bank/8/name'},
			{controlID=1706, CSTrack= true, name='Color (Bank pos.8)', faderBankTrack=7, trackParam=CS_COLOR, paramName='@tp', OSCValueChange='/bank/8/color'},
		
				-- Master
                {controlID=2000, name='Mastervolume', master=0, trackParam=AUVOLUME, paramName='@tp', shortParamName='@tn', valueMode=kAssignScaled, OSCValueChange = "/master/volume", OSCValueString='/master/volume/value', OSCTouched='/master/volume/touched'},
				{controlID=2001, name='Tempo', globalObj=AGL_TEMPO, valueMode=kAssignDirect, paramName='Tempo', OSCValueChange="/tempo"},
	
				-- Beats and SMPTE
				{controlID=2010, name='Beats', globalObj=AGL_BEATS},
				{controlID=2011, name='SMPTE', globalObj=AGL_SMPTE},

		-- Smart Control Fader

		-- Smart Control
				{controlID=2100, name='Knob 1', label='smart Knob 1', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/1', OSCLabel='/smart/knob/1/label', OSCValueString='/smart/knob/1/value'},
				{controlID=2101, name='Knob 2', label='smart Knob 2', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/2', OSCLabel='/smart/knob/2/label', OSCValueString='/smart/knob/2/value'},
				{controlID=2102, name='Knob 3', label='smart Knob 3', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/3', OSCLabel='/smart/knob/3/label', OSCValueString='/smart/knob/3/value'},
				{controlID=2103, name='Knob 4', label='smart Knob 4', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/4', OSCLabel='/smart/knob/4/label', OSCValueString='/smart/knob/4/value'},
				{controlID=2104, name='Knob 5', label='smart Knob 5', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/5', OSCLabel='/smart/knob/5/label', OSCValueString='/smart/knob/5/value'},
				{controlID=2105, name='Knob 6', label='smart Knob 6', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/6', OSCLabel='/smart/knob/6/label', OSCValueString='/smart/knob/6/value'},
				{controlID=2106, name='Knob 7', label='smart Knob 7', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/7', OSCLabel='/smart/knob/7/label', OSCValueString='/smart/knob/7/value'},
				{controlID=2107, name='Knob 8', label='smart Knob 8', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/8', OSCLabel='/smart/knob/8/label', OSCValueString='/smart/knob/8/value'},
				{controlID=2108, name='Knob 9', label='smart Knob 9', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/9', OSCLabel='/smart/knob/9/label', OSCValueString='/smart/knob/9/value'},
				{controlID=2109, name='Knob 10', label='smart Knob 10', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/10', OSCLabel='/smart/knob/10/label', OSCValueString='/smart/knob/10/value'},
				{controlID=2110, name='Knob 11', label='smart Knob 11', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/11', OSCLabel='/smart/knob/11/label', OSCValueString='/smart/knob/11/value'},
				{controlID=2111, name='Knob 12', label='smart Knob 12', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/12', OSCLabel='/smart/knob/12/label', OSCValueString='/smart/knob/12/value'},
				{controlID=2112, name='Knob 13', label='smart Knob 13', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/13', OSCLabel='/smart/knob/13/label', OSCValueString='/smart/knob/13/value'},
				{controlID=2113, name='Knob 14', label='smart Knob 14', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/14', OSCLabel='/smart/knob/14/label', OSCValueString='/smart/knob/14/value'},
				{controlID=2114, name='Knob 15', label='smart Knob 15', paramName='@tp', shortParamName='@tn', objectType='Knob', OSCValueChange='/smart/knob/15', OSCLabel='/smart/knob/15/label', OSCValueString='/smart/knob/15/value'},
				-- VFader
				{controlID=2115, name='VFader 01', label='smart VFader 01', paramName='@tp', shortParamName='@tn', objectType='VFader', OSCValueChange='/smart/vfader/01', OSCLabel='/smart/vfader/01/label', OSCValueString='/smart/vfader/01/value'},
				{controlID=2116, name='VFader 02', label='smart VFader 02', paramName='@tp', shortParamName='@tn', objectType='VFader', OSCValueChange='/smart/vfader/02', OSCLabel='/smart/vfader/02/label', OSCValueString='/smart/vfader/02/value'},
				{controlID=2117, name='VFader 03', label='smart VFader 03', paramName='@tp', shortParamName='@tn', objectType='VFader', OSCValueChange='/smart/vfader/03', OSCLabel='/smart/vfader/03/label', OSCValueString='/smart/vfader/03/value'},
				{controlID=2118, name='VFader 04', label='smart VFader 04', paramName='@tp', shortParamName='@tn', objectType='VFader', OSCValueChange='/smart/vfader/04', OSCLabel='/smart/vfader/04/label', OSCValueString='/smart/vfader/04/value'},
				{controlID=2119, name='VFader 05', label='smart VFader 05', paramName='@tp', shortParamName='@tn', objectType='VFader', OSCValueChange='/smart/vfader/05', OSCLabel='/smart/vfader/05/label', OSCValueString='/smart/vfader/05/value'},
				-- HFader
				{controlID=2125, name='HFader 01', label='smart HFader 01', paramName='@tp', shortParamName='@tn', objectType='HFader', OSCValueChange='/smart/hfader/01', OSCLabel='/smart/hfader/01/label', OSCValueString='/smart/hfader/01/value'},
				{controlID=2126, name='HFader 02', label='smart HFader 02', paramName='@tp', shortParamName='@tn', objectType='HFader', OSCValueChange='/smart/hfader/02', OSCLabel='/smart/hfader/02/label', OSCValueString='/smart/hfader/02/value'},
				{controlID=2127, name='HFader 03', label='smart HFader 03', paramName='@tp', shortParamName='@tn', objectType='HFader', OSCValueChange='/smart/hfader/03', OSCLabel='/smart/hfader/03/label', OSCValueString='/smart/hfader/03/value'},
				{controlID=2128, name='HFader 04', label='smart HFader 04', paramName='@tp', shortParamName='@tn', objectType='HFader', OSCValueChange='/smart/hfader/04', OSCLabel='/smart/hfader/04/label', OSCValueString='/smart/hfader/04/value'},
				{controlID=2129, name='HFader 05', label='smart HFader 05', paramName='@tp', shortParamName='@tn', objectType='HFader', OSCValueChange='/smart/hfader/05', OSCLabel='/smart/hfader/05/label', OSCValueString='/smart/hfader/05/value'},

		
			},

		}
end	

function CSFeedback(controlID, currentValue, minValue, maxValue, nSubSequentControls, centerValue, assignment)

	return 20

end

function CSLabelSize(controlID, nSubSequentControls)

	return 20

end

function controller_version()

	return "1.0.0"

end
