Birch-san / juicysfplugin

Audio plugin (e.g. VST, AU) to play soundfonts on macOS, Windows, Linux
GNU General Public License v3.0
209 stars 27 forks source link

Slide... (and porta mento) #16

Closed KJinx101 closed 4 years ago

KJinx101 commented 4 years ago

This plug-in has been serving me very well! It's been working better than the legacy soundfont player that it's basically replacing in FL! I opened up an old 8-bit project and realized that I utilized that a lot using FL's native features. Slide and portamento namely. I can't explain that well so, here is a video that basically shows the functionality, though you may already be familiar https://www.youtube.com/watch?v=E9Z6T5qdFP0

Since FL handles the slide and porta mento itself, outside plugins need to have their own ways and I think I might have an idea of what could work

For this, I really like how a plug in called 'Mini Erhu' handles it image That poly button to the left switches the mono/poly mode of course, but while in mono mode, notes that are triggered while another note is playing pitch-shift the sample. the portamento is basically controlled by that glide knob (which can be automated). It basically pitch-shifts the sample that is currently being played to the next triggered notes pitch at a given speed (that the knob is turned to).

Since portamento is a standard speed, I guess that would be like having the knob at a very low value, and the slide is almost like having an automated knob... so I guess both are covered.

If you come back to this, I hope this would not be too troublesome to consider! Thanks a lot for your work!

bahburah commented 4 years ago

I second this.

This plugin is almost perfect. The sound quality is amazing and it has ADSR.

If only there was a pitch shift option to automate at the very least

KJinx101 commented 4 years ago

There actually is a pitch-shift (bend) already that works with your DAW's native pitch wheel mapping (Like if you have a midi keyboard) and it can be automated.

Automating a glide like that would be pretty tedious though

Birch-san commented 4 years ago

@KJinx101 What you show in the YouTube video looks pretty cool, but I think the underlying synthesizer (fluidsynth) doesn't expose any easy way to do that. Their APIs expose a portamento "mode", but that's basically "on or off". If it is possible, then I expect it'd be through individual voice control. I don't want to go as far as maintaining the state of a voice and tracking changes myself; I want to leave the heavy lifting to fluidsynth.

Your suggestion of automating a glide knob to change the speed of portamento... maybe we can do that already? I pass every MIDI CC event on to FluidSynth. They do support portamento.

http://www.nortonmusic.com/midi_cc.html

I think you could try sending a CC 65 to enable portamento (assuming it's not on by default), and then automate MIDI CC 5 Portamento Time -- that sounds like it's for changing portamento speed (same as the "glide" knob).

@bahburah pitch shift is supported; we accept the standard MIDI Pitch Bend Event. but yeah, it'd be hard to implement glide with that.

KJinx101 commented 4 years ago

Ah, I see! Didn't realize fluid already may support that. I think I'll be able to test this out using patcher and the midi out using FL. Thanks

KJinx101 commented 4 years ago

It works like a charm! Seems like on/off can be turned on at 100% including mono. I just used something (fl color mapper) to map the channels for poly, mono, "porta," and "slide" [to automate] and then used a few instances of another plug in called midi polysher to send the CC's with the buttons in patcher. Now I basically have all of the same functionality.

Birch-san commented 4 years ago

Amazing! glad it turned out to be possible. :)