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

VST3-Win: MIDI control issues #26

Closed
funkaloss opened this issue Oct 3, 2018 · 19 comments
Closed

VST3-Win: MIDI control issues #26

funkaloss opened this issue Oct 3, 2018 · 19 comments
Labels
VST3 VST3 plugin related issues
Milestone

Comments

@funkaloss
Copy link

I discovered this gem when it became open source, and now I'm exploring it.

I can't seem to control Surge with my Nektar controller. The pitch of the keyboard works fine but nothing else: not velocity, pitch bend, mod wheel or any other fader or knob.

@cyanit
Copy link

cyanit commented Oct 5, 2018

What OS do you use, what daw do you use, do you use the VST2 or VST3 version, which version of surge is used?

@funkaloss
Copy link
Author

funkaloss commented Oct 5, 2018 via email

@cyanit
Copy link

cyanit commented Oct 5, 2018

I just tested it and can confirm that this issue is present on my setup when Surge v1.6.0b3 is loaded as VST3. However, the VST2 version works fine.

- Test 1 - (Issue occuring)
Windows 10
Bitwig Studio v2.4
Surge v1.6.0b3, VST3
(Alesis Hardware Controller sending CC)

- Test 2 - (Issue occuring)
Windows 10
Bitwig Studio v2.4
Surge v1.6.0b3, VST3
(Bitwig Studio generating and sending CC)

- Test 3 - (Issue NOT occuring)
Windows 10
Bitwig Studio v2.4
Surge v1.6.0b3, VST2
(Alesis Hardware Controller sending CC)

Workaround
If you still want to use the VST3 version with the expressions / mod- & pitchbendwheel, modulate the parameters via your daws VST-Parameter control page.
surgeworkaround

@funkaloss
Copy link
Author

funkaloss commented Oct 5, 2018 via email

@vetramiga
Copy link

vetramiga commented Oct 18, 2018

thank god, i went all over the place looking for drivers and that. being this is the only VST i had installed on a new machine... so can also confirm the whole pitch bend / mod wheel data isn't getting to this. i finally installed another free one and it pitchbent just fine...

that being said, this is basically my favorite synth plugin, and i was well excited to see it come back for x64 finally! i can't use it in osx/logic anymore as it refuses 32bit plugs =(

win 10
1.6.0b3 VST3
reaper 5.95
umx49 controller (usb in)

@cyanit
Copy link

cyanit commented Oct 18, 2018

thank god, i went all over the place looking for drivers and that. being this is the only VST i had installed on a new machine... so can also confirm the whole pitch bend / mod wheel data isn't getting to this. i finally installed another free one and it pitchbent just fine...

that being said, this is basically my favorite synth plugin, and i was well excited to see it come back for x64 finally! i can't use it in osx/logic anymore as it refuses 32bit plugs =(

win 10
1.6.0b3 VST3
reaper 5.95
umx49 controller (usb in)

As stated in my post above, the VST 2 version works fine! Its just the VST3 version that has these hickups.

@esaruoho
Copy link
Collaborator

esaruoho commented Dec 20, 2018

please, could you change the title of this from MIDI control problems to like VST3-Win: MIDI control issues @funkaloss
:)
easier to troubleshoot.

@funkaloss funkaloss changed the title MIDI control problems VST3-Win: MIDI control issues Dec 20, 2018
@funkaloss
Copy link
Author

funkaloss commented Dec 20, 2018

Done!

@esaruoho
Copy link
Collaborator

esaruoho commented Jan 8, 2019

btw, is this issue still happening for you guys? @funkaloss @cyanit -- talking about 8th January 2019 build..
@vetramiga

@esaruoho esaruoho added VST3 VST3 plugin related issues and removed VST3 VST3 plugin related issues labels Jan 29, 2019
@baconpaul baconpaul added this to the 1.6.0 milestone Feb 28, 2019
@bit-101010
Copy link

