IEM Plugins
The IEM Plug-in Suite was created by staff and students student of the Institute of Electronic Music and Acoustics in Graz. It is free and open source. Downloads and documentation can be found here https://plugins.iem.at/.
An in depth documentation of the IEM plugins features detailed information on installing and using the tools inside Reaper: https://plugins.iem.at/docs/.
The following pages include additional information on how to use the plugins with external software for control and processing, such as PD, SuperCollider and others.
Mapping
local num_tracks = reaper.CountSelectedTracks(0) if num_tracks == 0 then return end reaper.Undo_BeginBlock() for i = 0, num_tracks - 1 do local track = reaper.GetSelectedTrack(0, i) local parent = reaper.GetParentTrack(track) if parent then -- 1. PARENT PROTECTION: Only grow, never shrink local dest_channel = i local current_parent_ch = reaper.GetMediaTrackInfo_Value(parent, "I_NCHAN") if (dest_channel + 1) > current_parent_ch then reaper.SetMediaTrackInfo_Value(parent, "I_NCHAN", dest_channel + 1) end -- 2. PAN HARD LEFT: Use the safe API (Value -1.0) -- This will not touch your Volume fader reaper.SetMediaTrackInfo_Value(track, "D_PAN", -1.0) -- 3. ROUTING INJECTION: Use a very specific pattern match -- to ensure we ONLY hit the MAINSEND line and nothing else local _, chunk = reaper.GetTrackStateChunk(track, "", false) local bitmask = 1024 + i -- We use '^' and '%s' to make the search extremely surgical local new_chunk = chunk:gsub("MAINSEND %d+ %d+", "MAINSEND 1 " .. bitmask) reaper.SetTrackStateChunk(track, new_chunk, false) end end reaper.Undo_EndBlock("Clean Mono Map", -1) reaper.TrackList_AdjustWindows(false)
