-- =====================================================
-- ReaBank einem ausgewählten MIDI Track zuweisen
-- =====================================================

-- >>> HIER ANPASSEN <<<
local reabank_path = "C:\Users\HJW\AppData\Roaming\REAPER\Data\EEXL M Vibraphone.reabank"
local bank_msb = 0      -- MSB der Bank
local bank_lsb = 0      -- LSB der Bank
local program  = 0      -- Program Change Nummer (0–127)

-- -----------------------------------------------------

-- Aktiven Track holen
local track = reaper.GetSelectedTrack(0, 0)

if not track then
    reaper.ShowMessageBox("Kein Track ausgewählt!", "Fehler", 0)
    return
end

-- ReaBank Datei importieren
reaper.MIDI_LoadBank(reabank_path)

-- Erstes MIDI Item finden
local item = reaper.GetTrackMediaItem(track, 0)

if not item then
    reaper.ShowMessageBox("Track hat kein MIDI Item!", "Fehler", 0)
    return
end

local take = reaper.GetActiveTake(item)

if not take or not reaper.TakeIsMIDI(take) then
    reaper.ShowMessageBox("Kein MIDI Take gefunden!", "Fehler", 0)
    return
end

-- Bank Select + Program Change am Anfang setzen
local ppq = 0

-- Bank MSB (CC0)
reaper.MIDI_InsertCC(take, false, false, ppq,
    0xB0, 0, 0, bank_msb)

-- Bank LSB (CC32)
reaper.MIDI_InsertCC(take, false, false, ppq,
    0xB0, 0, 32, bank_lsb)

-- Program Change
reaper.MIDI_InsertEvt(take, false, false, ppq,
    string.char(0xC0, program))

reaper.MIDI_Sort(take)

reaper.ShowMessageBox("ReaBank zugewiesen!", "Fertig", 0)