From 63116e170bad085c03a81d681420604170a24162 Mon Sep 17 00:00:00 2001 From: Grayson Solis <109297237+grayson-solis@users.noreply.github.com> Date: Fri, 4 Jul 2025 00:06:12 -0400 Subject: [PATCH 1/3] Release Toggle Track Pitch Envelope v1.0 --- ...aysonsolis_Toggle Track Pitch Envelope.lua | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua diff --git a/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua b/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua new file mode 100644 index 000000000..bfc4d785f --- /dev/null +++ b/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua @@ -0,0 +1,97 @@ +-- @description Toggle Track Pitch Envelope +-- @author Grayson Solis +-- @version 1.0 +-- @about +-- Toggles Shift (cents) envelope lane for ReaPitch on selected track. Adds ReaPitch if missing. Similar to the "volume" or "pan" default track envelopes. +-- The parameter used can be toggled by editing the lines below! + +reaper.PreventUIRefresh(1) +reaper.Undo_BeginBlock() + +local track = reaper.GetSelectedTrack(0, 0) +if not track then + reaper.PreventUIRefresh(0) + return +end + +local before = reaper.TrackFX_GetCount(track) + +local fx_idx = reaper.TrackFX_AddByName(track, "ReaPitch (Cockos)", false, 0) +if fx_idx < 0 then + fx_idx = reaper.TrackFX_AddByName(track, "ReaPitch (Cockos)", false, 1) +end +if fx_idx < 0 then + reaper.ShowMessageBox("Could not add/find ReaPitch.", "Error", 0) + reaper.PreventUIRefresh(0) + return +end + +reaper.TrackFX_Show(track, fx_idx, 2) + +local added = (reaper.TrackFX_GetCount(track) > before) + +--[[ + +CUSTOMIZATION TIP +To select a different ReaPitch parameter envelope, change the value +of the `param` variable below to one of the following: + + 0: Wet + 1: Dry + 2: Enabled + 3: Shift (full range) + 4: Shift (cents) <-- current default + 5: Shift (semitones) + 6: Shift (oct) + 7: Formant adjust (full range) + 8: Formant adjust (cents) + 9: Formant adjust (semitones) + 10: Volume + 11: Pan + 12: Bypass + 13: Wet + 14: Delta + + For example, to toggle the envelope for "Shift (semitones)", set: + + local param = 5 + +--]] + +local param = 3 -- Shift (cents) YOU CAN CHANGE THIS!!!! + +local env = reaper.GetFXEnvelope(track, fx_idx, param, true) +if not env then + reaper.ShowMessageBox("Failed to access envelope.", "Error", 0) + reaper.PreventUIRefresh(0) + return +end +-+ +local ok, chunk = reaper.GetEnvelopeStateChunk(env, "", false) +if not ok then + reaper.ShowMessageBox("Failed to read envelope.", "Error", 0) + reaper.PreventUIRefresh(0) + return +end + + +local show +if added then + show = true +else + local v1,v2,v3 = chunk:match("VIS (%d+) (%d+) (%d+)") + show = not (v1 == "1" and v2 == "1" and v3 == "1") +end + +chunk = chunk + :gsub("ACT %d+", "ACT " .. (show and 1 or 0)) + :gsub("VIS %d+ %d+ %d+", "VIS " .. (show and "1 1 1" or "0 0 0")) + :gsub("ARM %d+", "ARM " .. (show and 1 or 0)) + :gsub("DEFSHAPE %d+", "DEFSHAPE 0") + +reaper.SetEnvelopeStateChunk(env, chunk, false) +reaper.TrackList_AdjustWindows(false) +reaper.UpdateArrange() +reaper.Undo_EndBlock("Toggle ReaPitch Shift (cents) Envelope (default height)", 0) +reaper.PreventUIRefresh(0) + From 70f1cdab938b2707e798bdf39e1878221474123f Mon Sep 17 00:00:00 2001 From: Grayson Solis <109297237+grayson-solis@users.noreply.github.com> Date: Fri, 4 Jul 2025 14:04:39 -0400 Subject: [PATCH 2/3] Update graysonsolis_Toggle Track Pitch Envelope.lua Fixed stray -+ --- Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua b/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua index bfc4d785f..334a68dba 100644 --- a/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua +++ b/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua @@ -66,7 +66,7 @@ if not env then reaper.PreventUIRefresh(0) return end --+ + local ok, chunk = reaper.GetEnvelopeStateChunk(env, "", false) if not ok then reaper.ShowMessageBox("Failed to read envelope.", "Error", 0) From e9b7e033e50c9ec74878752ea000a95a4f406fd2 Mon Sep 17 00:00:00 2001 From: Christian Fillion Date: Tue, 8 Jul 2025 01:59:57 -0400 Subject: [PATCH 3/3] move out of the Takes subcategory, rename to sentence case, mention ReaPitch and which envelope for searchability --- ... graysonsolis_Toggle ReaPitch shift (cents) envelope.lua} | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rename Envelopes/{Takes/graysonsolis_Toggle Track Pitch Envelope.lua => graysonsolis_Toggle ReaPitch shift (cents) envelope.lua} (95%) diff --git a/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua b/Envelopes/graysonsolis_Toggle ReaPitch shift (cents) envelope.lua similarity index 95% rename from Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua rename to Envelopes/graysonsolis_Toggle ReaPitch shift (cents) envelope.lua index 334a68dba..4339786be 100644 --- a/Envelopes/Takes/graysonsolis_Toggle Track Pitch Envelope.lua +++ b/Envelopes/graysonsolis_Toggle ReaPitch shift (cents) envelope.lua @@ -1,4 +1,4 @@ --- @description Toggle Track Pitch Envelope +-- @description Toggle ReaPitch shift (cents) envelope -- @author Grayson Solis -- @version 1.0 -- @about @@ -92,6 +92,5 @@ chunk = chunk reaper.SetEnvelopeStateChunk(env, chunk, false) reaper.TrackList_AdjustWindows(false) reaper.UpdateArrange() -reaper.Undo_EndBlock("Toggle ReaPitch Shift (cents) Envelope (default height)", 0) +reaper.Undo_EndBlock("Toggle ReaPitch shift (cents) envelope (default height)", 0) reaper.PreventUIRefresh(0) -