Advertisement
yoshemitzu

drum preset selector

Apr 22nd, 2024 (edited)
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.33 KB | None | 0 0
  1. reaper.ClearConsole()
  2.  
  3. function print (msg) -- make a print function that automatically puts a line break
  4.   reaper.ShowConsoleMsg(tostring(msg))
  5.   reaper.ShowConsoleMsg("\n")
  6. end
  7. print(os.time())
  8.  
  9. global_drum_address = 0 -- just some number
  10. reaper.gmem_attach(global_drum_address)
  11. drumPresetSelector = reaper.gmem_read(global_drum_address)
  12. print(drumPresetSelector)
  13.  
  14. -- Declare constants
  15. local numPresets = 3
  16. local firstDrumTrack = 22 -- Drums start at track 23, but Reaper counts 0-based
  17.  
  18.  -- Function to increment selector and arm/disarm tracks
  19. function incrementAndArm ()
  20.   drumPresetSelector = (drumPresetSelector + 1) % numPresets  -- Increment and wrap around at numPresets
  21.   for i = firstDrumTrack,firstDrumTrack+numPresets-1 do  -- Loop through tracks
  22.     track = reaper.GetTrack(0,i)
  23.     print(i)
  24.     print(drumPresetSelector)
  25.     print(track)
  26.     if i == firstDrumTrack + drumPresetSelector then
  27.       response = reaper.SetMediaTrackInfo_Value(track, "I_RECARM", 1)
  28.       print("arm" .. " " .. i .." " .. firstDrumTrack + drumPresetSelector)
  29.     else
  30.       response = reaper.SetMediaTrackInfo_Value(track, "I_RECARM", 0)  -- Disarm other tracks
  31.       print("disarm")
  32.     end
  33.   end
  34.   print(drumPresetSelector)
  35.   reaper.gmem_write(global_drum_address,drumPresetSelector)
  36.   return "done"
  37. end
  38.  
  39. print(incrementAndArm())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement