From 20513d843b8f5c4fd7cb961c30ec0dcc5ee2aa3e Mon Sep 17 00:00:00 2001 From: Joe Date: Mon, 23 Sep 2019 19:33:09 -0400 Subject: [PATCH] Various XOXOXO tweaks --- Xo.lua | 98 ++++++++++++++++++++++++++++++++------------ Xoxo.lua | 110 +++++++++++++++++++++++++++++++++++++------------- Xoxoxo.lua | 93 +++++++++++++++++++++++++++++++++--------- changelog.log | 3 ++ 4 files changed, 233 insertions(+), 71 deletions(-) diff --git a/Xo.lua b/Xo.lua index 73b5dc3..4724002 100644 --- a/Xo.lua +++ b/Xo.lua @@ -46,10 +46,10 @@ function Xo:loadMonoGraph() local level = self:createObject("GainBias","level") local levelRange = self:createObject("MinMax","levelRange") local sync = self:createObject("Comparator","sync") - local clip = self:createObject("Comparator","clip") - sync:setTriggerMode() - clip:setTriggerMode() - clip:hardSet("Threshold",1.0) + -- local clip = self:createObject("Comparator","clip") + -- sync:setTriggerMode() + -- clip:setTriggerMode() + -- clip:hardSet("Threshold",1.0) connect(tune,"Out",tuneRange,"In") connect(f0,"Out",f0Range,"In") @@ -70,6 +70,11 @@ function Xo:loadMonoGraph() localDSP["op" .. name .. "tune"] = self:createObject("GainBias","op" .. name .. "tune") localDSP["op" .. name .. "tuneRange"] = self:createObject("MinMax","op" .. name .. "tuneRange") localDSP["op" .. name .. "tuneSum"] = self:createObject("Sum","op" .. name .. "tuneSum") + localDSP["op" .. name .. "track"] = self:createObject("Comparator","op" .. name .. "track") + localDSP["op" .. name .. "trackX"] = self:createObject("Multiply","op" .. name .. "trackX") + localDSP["op" .. name .. "track"]:setToggleMode() + localDSP["op" .. name .. "track"]:optionSet("State",1.0) + connect(localDSP["op" .. name .. "track"],"Out",localDSP["op" .. name .. "trackX"],"Left") connect(localDSP["op" .. name .. "scan"],"Out",localDSP["op" .. name .. "scanRange"],"In") connect(localDSP["op" .. name .. "scan"],"Out",localDSP["op" .. name],"Slice Select") connect(localDSP["op" .. name .. "ratio"],"Out",localDSP["op" .. name .. "ratioX"],"Left") @@ -79,7 +84,8 @@ function Xo:loadMonoGraph() connect(localDSP["op" .. name .. "tuneSum"],"Out",localDSP["op" .. name],"Fundamental") connect(localDSP["op" .. name .. "tune"],"Out",localDSP["op" .. name .. "tuneRange"],"In") connect(localDSP["op" .. name .. "ratio"],"Out",localDSP["op" .. name .. "ratioRange"],"In") - connect(tune,"Out",localDSP["op" .. name],"V/Oct") + connect(tune,"Out",localDSP["op" .. name .. "trackX"],"Right") + connect(localDSP["op" .. name .. "trackX"],"Out",localDSP["op" .. name],"V/Oct") connect(sync,"Out",localDSP["op" .. name],"Sync") connect(localDSP["op" .. name],"Out",localDSP["op" .. name .. "outVCA"],"Left") connect(localDSP["op" .. name .. "outLevel"],"Out",localDSP["op" .. name .. "outVCA"],"Right") @@ -113,10 +119,10 @@ function Xo:loadMonoGraph() end connect(localDSP["opAoutVCA"],"Out",localDSP["outputMixer1"],"Left") connect(localDSP["opBoutVCA"],"Out",localDSP["outputMixer1"],"Right") - + connect(localDSP["outputMixer1"],"Out",vca,"Right") connect(level,"Out",vca,"Left") - connect(localDSP["outputMixer1"],"Out",clip,"In") + -- connect(localDSP["outputMixer5"],"Out",clip,"In") connect(vca,"Out",self,"Out1") self:createMonoBranch("level",level,"In",level,"Out") @@ -131,6 +137,7 @@ function Xo:loadMonoGraph() self:createMonoBranch("outLevel" .. name,localDSP["op" .. name .. "outLevel"],"In",localDSP["op" .. name .. "outLevel"],"Out") self:createMonoBranch("scan" .. name,localDSP["op" .. name .. "scan"],"In",localDSP["op" .. name .. "scan"],"Out") self:createMonoBranch("tune" .. name,localDSP["op" .. name .. "tune"],"In",localDSP["op" .. name .. "tune"],"Out") + self:createMonoBranch("track" .. name,localDSP["op" .. name .. "track"],"In",localDSP["op" .. name .. "track"],"Out") end @@ -142,17 +149,25 @@ function Xo:loadStereoGraph() end local views = { - expanded = {"tune","freq","sync","level","clip"}, - outputs = {"outLevelA","outLevelB","outLevelC","outLevelD","outLevelE","outLevelF","clip"}, + expanded = {"tune","freq","sync","level"}, + outputs = {"outLevelA","outLevelB","outLevelC","outLevelD","outLevelE","outLevelF"}, ratios = {"ratioA","ratioB","ratioC","ratioD","ratioE","ratioF"}, scan = {"scanA","scanB","scanC","scanD","scanE","scanF"}, tune = {"tuneA","tuneB","tuneC","tuneD","tuneE","tuneF"}, - a = {"outLevelA","ratioA","scanA","tuneA","phaseAA","phaseAB","phaseAC","phaseAD","phaseAE","phaseAF"}, - b = {"outLevelB","ratioB","scanB","tuneB","phaseBA","phaseBB","phaseBC","phaseBD","phaseBE","phaseBF"}, - c = {"outLevelC","ratioC","scanC","tuneC","phaseCA","phaseCB","phaseCC","phaseCD","phaseCE","phaseCF"}, - d = {"outLevelD","ratioD","scanD","tuneD","phaseDA","phaseDB","phaseDC","phaseDD","phaseDE","phaseDF"}, - e = {"outLevelE","ratioE","scanE","tuneE","phaseEA","phaseEB","phaseEC","phaseED","phaseEE","phaseEF"}, - f = {"outLevelF","ratioF","scanF","tuneF","phaseFA","phaseFB","phaseFC","phaseFD","phaseFE","phaseFF"}, + track = {"trackA","trackB","trackC","trackD","trackE","trackF"}, + a = {"outLevelA","ratioA","scanA","tuneA","phaseAA","phaseAB","phaseAC","phaseAD","phaseAE","phaseAF","trackA"}, + b = {"outLevelB","ratioB","scanB","tuneB","phaseBA","phaseBB","phaseBC","phaseBD","phaseBE","phaseBF","trackB"}, + c = {"outLevelC","ratioC","scanC","tuneC","phaseCA","phaseCB","phaseCC","phaseCD","phaseCE","phaseCF","trackC"}, + d = {"outLevelD","ratioD","scanD","tuneD","phaseDA","phaseDB","phaseDC","phaseDD","phaseDE","phaseDF","trackD"}, + e = {"outLevelE","ratioE","scanE","tuneE","phaseEA","phaseEB","phaseEC","phaseED","phaseEE","phaseEF","trackE"}, + f = {"outLevelF","ratioF","scanF","tuneF","phaseFA","phaseFB","phaseFC","phaseFD","phaseFE","phaseFF","trackF"}, + aIn = {"phaseAA","phaseBA","phaseCA","phaseDA","phaseEA","phaseFA"}, + bIn = {"phaseAB","phaseBB","phaseCB","phaseDB","phaseEB","phaseFB"}, + cIn = {"phaseAC","phaseBC","phaseCC","phaseDC","phaseEC","phaseFC"}, + dIn = {"phaseAD","phaseBD","phaseCD","phaseDD","phaseED","phaseFD"}, + eIn = {"phaseAE","phaseBE","phaseCE","phaseDE","phaseEE","phaseFE"}, + fIn = {"phaseAF","phaseBF","phaseCF","phaseDF","phaseEF","phaseFF"}, + phaseAA = {"scope","phaseAA"}, collapsed = {}, } @@ -214,6 +229,13 @@ function Xo:onLoadViews(objects,branches) scaling = app.octaveScaling } + controls["track" .. name] = Gate { + button = name .. "Track", + description = name .. " Track V/Oct", + branch = branches["track" .. name], + comparator = objects["op" .. name .. "track"], + } + for j, name2 in ipairs(opNames) do controls["phase" .. name .. name2] = GainBias { button = name .. " to " .. name2, @@ -267,26 +289,30 @@ function Xo:onLoadViews(objects,branches) comparator = objects.sync, } - controls.clip = InputGate { - button = "clip", - description = "Clip Detector", - comparator = objects.clip, - } +-- controls.clip = InputGate { +-- button = "clip", +-- description = "Clip Detector", +-- comparator = objects.clip, +-- } return controls, views end local menu = { "title", - "operatorViews", - "changeViewA", - "changeViewB", "changeViews", "changeViewMain", "changeViewOutputs", "changeViewRatios", "changeViewWTable", "changeViewTune", + "changeViewTrack", + "operatorViews", + "changeViewA", + "changeViewB", + "changeViewPMIndex", + "changeViewAIn", + "changeViewBIn", "infoHeader", "rename", "load", @@ -302,7 +328,7 @@ end function Xo:onLoadMenu(objects,branches) local controls = {} - controls.title = MenuHeader { + controls.title = MenuHeader { description = string.format("XO - Firm Handshake") } @@ -320,8 +346,25 @@ end task = function() self:changeView("b") end } + + controls.changeViewPMIndex = MenuHeader { + description = string.format("Phase Modulation Indices:") + } + + controls.changeViewAIn = Task { + description = "@A", + task = function() self:changeView("aIn") end + } + + controls.changeViewBIn = Task { + description = "@B", + task = function() self:changeView("bIn") end + } + + + controls.changeViews = MenuHeader { - description = string.format("Additional Views:") + description = string.format("Aggregate Views:") } controls.changeViewMain = Task { @@ -348,6 +391,11 @@ end description = "freqs", task = function() self:changeView("tune") end } + + controls.changeViewTrack= Task { + description = "track", + task = function() self:changeView("track") end + } return controls, menu end diff --git a/Xoxo.lua b/Xoxo.lua index be867a8..92ccfb6 100644 --- a/Xoxo.lua +++ b/Xoxo.lua @@ -46,10 +46,10 @@ function Xoxo:loadMonoGraph() local level = self:createObject("GainBias","level") local levelRange = self:createObject("MinMax","levelRange") local sync = self:createObject("Comparator","sync") - local clip = self:createObject("Comparator","clip") - sync:setTriggerMode() - clip:setTriggerMode() - clip:hardSet("Threshold",1.0) + -- local clip = self:createObject("Comparator","clip") + -- sync:setTriggerMode() + -- clip:setTriggerMode() + -- clip:hardSet("Threshold",1.0) connect(tune,"Out",tuneRange,"In") connect(f0,"Out",f0Range,"In") @@ -70,6 +70,11 @@ function Xoxo:loadMonoGraph() localDSP["op" .. name .. "tune"] = self:createObject("GainBias","op" .. name .. "tune") localDSP["op" .. name .. "tuneRange"] = self:createObject("MinMax","op" .. name .. "tuneRange") localDSP["op" .. name .. "tuneSum"] = self:createObject("Sum","op" .. name .. "tuneSum") + localDSP["op" .. name .. "track"] = self:createObject("Comparator","op" .. name .. "track") + localDSP["op" .. name .. "trackX"] = self:createObject("Multiply","op" .. name .. "trackX") + localDSP["op" .. name .. "track"]:setToggleMode() + localDSP["op" .. name .. "track"]:optionSet("State",1.0) + connect(localDSP["op" .. name .. "track"],"Out",localDSP["op" .. name .. "trackX"],"Left") connect(localDSP["op" .. name .. "scan"],"Out",localDSP["op" .. name .. "scanRange"],"In") connect(localDSP["op" .. name .. "scan"],"Out",localDSP["op" .. name],"Slice Select") connect(localDSP["op" .. name .. "ratio"],"Out",localDSP["op" .. name .. "ratioX"],"Left") @@ -79,7 +84,8 @@ function Xoxo:loadMonoGraph() connect(localDSP["op" .. name .. "tuneSum"],"Out",localDSP["op" .. name],"Fundamental") connect(localDSP["op" .. name .. "tune"],"Out",localDSP["op" .. name .. "tuneRange"],"In") connect(localDSP["op" .. name .. "ratio"],"Out",localDSP["op" .. name .. "ratioRange"],"In") - connect(tune,"Out",localDSP["op" .. name],"V/Oct") + connect(tune,"Out",localDSP["op" .. name .. "trackX"],"Right") + connect(localDSP["op" .. name .. "trackX"],"Out",localDSP["op" .. name],"V/Oct") connect(sync,"Out",localDSP["op" .. name],"Sync") connect(localDSP["op" .. name],"Out",localDSP["op" .. name .. "outVCA"],"Left") connect(localDSP["op" .. name .. "outLevel"],"Out",localDSP["op" .. name .. "outVCA"],"Right") @@ -109,7 +115,7 @@ function Xoxo:loadMonoGraph() connect(localDSP["phaseXD" .. name],"Out",localDSP["phaseMixer" .. name .. "2"],"Right") connect(localDSP["phaseMixer" .. name .. "1"],"Out",localDSP["phaseMixer" .. name .. "3"],"Left") connect(localDSP["phaseMixer" .. name .. "2"],"Out",localDSP["phaseMixer" .. name .. "3"],"Right") - connect(localDSP["phaseMixer" .. name .. "3"],"Out",localDSP["op" .. name],"Phase") + connect(localDSP["phaseMixer" .. name .. "3"],"Out",localDSP["op" .. name],"Phase") end for i = 1, 3 do @@ -122,10 +128,9 @@ function Xoxo:loadMonoGraph() connect(localDSP["outputMixer1"],"Out",localDSP["outputMixer3"],"Left") connect(localDSP["outputMixer2"],"Out",localDSP["outputMixer3"],"Right") - connect(localDSP["outputMixer3"],"Out",vca,"Right") connect(level,"Out",vca,"Left") - connect(localDSP["outputMixer3"],"Out",clip,"In") + -- connect(localDSP["outputMixer5"],"Out",clip,"In") connect(vca,"Out",self,"Out1") self:createMonoBranch("level",level,"In",level,"Out") @@ -140,6 +145,7 @@ function Xoxo:loadMonoGraph() self:createMonoBranch("outLevel" .. name,localDSP["op" .. name .. "outLevel"],"In",localDSP["op" .. name .. "outLevel"],"Out") self:createMonoBranch("scan" .. name,localDSP["op" .. name .. "scan"],"In",localDSP["op" .. name .. "scan"],"Out") self:createMonoBranch("tune" .. name,localDSP["op" .. name .. "tune"],"In",localDSP["op" .. name .. "tune"],"Out") + self:createMonoBranch("track" .. name,localDSP["op" .. name .. "track"],"In",localDSP["op" .. name .. "track"],"Out") end @@ -151,17 +157,25 @@ function Xoxo:loadStereoGraph() end local views = { - expanded = {"tune","freq","sync","level","clip"}, - outputs = {"outLevelA","outLevelB","outLevelC","outLevelD","outLevelE","outLevelF","clip"}, + expanded = {"tune","freq","sync","level"}, + outputs = {"outLevelA","outLevelB","outLevelC","outLevelD","outLevelE","outLevelF"}, ratios = {"ratioA","ratioB","ratioC","ratioD","ratioE","ratioF"}, scan = {"scanA","scanB","scanC","scanD","scanE","scanF"}, tune = {"tuneA","tuneB","tuneC","tuneD","tuneE","tuneF"}, - a = {"outLevelA","ratioA","scanA","tuneA","phaseAA","phaseAB","phaseAC","phaseAD","phaseAE","phaseAF"}, - b = {"outLevelB","ratioB","scanB","tuneB","phaseBA","phaseBB","phaseBC","phaseBD","phaseBE","phaseBF"}, - c = {"outLevelC","ratioC","scanC","tuneC","phaseCA","phaseCB","phaseCC","phaseCD","phaseCE","phaseCF"}, - d = {"outLevelD","ratioD","scanD","tuneD","phaseDA","phaseDB","phaseDC","phaseDD","phaseDE","phaseDF"}, - e = {"outLevelE","ratioE","scanE","tuneE","phaseEA","phaseEB","phaseEC","phaseED","phaseEE","phaseEF"}, - f = {"outLevelF","ratioF","scanF","tuneF","phaseFA","phaseFB","phaseFC","phaseFD","phaseFE","phaseFF"}, + track = {"trackA","trackB","trackC","trackD","trackE","trackF"}, + a = {"outLevelA","ratioA","scanA","tuneA","phaseAA","phaseAB","phaseAC","phaseAD","phaseAE","phaseAF","trackA"}, + b = {"outLevelB","ratioB","scanB","tuneB","phaseBA","phaseBB","phaseBC","phaseBD","phaseBE","phaseBF","trackB"}, + c = {"outLevelC","ratioC","scanC","tuneC","phaseCA","phaseCB","phaseCC","phaseCD","phaseCE","phaseCF","trackC"}, + d = {"outLevelD","ratioD","scanD","tuneD","phaseDA","phaseDB","phaseDC","phaseDD","phaseDE","phaseDF","trackD"}, + e = {"outLevelE","ratioE","scanE","tuneE","phaseEA","phaseEB","phaseEC","phaseED","phaseEE","phaseEF","trackE"}, + f = {"outLevelF","ratioF","scanF","tuneF","phaseFA","phaseFB","phaseFC","phaseFD","phaseFE","phaseFF","trackF"}, + aIn = {"phaseAA","phaseBA","phaseCA","phaseDA","phaseEA","phaseFA"}, + bIn = {"phaseAB","phaseBB","phaseCB","phaseDB","phaseEB","phaseFB"}, + cIn = {"phaseAC","phaseBC","phaseCC","phaseDC","phaseEC","phaseFC"}, + dIn = {"phaseAD","phaseBD","phaseCD","phaseDD","phaseED","phaseFD"}, + eIn = {"phaseAE","phaseBE","phaseCE","phaseDE","phaseEE","phaseFE"}, + fIn = {"phaseAF","phaseBF","phaseCF","phaseDF","phaseEF","phaseFF"}, + phaseAA = {"scope","phaseAA"}, collapsed = {}, } @@ -223,6 +237,13 @@ function Xoxo:onLoadViews(objects,branches) scaling = app.octaveScaling } + controls["track" .. name] = Gate { + button = name .. "Track", + description = name .. " Track V/Oct", + branch = branches["track" .. name], + comparator = objects["op" .. name .. "track"], + } + for j, name2 in ipairs(opNames) do controls["phase" .. name .. name2] = GainBias { button = name .. " to " .. name2, @@ -276,28 +297,34 @@ function Xoxo:onLoadViews(objects,branches) comparator = objects.sync, } - controls.clip = InputGate { - button = "clip", - description = "Clip Detector", - comparator = objects.clip, - } +-- controls.clip = InputGate { +-- button = "clip", +-- description = "Clip Detector", +-- comparator = objects.clip, +-- } return controls, views end local menu = { "title", - "operatorViews", - "changeViewA", - "changeViewB", - "changeViewC", - "changeViewD", "changeViews", "changeViewMain", "changeViewOutputs", "changeViewRatios", "changeViewWTable", "changeViewTune", + "changeViewTrack", + "operatorViews", + "changeViewA", + "changeViewB", + "changeViewC", + "changeViewD", + "changeViewPMIndex", + "changeViewAIn", + "changeViewBIn", + "changeViewCIn", + "changeViewDIn", "infoHeader", "rename", "load", @@ -341,8 +368,32 @@ end task = function() self:changeView("d") end } + controls.changeViewPMIndex = MenuHeader { + description = string.format("Phase Modulation Indices:") + } + + controls.changeViewAIn = Task { + description = "@A", + task = function() self:changeView("aIn") end + } + + controls.changeViewBIn = Task { + description = "@B", + task = function() self:changeView("bIn") end + } + + controls.changeViewCIn = Task { + description = "@C", + task = function() self:changeView("cIn") end + } + + controls.changeViewDIn = Task { + description = "@D", + task = function() self:changeView("dIn") end + } + controls.changeViews = MenuHeader { - description = string.format("Additional Views:") + description = string.format("Aggregate Views:") } controls.changeViewMain = Task { @@ -369,6 +420,11 @@ end description = "freqs", task = function() self:changeView("tune") end } + + controls.changeViewTrack= Task { + description = "track", + task = function() self:changeView("track") end + } return controls, menu end diff --git a/Xoxoxo.lua b/Xoxoxo.lua index c7dfe6e..59f838b 100644 --- a/Xoxoxo.lua +++ b/Xoxoxo.lua @@ -46,10 +46,10 @@ function Xoxoxo:loadMonoGraph() local level = self:createObject("GainBias","level") local levelRange = self:createObject("MinMax","levelRange") local sync = self:createObject("Comparator","sync") - local clip = self:createObject("Comparator","clip") - sync:setTriggerMode() - clip:setTriggerMode() - clip:hardSet("Threshold",1.0) + -- local clip = self:createObject("Comparator","clip") + -- sync:setTriggerMode() + -- clip:setTriggerMode() + -- clip:hardSet("Threshold",1.0) connect(tune,"Out",tuneRange,"In") connect(f0,"Out",f0Range,"In") @@ -138,7 +138,7 @@ function Xoxoxo:loadMonoGraph() connect(localDSP["outputMixer5"],"Out",vca,"Right") connect(level,"Out",vca,"Left") - connect(localDSP["outputMixer5"],"Out",clip,"In") + -- connect(localDSP["outputMixer5"],"Out",clip,"In") connect(vca,"Out",self,"Out1") self:createMonoBranch("level",level,"In",level,"Out") @@ -165,17 +165,25 @@ function Xoxoxo:loadStereoGraph() end local views = { - expanded = {"tune","freq","sync","level","clip"}, - outputs = {"outLevelA","outLevelB","outLevelC","outLevelD","outLevelE","outLevelF","clip"}, + expanded = {"tune","freq","sync","level"}, + outputs = {"outLevelA","outLevelB","outLevelC","outLevelD","outLevelE","outLevelF"}, ratios = {"ratioA","ratioB","ratioC","ratioD","ratioE","ratioF"}, scan = {"scanA","scanB","scanC","scanD","scanE","scanF"}, tune = {"tuneA","tuneB","tuneC","tuneD","tuneE","tuneF"}, + track = {"trackA","trackB","trackC","trackD","trackE","trackF"}, a = {"outLevelA","ratioA","scanA","tuneA","phaseAA","phaseAB","phaseAC","phaseAD","phaseAE","phaseAF","trackA"}, b = {"outLevelB","ratioB","scanB","tuneB","phaseBA","phaseBB","phaseBC","phaseBD","phaseBE","phaseBF","trackB"}, c = {"outLevelC","ratioC","scanC","tuneC","phaseCA","phaseCB","phaseCC","phaseCD","phaseCE","phaseCF","trackC"}, d = {"outLevelD","ratioD","scanD","tuneD","phaseDA","phaseDB","phaseDC","phaseDD","phaseDE","phaseDF","trackD"}, e = {"outLevelE","ratioE","scanE","tuneE","phaseEA","phaseEB","phaseEC","phaseED","phaseEE","phaseEF","trackE"}, f = {"outLevelF","ratioF","scanF","tuneF","phaseFA","phaseFB","phaseFC","phaseFD","phaseFE","phaseFF","trackF"}, + aIn = {"phaseAA","phaseBA","phaseCA","phaseDA","phaseEA","phaseFA"}, + bIn = {"phaseAB","phaseBB","phaseCB","phaseDB","phaseEB","phaseFB"}, + cIn = {"phaseAC","phaseBC","phaseCC","phaseDC","phaseEC","phaseFC"}, + dIn = {"phaseAD","phaseBD","phaseCD","phaseDD","phaseED","phaseFD"}, + eIn = {"phaseAE","phaseBE","phaseCE","phaseDE","phaseEE","phaseFE"}, + fIn = {"phaseAF","phaseBF","phaseCF","phaseDF","phaseEF","phaseFF"}, + phaseAA = {"scope","phaseAA"}, collapsed = {}, } @@ -297,17 +305,24 @@ function Xoxoxo:onLoadViews(objects,branches) comparator = objects.sync, } - controls.clip = InputGate { - button = "clip", - description = "Clip Detector", - comparator = objects.clip, - } +-- controls.clip = InputGate { +-- button = "clip", +-- description = "Clip Detector", +-- comparator = objects.clip, +-- } return controls, views end local menu = { "title", + "changeViews", + "changeViewMain", + "changeViewOutputs", + "changeViewRatios", + "changeViewWTable", + "changeViewTune", + "changeViewTrack", "operatorViews", "changeViewA", "changeViewB", @@ -315,12 +330,13 @@ local menu = { "changeViewD", "changeViewE", "changeViewF", - "changeViews", - "changeViewMain", - "changeViewOutputs", - "changeViewRatios", - "changeViewWTable", - "changeViewTune", + "changeViewPMIndex", + "changeViewAIn", + "changeViewBIn", + "changeViewCIn", + "changeViewDIn", + "changeViewEIn", + "changeViewFIn", "infoHeader", "rename", "load", @@ -374,8 +390,42 @@ end task = function() self:changeView("f") end } + controls.changeViewPMIndex = MenuHeader { + description = string.format("Phase Modulation Indices:") + } + + controls.changeViewAIn = Task { + description = "@A", + task = function() self:changeView("aIn") end + } + + controls.changeViewBIn = Task { + description = "@B", + task = function() self:changeView("bIn") end + } + + controls.changeViewCIn = Task { + description = "@C", + task = function() self:changeView("cIn") end + } + + controls.changeViewDIn = Task { + description = "@D", + task = function() self:changeView("dIn") end + } + + controls.changeViewEIn = Task { + description = "@E", + task = function() self:changeView("eIn") end + } + + controls.changeViewFIn = Task { + description = "@F", + task = function() self:changeView("fIn") end + } + controls.changeViews = MenuHeader { - description = string.format("Additional Views:") + description = string.format("Aggregate Views:") } controls.changeViewMain = Task { @@ -402,6 +452,11 @@ end description = "freqs", task = function() self:changeView("tune") end } + + controls.changeViewTrack= Task { + description = "track", + task = function() self:changeView("track") end + } return controls, menu end diff --git a/changelog.log b/changelog.log index 348f3a0..d037a41 100644 --- a/changelog.log +++ b/changelog.log @@ -1,3 +1,6 @@ +2019-09-23 Accents v0.4.25.3 +ENHANCED: Various tweaks to XO synths. See forum for details. + 2019-09-22 Accents v0.4.25.2 ENHANCED: Added xTrack control to each operator in XOXOXO. This disables V/Oct tracking for that operator.