Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Persist more Dexed parameters in per-instance state #403

Open
probonopd opened this issue Dec 20, 2023 · 2 comments
Open

Persist more Dexed parameters in per-instance state #403

probonopd opened this issue Dec 20, 2023 · 2 comments

Comments

@probonopd
Copy link

probonopd commented Dec 20, 2023

Trying to recreate TX816-style performances by combining multiple Dexed instances in the DAW, I am running into the issue that some of these parameters seemingly are only persisted across all instances of Dexed (in C:\Users\%USERNAME%\AppData\Roaming\DigitalSuburban\Dexed\Dexed.xml), whereas the TX816 requires some of these parameters to be different across the 8 tone generators:

  <VALUE name="normalizeDxVelocity" val="0"/>
  <VALUE name="pitchRange" val="0"/>
  <VALUE name="pitchRangeUp" val="0"/>
  <VALUE name="pitchRangeDn" val="1"/>
  <VALUE name="pitchStep" val="0"/>
  <VALUE name="sysexIn" val=""/>
  <VALUE name="sysexOut" val=""/>
  <VALUE name="sysexChl" val="0"/>
  <VALUE name="showKeyboard" val="1"/>
  <VALUE name="wheelMod" val="0 0 0 0"/>
  <VALUE name="footMod" val="0 0 0 0"/>
  <VALUE name="breathMod" val="0 0 0 0"/>
  <VALUE name="aftertouchMod" val="0 0 0 0"/>
  <VALUE name="engineType" val="1"/>
  <VALUE name="dpiScaleFactor" val="1.0"/>

Specifically:

  • pitchRangeUp
  • pitchRangeDn
  • pitchStep
  • wheelMod (is already persisted per instance via PluginData.cpp)
  • footMod (is already persisted per instance via PluginData.cpp)
  • breathMod (is already persisted per instance via PluginData.cpp)
  • aftertouchMod (is already persisted per instance via PluginData.cpp)

Likely the missing ones would need to be added to DexedAudioProcessor::getStateInformation() before

dexedState.setAttribute("engineType", (int) engineType);
for saving the per-instance state,

and to DexedAudioProcessor::setStateInformation()

setEngineType(root->getIntAttribute("engineType", 1));
for applying the per-instance state.

@probonopd probonopd changed the title Persist all Dexed parameters in per-instance state Persist more Dexed parameters in per-instance state Dec 20, 2023
@probonopd
Copy link
Author

probonopd commented Dec 20, 2023

My attempt at implementing this: probonopd#1

Running into

dexed/Source/PluginData.cpp:332:57: error: ‘class Controllers’ has no member named ‘pitchRangeUp’

Apparently https://github.com/asb2m10/dexed/blob/master/Source/msfa/controllers.h needs to be changed but I don't know how.

Any help appreciated.

@probonopd
Copy link
Author

probonopd commented Jan 5, 2024

The DX7II ACED (per-voice additional parameters) format (documented on page "Add-9" of the DX7II manual) contains, among other similar parameters, pbr = 2 # 0 .. 12 # Pitch bend range. So these things should clearly be possible to persist per voice if we want to have DX7II like configurability.

(It appears that some parameters defined in ACED cannot be configured in Dexed so far at all, though - which is partly covered by #165.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants