kockie69 / SquinkyVCV-main

GNU General Public License v3.0
22 stars 12 forks source link

Feature Request: Unlock Ratios on Kitchen Sink #35

Closed mosesve closed 2 years ago

mosesve commented 2 years ago

Hi there,

thanks for porting this great modules over to V2.

I had two open feature requests regarding the KitchenSink over on Squinkys github. Maybe you find the time to have a look at them.

The KitchenSink is my favorite FM-Operator when it comes to CPU-Usage and has some nice features over the other modules out there. But the controls for pitch are not very FM-conform, which makes it hard to dial in a 0.75-Ratio for example. I would suggest to combine octave and ratio into one button with a non-fixed ratio range from 0 - 16. In the moment it is 1-16 with fixed integer-values as ratios. Maybe with an option in the menu to set the "stepping" [off, 0.25, 1]. In addition it would be really awesome when the ratio had an independent CV-Input.

Thanks,

kockie69 commented 2 years ago

Thank you for the suggestion I will have to look at the code to see what is achievable. I will keep you updated here.

tanabarbier commented 2 years ago

Hi I don't know if commenting here is OK, but I wanted to add that I like this idea very much. The possibility to modulate stepped ratios and the possibility to use non integers ratios by typing them would be killer (for instance typing 1.414 is something I would love to do !). Also CV for PM depth and CV for level would be killer, to use it in drone mode. I love the LFM sync and shape possibilities, very cool features on a PM OP, thank you !

kockie69 commented 2 years ago

Are you both available for testing and giving feedback? I start working on it now, so expect to have something available coming days.

tanabarbier commented 2 years ago

Hi ! Absolutely. I am on OSX 10.15.7, ready and willing to help !

Le ven. 31 déc. 2021 à 09:58, kockie69 @.***> a écrit :

Are you both available for testing and giving feedback? I start working on it now, so expect to have something available coming days.

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003313716, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWIWIKFGD6HLTRQKG2DUTVWEVANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

kockie69 commented 2 years ago

Ok, so I have to keep backwards compatibility in mind, as people have old patches that I don't want to break. So I think we need some config options in the menu to not break old patches. So can/will we keep the two knobs, Octave and ratio? Will we make ratio configurable going from 0-16 or 1-16? Or should we create a new (enhanced) Kitchen Sink? Maybe I don't fully understand 'I would suggest to combine octave and ratio into one button with a non-fixed ratio range from 0 - 16. In the moment it is 1-16 with fixed integer-values as ratios. ' Let me know your thoughts

tanabarbier commented 2 years ago

Maybe a new Kitchen sink makes more sense for backward compatibility indeed. I would also love to see it having a 0 ratio option, because 0Hz carrier is a really nice trick in PM ! If you do a new version, what I would really really prefer would be 0-16 (or even more than 16 ? Higher ratios are clearly not for "normal" musical use, but I sometimes use ratios in the high 30 in FM8 for sound design..) with a switch for integers / non-integers. Maybe keeping the "fine", for precise detuning ?

Also CV inputs for PM depth and output level would be incredible (again, for drone mode basically). I know the standard use is to modulate the volume of the signal used for PM before entering the OP, but having a way to control overall PM depth right there would make it easier to use (as in : would require one less VCA). I often have to use the VCA MIX module (the VCV one) before PM input, for signal mixing and level controlling, so it is not a big deal to me, but if you had something like the VCA MIX inside the OP, that would make it even better ! I realize it would be a rather large module, but if you keep the normal kitchen sink aside, why not ?

Le ven. 31 déc. 2021 à 10:15, kockie69 @.***> a écrit :

Ok, so I have to keep backwards compatibility in mind, as people have old patches that I don't want to break. So I think we need some config options in the menu to not break old patches. So can/will we keep the two knobs, Octave and ratio? Will we make ratio configurable going from 0-16 or 1-16? Or should we create a new (enhanced) Kitchen Sink? Maybe I don't fully understand 'I would suggest to combine octave and ratio into one button with a non-fixed ratio range from 0 - 16. In the moment it is 1-16 with fixed integer-values as ratios. ' Let me know your thoughts

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003318661, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWKUNFWLQLQDEUCG4NLUTVYE7ANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

mosesve commented 2 years ago

I am available for testing on Win10 / RackPro as long as I don't have to build something (I never did that before).

I think a new module would be better for backwards compatibility instead of cramping new features into the already packed kitchensink. Maybe even without the imho useless ADSR, but with a dedicated envelope input for the VCA instead of the gate. That way we could get rid of the octave-knob and put the stepping selector on the front-panel instead the menu for selecting between free ratio-modulation and stepping options. I agree on the wider range (DX goes up to 32 I think) but I don't know if this is taking more CPU-Load? May I suggest different stepping options? I will have a look around to find different ratio-selections and we could maybe implement a lookup-table for elektron-stepping / DX-stepping / megaFM-stepping / etc.?

tanabarbier commented 2 years ago

Le ven. 31 déc. 2021 à 12:57, mosesve @.***> a écrit :

I am available for testing on Win10 / RackPro as long as I don't have to build something (I never did that before).

I forgot to say I never have built anything either...

I think a new module would be better for backwards compatibility instead of cramping new features into the already packed kitchensink. Maybe even without the imho useless ADSR, but with a dedicated envelope input for the VCA instead of the gate.

Good idea IMO ! It would make it easier to read, cleaner. Maybe a Lin/Exp option in the right-clic menu ?

That way we could get rid of the octave-knob and put the stepping selector on the front-panel instead the menu for selecting between free ratio-modulation and stepping options. I agree on the wider range (DX goes up to 32 I think) but I don't know if this is taking more CPU-Load? May I suggest different stepping options? I will have a look around to find different ratio-selections and we could maybe implement a lookup-table for elektron-stepping / DX-stepping / megaFM-stepping / etc.?

Ok that would be really cool, something like "All Integers / Even / Odd / Octaves only / Primes / Weird ones" (like the harmonics and subharmonics of square root of 2, and pi, which are useful for some kinds of dissonance. And other ones ?) ? I like this idea, this would really make this module different and powerful !

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003357669, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWM4FZ2TPED4BAFDASLUTWLEJANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

kockie69 commented 2 years ago

My build process automatically creates mac/win/lin distributions, so that should be fine. You only need to copy from my github to your plugin folder. That will be fine. If we decide to build a new module, I think we need to create it as a RPJ module, not Squinkty Labs. I will check to be sure. I can reuse the squinky code, but frontend needs to be different. I will create a 'stripped' version that I will share with you two and we can start adding to it. I think that will be somewhere tomorrow. Nice!

mosesve commented 2 years ago

These are a few different steppings I found so far:

Legacy: 1.00 -> 16.00 in 1.00 Steps Legacy + SubOctaves: 0.125, 0.25, 0.5, 1.00 -> max. Ratio in 1.00 Steps Octaves: 0.125, 0.25, 0.5, 1.00, 2.00, 4.00, 8.00, 16.00, 32.00 Digitone Operator: 0.25, 0.50, 0.75, 1.00, 1.25, 1.50, 1.75, 2.00, 2.25, 2.50, 2.75, 3.00, 3.25, 3.50, 3.75, 4.00, 4.25, 4.50, 4.75, 5.00, 5.50, 6.00, 6.50, 7.00, 7.50, 8.00, 8.50, 9.00, 9.50, 10.00, 11.00, 12.00, 13.00, 14.00, 15.00, 16.00

Yamaha TX81Z: 0.50 0.71 0.78 0.87 1.00 1.41 1.57 1.73 2.00 2.82 3.00 3.14 3.46 4.00 4.24 4.71 5.00 5.19 5.65 6.00 6.28 6.92 7.00 7.07 7.85 8.00 8.48 8.65 9.00 9.42 9.89 10.00 10.38 10.99 11.00 11.30 12.00 12.11 12.56 12.72 13.00 13.84 14.00 14.10 14.13 15.00 15.55 15.57 15.70 16.96 17.27 17.30 18.37 18.84 19.03 19.78 20.41 20.76 21.20 21.98 22.49 23.55 24.22 25.95

Yamaha DX7: 0.50, 1.00 -> 31.00 in 1.00 Steps

Maybe we could add a stepping.json which is read on loading a module, where a user can edit or add additional steppings (so you will not be confronted with feature request like "please add harmonic series stepping").

kockie69 commented 2 years ago

Can you see if you can access this link and download your RPJ distribution?

https://github.com/kockie69/RPJ/actions/runs/1643369305

If so, can you install it and check if this is behaving as the standard Kitchen Sink? If so, I can start stripping and adding from this module...

Don't look at current graphical design, we will change that a bit more coming weeks.

Robert

tanabarbier commented 2 years ago

It is the same behavior here. Looking forward to what's next !

Le sam. 1 janv. 2022 à 12:53, kockie69 @.***> a écrit :

Can you see if you can access this link and download your RPJ distribution?

https://github.com/kockie69/RPJ/actions/runs/1643369305

If so, can you install it and check if this is behaving as the standard Kitchen Sink? If so, I can start stripping and adding from this module...

Don't look at current graphical design, we will change that a bit more coming weeks.

Robert

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003547149, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWIDLK2IVOPBEUSY2ZTUT3TNHANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

tanabarbier commented 2 years ago

Oh sorry I forgot, CPU consumption was higher : 2.3% vs 1.4%

Le sam. 1 janv. 2022 à 13:26, Tana Barbier @.***> a écrit :

It is the same behavior here. Looking forward to what's next !

Le sam. 1 janv. 2022 à 12:53, kockie69 @.***> a écrit :

Can you see if you can access this link and download your RPJ distribution?

https://github.com/kockie69/RPJ/actions/runs/1643369305

If so, can you install it and check if this is behaving as the standard Kitchen Sink? If so, I can start stripping and adding from this module...

Don't look at current graphical design, we will change that a bit more coming weeks.

Robert

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003547149, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWIDLK2IVOPBEUSY2ZTUT3TNHANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

kockie69 commented 2 years ago

Good you mention it, but for now that is fine. The code I use for this KS is exactly the same as the real one. I just need to be sure I have all the code migrated to RPJ, but as far as I can see (and your tests confirm) I have. I will start stripping the ADSR and adding an cv-input for it. Easy thing first to start with.

kockie69 commented 2 years ago

OK, we now have a version were the gate is now used as Env-CV (ADSR knobs are still there but should be useless).

You can get this version from here

https://github.com/kockie69/RPJ/actions/runs/1643818146

It is polyphonic, so keep that in mind whilst testing.

tanabarbier commented 2 years ago

Sorry I am not sure I understand how it should work, I send an env to the gate IN, but the sound always comes out regardless of the level of what I send it.

Le sam. 1 janv. 2022 à 16:49, kockie69 @.***> a écrit :

OK, we now have a version were the gate is now used as Env-CV (ADSR knobs are still there but should be useless).

You can get this version from here

https://github.com/kockie69/RPJ/actions/runs/1643818146

It is polyphonic, so keep that in mind whilst testing.

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003576119, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWL7XZVNZXGPWVW4J2TUT4PBNANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

kockie69 commented 2 years ago

This is my test: image

When I press a key I get a sound, otherwise it is silent. Does this help?

By the way, this version has the knobs for ADSR removed https://github.com/kockie69/RPJ/actions/runs/1643885946

kockie69 commented 2 years ago

@mosesve , can you make a rough drawing of this?

That way we could get rid of the octave-knob and put the stepping selector on the front-panel instead the menu for selecting between free ratio-modulation and stepping options. I agree on the wider range (DX goes up to 32 I think) but I don't know if this is taking more CPU-Load?

mosesve commented 2 years ago

@kockie69 Sure, firing up photoshop right now.

tanabarbier commented 2 years ago

Ok, my bad, I forgot to activate it with the "gate" button. It is working as intended here too.

Le sam. 1 janv. 2022 à 17:33, kockie69 @.***> a écrit :

This is my test: [image: image] https://user-images.githubusercontent.com/2545165/147855255-4b7f636d-dc05-4cd2-be8f-78b3d6f2498b.png

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003581723, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWNXSLA5QFHAJ4RNFZLUT4UFBANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

tanabarbier commented 2 years ago

It is really loud when polyphonic, I read a range of something like +/- 20V for each voice with four voices here in this patch.

[image: Capture d’écran 2022-01-01 à 18.55.25.png]

Le sam. 1 janv. 2022 à 18:49, Tana Barbier @.***> a écrit :

Ok, my bad, I forgot to activate it with the "gate" button. It is working as intended here too.

Le sam. 1 janv. 2022 à 17:33, kockie69 @.***> a écrit :

This is my test: [image: image] https://user-images.githubusercontent.com/2545165/147855255-4b7f636d-dc05-4cd2-be8f-78b3d6f2498b.png

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003581723, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWNXSLA5QFHAJ4RNFZLUT4UFBANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

mosesve commented 2 years ago

Something like this?

Pigeon Plink

kockie69 commented 2 years ago

@mosesve Oh, wow, much more detailed than expected. OK. let me work on this. Very helpful

@tanabarbier , fixed that one. Forgot to scale the cv signal. I will upload a new version when I have done some of the work on the input from @mosesve

tanabarbier commented 2 years ago

That looks good !

I remember I got thrown off at first with the labels, FM was not what I expected, LFM was, so maybe it could be clearer ? I don't know ? Maybe I am wrong but LFM is in fact DX style FM, so PM, and FM is exponential FM ? I expected FM to be DX style FM and LFM to be the kind of FM that induces a big frequency drift, like in the Cs-L. It may be just me.

Also, could the range on the linear FM be wilder ? It never goes crazy as I would like it to go, as it has sync it could go super crazy with the harmonics and still stay in tune !

Le sam. 1 janv. 2022 à 20:17, mosesve @.***> a écrit :

Something like this?

[image: Pigeon Plink] https://user-images.githubusercontent.com/78504632/147858381-2321c075-b8f0-41c8-9bcd-1e6b63eea942.png

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003604640, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWOF5UTEFAVXGRZN7W3UT5HOJANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

mosesve commented 2 years ago

I always use LFM as in Linear FM for mild vibratos - that seems to be normal FM. The FM-Input is PM. I changed the layout of the inputs and knobs so that above the FM input is the FM Depth and above V/Oct is the linear FM - that should be at least a little bit clearer than on the kitchen sink.

I would suggest to first let the VCO-Core and the FM/PM-functionality as it is right now and concentrate on a working prototype with the additional features.

Is it to early to write a manual? :-P

kockie69 commented 2 years ago

If one of you would volunteer for writing a manual, that would be very much appreciated :-) But I agree, let us first concentrate on getting a working prototype. We can add whatever we want in advance i.e. add a crfazy mode! As you might know, I am not the create of the SL modules, so whilst working on this project I am learning what it does internally. Let me for now continue and we will move on from there.

kockie69 commented 2 years ago

Ok, before finishing the day I thought I'd upload a version with latest status to play with. Far from finished, but gives an idea. Knobs and jacks amost in place, ratio 0-32 , gate/vca should work. Enjoy!

https://github.com/kockie69/RPJ/actions/runs/1644745646

mosesve commented 2 years ago

I will continue with tests tomorrow. I can't get the .vcvplugin installed and when I use the uncompressed folder the new module does not show up. Something with the whitelist I think, but I can't figure out how to add a module there...

squinkylabs commented 2 years ago

There is a parameter in there just to make adding new features possible without breaking old patches: PATCH_VERSION_PARAM, // just for backwards compatibility with patch loading 19

My original usage of it was very flawed, but I think it can be used safely going forward if you feel like it.

btw - of course you are free to do as you with, but I think most people liked the stepped ratio and the separate octave knob, but I could be wrong about it.

btw, I don't know if you are planning on making a whole new panel with your own look, or just changing mine. If it's of any use mine was done in Adobe XD, and I could share the file with you.

mosesve commented 2 years ago

@kockie69 Got it running. First test results:

A Ratio of 1 should result in a C4 - at the moment Ratio of 16 is resulting in C4

The "Envelope in" is attenuated by the VCA-Knob. That is great as long as the inverter switch applies an offset of (+10V x Knob Value) to the knob. That way you don't need an envelope in if you want to hear the VCO without an envelope connected. The other possible solution to this knob would be a "VCA Bias"-Functionality and that is what I would prefer:

I don't think we need the "output level", or do we?

I messed up with the inputs for FM and LFM on my mockup. They should be exchanged with each other.

@squinkylabs We decided to go for a new module instead of changing functionality on the kitchen sink. I agree with you that people are fine with the fixed ratios. But if you take a look at the discussions above there is a lot more in the making then to just unfix the ratios.

kockie69 commented 2 years ago

@mosesve , good to see you got it working.

I will upload a new version later on, haven't looked at the details yet, so not surprised by your findings. Maybe I can pick this up before tonight's release.

squinkylabs commented 2 years ago

but having a way to control overall PM depth right there would make it easier to use

I don't understand that request - there is a CV for PM depth, yes? The one that says LFM.

squinkylabs commented 2 years ago

But if you take a look at the discussions above there is a lot more in the making then to just unfix the ratios.

Yeah, it sounds really cool. nice one.

tanabarbier commented 2 years ago

Ok sorry for the late test and answer.

I confirm the ratio of 16 necessary to have the "right" pitch. And the thing about the level and VCA, I am not sure I understand why the two controls ? And I think we should have a position where the OP sounds without connecting it any envelope or LFO.

I don't remember if the stepped ratios are supposed to work right now, but they don't.

About the fine tuning, I know it is the same as in the original Kitchen Sink, but I still find it weird that it goes from -12st to +12st, in the case of using MIDI to control it (normal 7 bits MIDI) it would be a bit stepped I think (24 st / 128 is something that could be heard I think). What about a lesser range ?

Also, in the end would you consider a CV input for the ratio ? being able to modulate it independently of V/oct would be nice. I understand you said you used the other FM input for vibratos, but I was more thinking of the case where the ratios are stepped and you want to "arpeggiate" between them (I do that on the DX7 V by Arturia, it is quite fun and musical), ratios and V/oct don't react the same way to the same signal, with one being linear and the other exponential.

About the debate if you should update the kitchen sink or make it an other module, I think that it makes sense to have the two, because it helps clarify which one of the two you want for any job : the kitchen sink is an (almost) normal OP, with a few plusses (shape, sync), on the other hand the new one can have that plus a few things that the original one does not have, without making it clunky when you don't need it : "drone mode", flexible and modulatable ratios, but no enveloppe. The more they differ the more it makes sense two have the two, IMO.

About the manual, I might be able to clear some time this week, but shouldn't we wait for the features to be implemented to see how it will be ? Also, I never did that and am willing to learn and all, but I am not a native speaker, you'll probably end up correcting grammar, etc.

I am stoked about this module !

Le dim. 2 janv. 2022 à 19:46, squinkylabs @.***> a écrit :

But if you take a look at the discussions above there is a lot more in the making then to just unfix the ratios.

Yeah, it sounds really cool. nice one.

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1003758338, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWID34IST5ZUBJW7OFDUUCMOXANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

kockie69 commented 2 years ago

No worries, and I hope we are not in a hurry to get this released. Lot of the functionality is not ready so most of what you write is not properly implemented so you are correct it is wrong. I have to add the CV for the ratio, so yes that will be in (see the mockup, that also has that CV). About the manual, we can work on it together if you are familiar using git. I am also not a native speaker (although I live in the UK) so that is no problem. We will get there at the end of the day. I am currently dealing with the selections and displays. Did not have a lot of time today, so I think I will upload that prototype tomorrow.

kockie69 commented 2 years ago

Not much progress, but implemented the 'new' displays and selection buttons. Also made some quick changes to the ratio, but not sure if those are correct. https://github.com/kockie69/RPJ/actions/runs/1650700730

kockie69 commented 2 years ago

So I implemented the proposed VCA algorithm including the Pos/Inv switch.

https://github.com/kockie69/RPJ/actions/runs/1657432205

kockie69 commented 2 years ago

Ratio has been implemented, and all the steppings are now implemented. You can download a version from here.

https://github.com/kockie69/RPJ/actions/runs/1660634089

I will print the real ratio now instead of the parameter value.

Next, I will work on the ratio modulation. Any ideas/requests?

mosesve commented 2 years ago

Awesome, I will test later in the day.

I would like to see a bipolar Ratio modulation with +/- 10V, so that lowest stepping on the knob +10V on mod-input is highest stepping, highest stepping -10V is lowest and middle stepping +/- 5V is modulating between highest & lowest stepping. Attenuation can be done outside the module.

tanabarbier commented 2 years ago

+1 on your idea, that would work perfectly. I don't have the time to test it right now but I will.

Le jeu. 6 janv. 2022 à 09:17, mosesve @.***> a écrit :

Awesome, I will test later in the day.

I would like to see a bipolar Ratio modulation with +/- 10V, so that lowest stepping on the knob +10V on mod-input is highest stepping, highest stepping -10V is lowest and middle stepping +/- 5V is modulating between highest & lowest stepping. Attenuation can be done outside the module.

— Reply to this email directly, view it on GitHub https://github.com/kockie69/SquinkyVCV-main/issues/35#issuecomment-1006365784, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVNRQWMBMHBLV5IVNW7CAPLUUVFY5ANCNFSM5G5LFSOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

-- tana barbier

www.tanabarbier.com http://soundcloud.com/tana-barbier

kockie69 commented 2 years ago

Don't know if I understand it correctly.

So what happens if for example the ratio is 5 and the modulation is -10V in the Legacy steppingtype? Will it become 0? Maybe a couple of examples will help ....

mosesve commented 2 years ago

After thinking about it and testing the latest build, I think I made a mistake with the table I send you via PM in the forum. Your implementation is totally logical, but I did not thought about knob position and range. I'll write up a detailed version with formulas and examples now. Sorry for the delay.

mosesve commented 2 years ago

Parameters and Constants:

Knob Position KP: 0% (fully CCW) to 100% (fully CW) Knob Value (internal) KV: 0V to 10V Modulation Value MV: -10V to +10V Aggregate Value AV: 0V to +10V Ratio R: All possible Values the Oscillator can produce (0.00000R to 32.00000R) Ratio Index Ri: Either all the possible Ratios Rmin/R0 to Rmax in the selected SteppingType or 0.00000R (Rmin / R0) to 32.00000R (Rmax) if SteppingType = "None" Output N: A Note Value (+/- cents) measured by NYSTHI HOT TUNA via Signal In (C4, G3+4c, etc.)

For SteppingType = Legacy:

For SteppingType = Legacy+Sub:

The exact Value AV of a Ri is calculated as AVi = Ri * (10/Rmax) For SteppingType Legacy+Sub where Rmax = 18 (or Cardinality-1):

R Ri AV
0.12500 0 0.00000
0.25000 1 0.55556
0.50000 2 1.11111
1.00000 3 1.66667
2.00000 4 2.22222
3.00000 5 2.77778
4.00000 6 3.33333
5.00000 7 3.88889
6.00000 8 4.44444
7.00000 9 5.00000
8.00000 10 5.55556
9.00000 11 6.11111
10.00000 12 6.66667
11.00000 13 7.22222
12.00000 14 7.77778
13.00000 15 8.33333
14.00000 16 8.88889
15.00000 17 9.44444
16.00000 18 10.00000

The lower switching point AV to Ri is (AVi + AV[i-1])/2 for all i > 0 The upper switching point AV to Ri is (AVi + AV[i+1])/2 for all i < max For SteppingType Legacy+Sub:

Ri to R[i+1] AV
0-1 0.27778
1-2 0.83333
2-3 1.38889
3-4 1.94444
4-5 2.50000
5-6 3.05556
6-7 3.61111
7-8 4.16667
8-9 4.72222
9-10 5.27778
10-11 5.83333
11-12 6.38889
12-13 6.94444
13-14 7.50000
14-15 8.05556
15-16 8.61111
16-17 9.16667
17-18 9.72222

Yes, I know, that means that the Range for Rminand Rmaxis half as big as for all Ri inbetween, but that results in the same amount of time for every R when modulated by an LFO with a triangle-wave.

From my understanding of an algorythmic implementation the following steps should be performed:

Upon loading a stepping:

  1. Get Rmax (Cardinality - 1)
  2. Define exact Values AV for all Ri with AVi = Ri * (10/Rmax)
  3. Calculate all Ranges between 0AV, all switching points and 10V and put them in a lookuptable

Then for each sample:

  1. Get KV
  2. Add MV to get AV
  3. Limit AV to 0V to 10V if neccessary
  4. Lookup AV in the RangeTable and get Ri
  5. Lookup R for Ri in the available Steppings for that SteppingType
  6. Set Oscillator Base Frequency according to R
  7. (Apply V/Oct)
  8. (Magic...)
  9. (Output Signal)

I hope this helps, is a bit technical... I could also provide a table with all ranges for the different SteppingTypes if necessary. The key take-away should be that when you turn the Knob fully CCW it should result in the lowest stepping of the selected stepping type and fully CW in the highest stepping, everything else happens "evenly" distributed in between.

mosesve commented 2 years ago

Just a game of thought: Would it make sense for the ratio modulation input to be polyphonic?

kockie69 commented 2 years ago

I thought about that too, but we need to be aware of performance. So for now I stay with one channel , if that works I will extend to poly and we can see what it does

kockie69 commented 2 years ago

A new version is available where I have also added the new gandling of ratio. Only implemented for Legacy+Sub, can you please test?

https://github.com/kockie69/RPJ/actions/runs/1671637477

mosesve commented 2 years ago

Tested Legacy+Sub: I don't understand the knob behaviour. It goes from 0% to around 55% showing a ratio of 17.5 and for the rest there is nothing changing anymore. So I tested with the mod input and the knob in 0% position. The Ratios are changing over the full 0-10V Range I applied, but in a strange way. I first took measurements from the kitchen sink for the Ratios and then compared that to pigeon plink:

V R Expected Result
0.000 0.125 C1 C1
0.556 0.25 C2 C1
1.111 0.5 C3 C2
1.667 1 C4 C2
2.222 2 C5 C3
2.778 3 G5 C3
3.333 4 C6 C4
3.889 5 E6- C4
4.444 6 G6 C5
5.000 7 A#6-- G5
5.556 8 C7 G5
6.111 9 D7 C6
6.667 10 E7- C6
7.222 11 F#7-- E6-
7.778 12 G7 E6-
8.333 13 G#7++ G6
8.889 14 A#7-- G6
9.444 15 B7- A#6--
10.000 16 C8 C7

It looks like a few steppings are missing. I then tested the switching points and the ones I found are spot on. Again I think there are Ratios missing in the stepping table.

SP Exists?
0.27778 No
0.83333 Yes
1.38889 No
1.94444 Yes
2.50000 No
3.05556 Yes
3.61111 No
4.16667 Yes
4.72222 Yes
5.27778 No
5.83333 Yes
6.38889 No
6.94444 Yes
7.50000 No
8.05556 Yes
8.61111 No
9.16667 Yes
9.72222 Yes

Any ideas?

Edit: Got it! https://github.com/kockie69/RPJ/blob/v2/composites/WVCO.h#L327 I think you are using the value of the array *it instead of the index it to assign it to volt, which you later use to get the Ratio at the position volt

And from the looks of it knob value kv is 0.0f to 32.0f https://github.com/kockie69/RPJ/blob/v2/composites/WVCO.h#L724 If FREQUENCY_MULTIPLIER_PARAM was 0.0f to 10.0f you could use the ratio as kv without transformation in line 321.

mosesve commented 2 years ago

My very basic programming skills came up with this:

float vDivider = R[1].size()-1;
float KV = ratio * vDivider/32; //for FREQUENCY_MULTIPLIER_PARAM 0.f to 32.f - it's just KV = ratio if that would be 0.f to 10.f
float AV = rack::math::clamp(KV + ratioCV,0.f,10.f);
float exactRatioVoltage = 0.f;
float nextExactRatioVoltage = 0.f;
float nextVSwitchingPoint = 0.f;
int ratioIndex = 0;
for (int i = 0 ; i != (vDivider+1) ; ++i) {
    if (i > 0) {
        exactRatioVoltage = i * (10/vDivider);
    }
    nextExactRatioVoltage = (i+1) * (10/vDivider);
    nextVSwitchingPoint = (exactRatioVoltage + nextExactRatioVoltage) / 2;
    if (AV < nextVSwitchingPoint) {
        ratioIndex = i;
        break;
    }
}
ret = R[1][ratioIndex];
break;

This will calculate the switching points on the fly without the need to search an array for it and "should" work with every stepping-array.

kockie69 commented 2 years ago

I am building a new version now. Your code looks okay to me from functional. I think we need to go back to array as that will be faster as calculating on the fly. So when instantiating the module, we will calculate once, and then read from array whilst executing. But for now, lets focus on this algorithm. Build will be ready in couple of minutes.

kockie69 commented 2 years ago

New version for test available Algorithm implemented for all steppings.

https://github.com/kockie69/RPJ/actions/runs/1672312382