I'm experiencing it on the Feb. 28th nightly build. VST2 works as expected, VST3 doesn't recieve pitch (and I'm assuming other MIDI data as well.

@baconpaul
Copy link
Collaborator

Thanks @bit-101010

And: Makes sense - we haven’t fixed it yet! But we plan on doing so.

Don’t suppose you have some asset like a bitwig file which shows the difference do you? That would help

@bit-101010
Copy link

I don't have Bitwig, the best I could do is REAPER. I'll conjure up something if that works for you. If not, I can ask some friendly local bitwig users.

@baconpaul
Copy link
Collaborator

Sure I can try in reaper. Or just a bit more clarity on "how you show it broken" would be helpful! Thank you for anything you can share.

@bit-101010
Copy link

I will get on it!

@bit-101010
Copy link

This is the Reaper File as well as the rendered audio. The first measure uses the modwheel to change the wave shape (of the sawtooth), the next measure uses a +/- 24 semitone pitchbend. These are both audible on the VST2 plugin. Afterwards, the same modulations are applied to the VST3 plugin, and no noticeable changes arise.
Surge_VST3_Win_MIDITest.zip

@baconpaul
Copy link
Collaborator

Thank you very much!

@baconpaul
Copy link
Collaborator

Also - just so you aren't disappointed - our list is a bit long. We will get to this before 1.6.0 but it may not be a few weeks. The zip file will stay here though ready for us to debug and is super useful!

baconpaul added a commit to baconpaul/surge that referenced this issue Mar 4, 2019
In VST3 NoteOnEvent::velocity is a float between 0 and 1.
Why? Who knows. But in every other midi thing it is a
char between 0 and 127. So when passed to surge directly
in VST3 it doesn't work. This change simply multiplies the velocity
and casts it to a char.

addresses parts of issues surge-synthesizer#389 and surge-synthesizer#26 but not all of them
baconpaul added a commit to baconpaul/surge that referenced this issue Mar 4, 2019
In VST3 NoteOnEvent::velocity is a float between 0 and 1.
Why? Who knows. But in every other midi thing it is a
char between 0 and 127. So when passed to surge directly
in VST3 it doesn't work. This change simply multiplies the velocity
and casts it to a char.

addresses parts of issues surge-synthesizer#389 and surge-synthesizer#26 but not all of them
@baconpaul baconpaul mentioned this issue Mar 4, 2019
@baconpaul
Copy link
Collaborator

Yeah OK so I see why this is happening. none of the code exists! Like other than note on, note off, and poly pressure, the whole shebang is ignored in the vst3.

I just fixed up velocity but the 'tuning' in the same spot is a float-vs-char, the mod wheel and all controls are ignored, etc...

basically it looks like the vst3 host is half written in this regard. So it's a good clean thing to fix one day.

baconpaul added a commit that referenced this issue Mar 4, 2019
In VST3 NoteOnEvent::velocity is a float between 0 and 1.
Why? Who knows. But in every other midi thing it is a
char between 0 and 127. So when passed to surge directly
in VST3 it doesn't work. This change simply multiplies the velocity
and casts it to a char.

addresses parts of issues #389 and #26 but not all of them
baconpaul added a commit to baconpaul/surge that referenced this issue Mar 10, 2019
This commit implements the core non-MPE VST3 features which were missing
on mac and windows.

* Parameter names are long names in VST3 and were swprintfed as such
  even though they are non-wchar in surge internals
* Parameter changes in VST3 flow to the UI and adjust widgets
* Bound parameters in the DAW are named correctly
* Midi controllers and pitch bend are captured and sent to surge
* Unicode support is corrected for systems where wchar_t != char16
  (like mac)

Closes surge-synthesizer#766 VST3 names not correct when learning
Closes surge-synthesizer#752 VST3 Automation in Bitwig
Closes surge-synthesizer#26 VST3-Win MIDI Control Issues
baconpaul added a commit to baconpaul/surge that referenced this issue Mar 11, 2019
This commit implements the core non-MPE VST3 features which were missing
on mac and windows.

* Parameter names are long names in VST3 and were swprintfed as such
  even though they are non-wchar in surge internals
* Parameter changes in VST3 flow to the UI and adjust widgets
* Bound parameters in the DAW are named correctly
* Midi controllers and pitch bend are captured and sent to surge
* Unicode support is corrected for systems where wchar_t != char16
  (like mac) while still working on Windows, albeit in a somewhat
  clumsy fashion
* Handle oddities around call type allow the plugin to also work
  32 and 64 bit windows (Although demand for 32 bit VST3 seems
  more a formality than practicality, it does work)

Closes surge-synthesizer#766 VST3 names not correct when learning
Closes surge-synthesizer#752 VST3 Automation in Bitwig
Closes surge-synthesizer#26 VST3-Win MIDI Control Issues
baconpaul added a commit that referenced this issue Mar 11, 2019
This commit implements the core non-MPE VST3 features which were missing
on mac and windows.

* Parameter names are long names in VST3 and were swprintfed as such
  even though they are non-wchar in surge internals
* Parameter changes in VST3 flow to the UI and adjust widgets
* Bound parameters in the DAW are named correctly
* Midi controllers and pitch bend are captured and sent to surge
* Unicode support is corrected for systems where wchar_t != char16
  (like mac) while still working on Windows, albeit in a somewhat
  clumsy fashion
* Handle oddities around call type allow the plugin to also work
  32 and 64 bit windows (Although demand for 32 bit VST3 seems
  more a formality than practicality, it does work)

Closes #766 VST3 names not correct when learning
Closes #752 VST3 Automation in Bitwig
Closes #26 VST3-Win MIDI Control Issues
@baconpaul
Copy link
Collaborator

Hi everyone

I just pushed a change to the VST3 host which supports controllers, pitch bend, modulation, and also allows DAW automation to have the correct labels and behavior and interact cleanly with the GUI.

The nightly should be rebuilt within an hour. If you want to try the nightly anytime after about 9:30am NYC time today and provide feedback if there are other VST3 bugs that would be great.

I tested extensively in bitwig and didn’t find a differences between the VST3 and VST2; I don’t have other hosts as readily available for VST3 though so testing welcome.

Either feel free to reopen this ticket if you find a bug or open a new one or let us know on slack.

Thanks!

baconpaul added a commit to baconpaul/surge that referenced this issue Jul 10, 2019
In VST3 NoteOnEvent::velocity is a float between 0 and 1.
Why? Who knows. But in every other midi thing it is a
char between 0 and 127. So when passed to surge directly
in VST3 it doesn't work. This change simply multiplies the velocity
and casts it to a char.

addresses parts of issues surge-synthesizer#389 and surge-synthesizer#26 but not all of them

Former-commit-id: 94cc9ba43b99a81e231e45611210f9deca59a1db [formerly 38145e5]
Former-commit-id: 5cc46364801412b4164f0a0e93ae8002e3d47715
Former-commit-id: d0cd176b508398c7a21cb0607c83768606364f05
baconpaul added a commit to baconpaul/surge that referenced this issue Jul 10, 2019
This commit implements the core non-MPE VST3 features which were missing
on mac and windows.

* Parameter names are long names in VST3 and were swprintfed as such
  even though they are non-wchar in surge internals
* Parameter changes in VST3 flow to the UI and adjust widgets
* Bound parameters in the DAW are named correctly
* Midi controllers and pitch bend are captured and sent to surge
* Unicode support is corrected for systems where wchar_t != char16
  (like mac) while still working on Windows, albeit in a somewhat
  clumsy fashion
* Handle oddities around call type allow the plugin to also work
  32 and 64 bit windows (Although demand for 32 bit VST3 seems
  more a formality than practicality, it does work)

Closes surge-synthesizer#766 VST3 names not correct when learning
Closes surge-synthesizer#752 VST3 Automation in Bitwig
Closes surge-synthesizer#26 VST3-Win MIDI Control Issues

Former-commit-id: b3221642eea1a25e891b1ca35963ad88dad02f00 [formerly 97d1366]
Former-commit-id: 800f3f331fd31395ec96148e296f9154ee835761
Former-commit-id: b5c26e2c53dacfc4bf4489f77090ab4476b761c7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
VST3 VST3 plugin related issues
Projects
None yet
Development

No branches or pull requests

6 participants