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

[FEATURE] MIDI Velocity support #40

Open
DeerTears opened this issue Oct 22, 2022 · 5 comments
Open

[FEATURE] MIDI Velocity support #40

DeerTears opened this issue Oct 22, 2022 · 5 comments
Assignees
Labels
dsp Related to the plugin signal processing enhancement New feature or request

Comments

@DeerTears
Copy link

Is your feature request related to a problem? Please describe.
As a drummer I use velocity a ton when sequencing my electronic drum tracks. I love giving accented notes to double kicks, fake echoing "ghost" notes, or making a kick drum roll into the next downbeat. It's just ways that I like to make electronic sounds have more personality. I use this all the time with my DAW's native sampler and other instrument VSTs.

The problem is that I love Chowkick's analog versatility when automated, but it doesn't seem to respond to velocity at all. I'd rather not render out a kick from Chowkick every time I want to use velocity in my sequences, especially since I like tweaking the parameters during playback, or just while producing.

Describe the solution you'd like
To input midi notes with different velocities (0-255) and get an equivalent volume level (0%-100%).

Additional context
Windows 10, FL Studio 20.9 64bit
Chowkick 1.1.0 VST3

Love this VST and your other projects by the way. Outstanding work all around. 😊

@DeerTears DeerTears added the enhancement New feature or request label Oct 22, 2022
@jatinchowdhury18
Copy link
Contributor

Thanks for the detailed feature request! Velocity sensitivity is actually something I was thinking about in moving towards a next release of ChowKick.

The synthesis mechanism in ChowKick works basically as follows: when the plugin receives a MIDI "Note On" message, the plugin generates a little "pulse" which goes through a "pulse shaping" algorithm, and then hits a "resonant filter" resulting in the eventual sound that you hear (a similar approach is used by many voices in the TR-808 and other analog drum machines). Currently, the pulse has a width and amplitude determined by the parameters in that section of the plugin.

Probably the most sensible way to add some velocity sensitivity would be to multiply the pulse amplitude by some value depending on the velocity of the incoming MIDI message. The code describing that part of the algorithm is all right here if you're interested in hacking on it, otherwise I can take a look at it in the coming weeks.

@jatinchowdhury18 jatinchowdhury18 added the dsp Related to the plugin signal processing label Oct 22, 2022
@jatinchowdhury18
Copy link
Contributor

Hey, sorry it's taken me so long to get back to this! I've just opened #47, which adds a parameter to turn on a "velocity sensitive" mode. I think the parameter should be on by default, but I had to make some changes to make sure that patches saved with older versions of the plugin are not affected by that decision.

Anyway, after that PR is merged, you can try it out either with the nightly builds or by building from source. I wouldn't be surprised if the implementation might need some tweaks in order to make the best musical use of the velocity range.

@xparq
Copy link

xparq commented Jan 9, 2023

Hey, @jatinchowdhury18, thank you! ChowKick has now become an actually useful plugin. 👍

I think the parameter should be on by default,

Yep. (Currently it's off, in 1.1.2 ("nightly").)
Probably it should also be on the main screen (below the output level slider, if you could make space for it; just "Vel." could do. (BTW, you could decrease the font size if needed -- or, better yet, an option for that (font size) could go to Settings, instead of having the sound synth. parameter of vel. sense there.)

@jatinchowdhury18
Copy link
Contributor

Yep. (Currently it's off, in 1.1.2 ("nightly").)

Was this loading an instance of ChowKick from a previously saved session or loading a new instance? For sessions that were saved with previous versions of ChowKick, the velocity sensitivity parameter will be turned off. This is necessary since otherwise updating the plugin could drastically change the sound of someone's project. For new instances of the plugin, the velocity sensitivity parameter should be on by default, which has been working correctly in my testing, but obviously there could be something I've missed.

Yeah, having that option on the main screen could be cool. I'm going to need to re-work some layout things anyway, so I'll try it out then.

I'm not sure how feasible it would be to have a setting for the font sizes, but I am planning to work on improving the way the font scales with the overall UI size.

@xparq
Copy link

xparq commented Jan 10, 2023

Oh, yes, thanks for the clarification, it was indeed a "legacy" session.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dsp Related to the plugin signal processing enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants