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

Fst parameter automation #13

Closed
wants to merge 6 commits into from

Conversation

ZonderP
Copy link
Contributor

@ZonderP ZonderP commented May 16, 2023

Contains both VST banks as well as draft for parameter automation.
All current 'regular' parameters are automatable.
To be rejected after testing / playing around with it.

Note:
In case you want to use energyXT for trying out...
The new 64 bit beta EXT64 doesn't seem to properly support MIDI CC yet.
Thus I had to build a Windows 32 bit version of js80p to try it out together with MIDI CC recording in energyXT3 32 bit.
(The demo version of it can be downloaded here: https://www.xtsware.com/)
It is possible though to manually create automation of parameters in EXT64.

…ng of ROOT_DIR for location of 'mingw32-make.exe')
…t sequence of automatable parameters can be presented to the user.

Though - note that also such a different ordering MUST NOT be changed in the future!
Conflict in build.bat was resolved by just using 'mine'.
Conflict in src/synth.hpp was resolved by manually doing the appropriate change and some arising compile errors resulting from a now bigger amount of Int Parameters got fixed by adding some additional code.
@attilammagyar
Copy link
Owner

FYI: I cherry-picked your Windows build improvements (with one or two slight modifications), and the parameter automation that I've talked about (#7) is almost complete on the dev-params branch: 960c735 .

(This approach also has the additional benefit of getting the automated parameters smoothed for free.)

@ZonderP
Copy link
Contributor Author

ZonderP commented Jun 1, 2023

Windows build improvements - Cool!
I really had some troubles at the beginning to make this work, since I'm not really familiar with the make approach.
Still - at least for me - I have the problem, that as it is written currently in the makefile, that build and dist directories cannot be created automatically on Windows and strange error messages appear. I always have to first create the directory structure manually.

@attilammagyar
Copy link
Owner

LoL, Wine (a Windows-compatibility layer which allows can run Windows applications on Linux and other systems by translating the Windows API calls) tricked me by allowing both forward slashes and backslashes as a directory separator for the mkdir command, but it turns out that mkdir on a real Windows is only happy with the backslash.

Thanks for pointing it out, it's fixed in 6517121

@ZonderP ZonderP deleted the FST-ParameterAutomation branch June 3, 2023 19:11
@ZonderP
Copy link
Contributor Author

ZonderP commented Jun 4, 2023

The new 64 bit beta EXT64 doesn't seem to properly support MIDI CC yet.

Hmmm, just found out, that MIDI Learn for other FST's works in EXT64 beta - tested with 'SurgeXT' and 'blooo' (by 'full bucket music'). But it does not so for js80p 64 bit (1.4.0 or newest from main branch).
Strange - especially as js80p's MIDI learn works for the 32 bit version in (old) 32 bit energyXT...
Just tested with newest 64 bit build from main branch in Bitwig and there it also works.
Seems current implementation relies on something provided by the host which might or might not be there....

@attilammagyar
Copy link
Owner

Seems current implementation relies on something provided by the host which might or might not be there....

I don't think there's anything in MIDI Learn which would depend on the CPU architecture. Also, the feature works perfectly in Reaper on both Windows and Linux, and it kinda-sorta worked in FL Studio as well.

Well, apparently FL Studio swallows MIDI CC messages (except for the modulation wheel's CC 1), and the only way to get them to work is to manually assign the CC numbers to exported parameters. Basically they're doing the VST3 way of MIDI CC handling in VST2, just slightly worse.

JS80P 1.4 only implements MIDI Learn for actual MIDI CC messages, but since it's broken in hosts which prefer needless complications like this, I had to also make it work with these MIDI CC proxy parameters.

Long story short, if you are sure that the CC messages aren't swallowed by the host, then the only possibility I can think of is that your MIDI keyboard is configured to send CC numbers which are not supposed to be interpreted as 0-127 numbers, e.g. which are associated with on/off switches (64-69), or represent the LSB half of 14 bit controller messages (32-63), etc.

@ZonderP
Copy link
Contributor Author

ZonderP commented Jun 5, 2023

Good news!
Seems one of your latest changes (maybe the one to solve the issue in FruityLoops) also solved the MIDI Learn problem in EXT64.
I was about to write something different here, but then thought I better verify and be more detailed and specific about what I wanted to write.
Thus I tried again with the 'dev' version I had pulled and built some days ago from your main branch of your repo and MIDI Learn (still) didn't work with that version in EXT64.
But it worked with official 1.4 version! (In contrast to what I wrote above! - sorry!)
Thus I then thought 'let's see what happens with newest pull from main' - and voilá: MIDI Learn now works (again) also in EXT64.

Not sure, what 'intermediate' dev version I built and used before, but now all is good!

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

Successfully merging this pull request may close these issues.

2 participants