SOLVED - Possible Bug in MSF MIDI Key Number Modulation

Official support for: meldaproduction.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Edit: I am bumping this and changing the Subject - I rather suspect this is a bug, and maybe I needed to state that more emphatically. Hopefully somebody with requisite expertise can confirm that this really is a bug or else my own error. Thanks for your patience.

I have created a simple preset to illustrate some behavior in trying to modulate a wave table index (the Wave parameter) using MIDI note number. I use a custom transform shape so that up to C1 (C3 being middle C), we get the first of a group of three waves, and above C5 we get the last of the three. Notes in between morph from wave 1 to wave 3 (getting pure wave 2 at C3).

The wave table is a Wavetable40 module with twelve waves. When the index (the Wave parameter) is zero, it works just as expected. However, when I set the index to 50.0%, I would expect that wave 7 thru wave 9 would get similar treatment. That is, low-to-C1 gets all wave 7, C1 to C5 morphs through wave 7 to wave 9, and C5 and above gets all wave 9.

MOscillascope was what I used to check on what wave shapes were being generated.

Any thoughts would be appreciated. Here's the preset.

Code: Select all

$eNqVlltv6jgQx9-5FJb72j3EuRGkJEfbknbRaQoLtD37aJIBojo2ShwE++lXTrg1JZB9QErGv-9cbDwZ9+c2ZWgDWZ4I7mHyQ8MIeCTihC89XMjFHw7+6XfccCoKHj-RSIpsl4OUCV-m6M7DBKO7ZybmlOUzOi-fH4ssAy7HGeQghwMPh8PBEP2CHXqdZygUccGoTARHA0gFRs9vw2nyL+geJj3DuHeIfbQFNN8pu20a933Lwuivv9-WOU3XrExPw+hlMl2zRErIFE88TKyeXjfrHjY0jEK6fXkaPTARfSqrhw0do-dD6T3H6fd17LvTYj5mxTLh+2p9t3qdfq36orcpMIgkxJXCw9o9wQd9fnhATwVjrzQFD3-QDczonIGpodJn-jnkZWG1dYx+l+Z-VOyGjO7eeJILHnAleBSM0XUOcbWkHD2KgksPE-1y8r4bjgYliA4kRgNYy5WHtR-EtjGaZZTnC5Gl5flVgeIqo4l2psqzSPPwq5CAPmGHu777Vem7Y5FwiZ4YXeYPHiYmUVDdqGG0VbF1h5imZvXVD6OdMmmapmuW7tiGadhEv6a2rUp5VF+MRUqanIBuPeXuYXt8d7qiayBoOgvG40kwDWbl2WwoK8DDxFDyEtGbkCNhNBEnxGxCrCNi3Ubs20ivCTkV5DQhR6LfRJwQojUxp1xI4+6eMY3bWzLdr5fkaDg+5JeYb7e-c9YQfjfcvEvX6UIv0E694GJ+54E6bsA3RF0cSAUTZcG1cpWPEipZvQ2rV6zRhjUq1mzDmhVrtWGtirXbsHbF9tqwvYp12rCO33Grr1bANzcFJ7LjvjyNCHoBvlRtUZ1yjS4J-SZh3CTMm4R1k7BvEr2bhHOdmFAei5TUOzwKXt8PoFNu4gE8SPS2Ev0oMdpKjKPEbCtR-+BfsMsjyqBFNSf0JNPby1RN78BElMjWIWt8zYH+Px2cZ1BHOydXaojLiwyuIYmMVg-A4ytMKOKPFQC7gsySdJ5Bz7yCPGRA5UrTryDBdq0yTgQn5AqmRpPRYvGdeGZJDFUf+Lb2ZySTDVRjLTrMV7MMoPz2BHFSDj+++0glLEW2G0pIh3whur67H4m-q6oxrzyec-cqWrZGEypB3TsVPQQJWe67o0KGaJDka0Z3Id0maZHu+9RHEstV6LtTUWQRoHEGi4RJyPazsopxQLp7bx23e2myz-3OfzARtnE=
Last edited by dmbaer on Fri Jan 04, 2019 7:21 pm, edited 1 time in total.

Post

Bump.

Post

Well I tried and unfortunately I didn't find anything odd. Anyways here are more obvious settings to test (yours were quite cryptic) :

Code: Select all

$eNqlmFmPo7oSx9-nU0TMfeNwGswupfsqC4QkbAlkgTcWQ9gJS0L49Fck3TNzepbuo-uAZIrfv2yXyxau8X+7LB1dYFVHRf6MEH-jyAjmXuFHefiMtE2Acch-X76MFaNoc190vKaobjVsmigP69HXZ4RARl8XaeE6aW067uN9X0RelIf3d4CMZm1VwbzRK1jDZjl-RpTlfDlaw9tIdauRUvht6jRRkY-mMCuQ0WK3NKIegmeEYEnyL45gvtkEp74NdoIl-2IJChlJm11ZO1mZ3oeLIyN5a5Rp1DSwGnjiGSEJmn1vBs8ITSAjxelkUZumhZcM1meEBMho-xYKluMBxSEvY6N19bQNo-x19i-jx6vxzyj80psBU+g10H8onhH8LwJ509dvjZHYpqnqZPAZOTgXaDpuCil8dPdZJ8v8PrF335HR8W62hr5-M6KvkzQtrpO8iZw0cuq3ED3M2rDmP0bu6wzmTT2kAEBGX5d5A6uySJ0GPr7qUeOdlMKHz8gyzIsKjsI08iEy+rrLo7rIhXwY1qxIU6esof+WCGk7DBv-m8Y5ZPR1GP797bU9K9q8eUaYX0fvZaxo8zs3egUJZDSHZXMafFAMh4zMysnroKiyewI9xuA-QrLFf1DVlYc-I2rRwFECb8jTy-ifypexXkR5MxJTJ6ynzwhBEQP03ogjo27oG3AEReE0PzzI6DaYcBwHOA04hqRIhgAfqGmaJHkOp7lXNUXjPIeTPBiy9Q9ShiMBDSjAEhz1JmUonAaAY2kO-CvpL2dI3GniO-D0PlBPb4vyMjZOTgmJkWEKur4VDMG8p8rFSVv4jBDkIL8j4HfIN4L8HfEdoX6H0N8Q+h3yZmc+lrIfI9yHs+A-ngWB-4b5PlridxFlvyNg9NiKklNlRR55NfIy-tZ+y3tAM8j9bMlhXQ8pQDI4jxMETzPU8CH3nQzmjZMqUR5lbTYgHEdRHMfSBDkwby6j5p5qg5InaBqnCYCM9KJu9KrwYF3-PSuysnrthWIJhiIZkudI7p+UWkT1ff8zFM2wDA0InnmHGCenKmH+jGAEMjKG8wmKUQp1Z9j0bxa9qKPmfkjjw2H1MG6H-LyHy4D3M4DiKBrwPDlY0qK8d4xzPM+yBE7Q7OOAccI8alof1i--gWrFYiwGyWjFth15tBOaFVb1dJZHfQY6lueraWfTQumXlzbPJ3xOL9RVGIiHiVSmwK2a4rpcSpw4F1hhjTWzuLHy9nCoWCLb3CrvuExE7TABGYH6gXtuRDtU61ATOFbes8IUD+RQPqx60lzHfFFtDEW9HKFT+UqS9JAnSezosIeZfkKjFej4k8zStdBcVD6ZYt5ln2Rc4OggJifukjZB4JwuCxYQOdZQwaq68PGU3GzMAwlR-MTacqfEOuxN4yzXklP4V4mpM9RbphlaG+42zw645HO6tPeFwo4Sn6vMQHc8n525IjPPwHwRhjwFG8zvjiLa3xJG3bJTNZiYCwxWiWxUp5pErwJ9gZ6WYUens4sAs-eL1ekSNOROL035hrFWFJ+vbZYaQuD6u55scEhU2WIbX4iFTJoUbk5oUY7JbsFHaptz8VVbHo5eDjRw4VipwIDaXBR9tmiBwJhMxVtQKVBSTV3dpaubfrLbW0GEsz6zw+R6NKWQPC2Ps-0BUNDz5ak0T9tU7SSgMowA1i0-d6c+5EkZO5uo1TdJw5i3jE9FN4xIl1cXrczrDsX6ZFmEtYopIiQb82rPejHI5q6CSbCpMOw0Ve0wgBiQVCtGgyo59BIKtj6n2S0qr04+u8R2lCjxOqru1k3VTJYTIe0t3aqvmAtOPDvFEzKXU4ZPuQvBzdM9tOrGxXOeF9t+p9otfTG2KKhxTJ54MVr7kLj5OrFh1RBfbu1aDaOctDRrepWPfRPYPcnt3DMf3kLhkLEyJqhhA+jwBKFBbdYsH0bqlC+4tvNTllhWFrs5n+s8uM5DowrdlJhvsFnVnMxd4PremQWLPpuzEloaaznpAkI+QjLgJ3ZcTjzKWkzDyWQSUN26Hz-9sMPG+smpHzutEK8bDhclazLFJrLol4Tm7EnMkyBopXVO6LcSa-gLtZ2tcgG6RW2rpWF0N53h2OUG2M0aogSwnIS3UK10fMMK2AOZpmHqbsgeF9XGNY2uhH2f7MJEiOpLwNnCSRR2tLJictPzJApd521FaocpMzX3Oq+HCb7CJeNsRmCyFGOv5OAuA-lKqyQzRAlD1aJE2uUsWESzWgK+Gd+IWNtML7hwdBvvcNA8Rrc4jSjXuu4dpsrttIHTtdPt6fMUk8sUlU+UA-rU7M7wMDOCucIJMbVo87kaM7WhsF2yLkFHyVeM4aFq8ZFSmItjJ11Kfh8al45HqQlRGqDYUKy2355PKQyYToAWrvcSs9+w7io+AoqKA9QL97NgQ2i7eE2tlH23bYqyco3e0ueWgvm4NdU4uWBJ0Tv0-cITTbEjGplOpw7KS66Z2RyfMnmr3ozpWt3BUy9hsr1KDNZF4dmlDUtaHQ1oqDRxEY6CKSbd2uBrsKrCpVZkJJMyMGWnru-okE0hKbM3aU815-OS2oEdGZvTBBPD-ZnTaNRcz8wOszqyadvegiaw-b7Kr0wcJHHLMITQXq6CdgrWV-Rae1DcFGyEsUKlyASm6cxcXyo9te5Kdupx+9JeHC0lrpYRus84T87hLQBVvk8xA0+X9Ko+2zZNYfLVMgsVsquFsjEverSTz5V9JXlaMEQ5VoL9po9kQhCLKD2aRJ6oTDGFTXtD5a1TKHTVLvDLcVExp-VR6b3bbo-H-U3UZbCui419kClvo5aZ3TvqzU6jZpNLldkKlrWby60NhdWFDcuQIAuwmJJ10Ydo7CaJjab+cSmSl47UV8FhNcdnoFsGB4hq5SZj3GpraBCNmDgnkljM64aW+mB+O5m9qlhzlF1kF6GJ5xp-ss4z2Eb7ndcfRKsUG-ZQt-R8Uq03Ez2Wj5Zr3hbnTRb3k07WAt3pVzTHNtY0Pgj4jF1n+KUW2ARfUQRtmIqzh2lsr9oE13SVPl5ZydyokjI7RccdZylRZu3mUlIuF0tXpWI63edJZPtnSKxLjUlLLeIws0I177LuzqyszJYnqgdHW-TOSWjacQ3w6NIU0A6LHg0a14l0cSHpa89qWrbulJwC6InH5Lpoq3aXNdaxVc+1dclrXaA5RrFiDZLX3QEu+dJSgnV5EzJAprZh95tMPRo44KETrszEWl1t4FDnVElt4eRKN6anFHGKiuZhc1id2-lhu3XkLYOemWMrb1so9ZKBrWfalWuu00Del8l164dXTdHsfu+4VlNPnP2FbLhpUnW5sVxBDncZPXaJNtzpqHy1YszTD9GU601SjU4+CEKRKKwixy3qgM3bFeZ1OmeaZX0YP72ejuOnbz9yL+On19+9l-HTP6943wzfGvWvmJ-url9+uM4e-7+bLP79Jvv0576PL1-GQn4hhlsXzIq0uM-q55-1pzt0Z8FnWPBgyc+w5IOlPsNSD5b+DEs-WOYzLPNg2c+w7IPlPsNyL1-GjxqMkF8+FHwnv4xlUSNGMszD4fd6WOV39J0AHxLkhwT1IUF-SDAfEuyHBPdnYuvkfpER78sDI0Hdv4HcPYhv4JsEfFYCvknIz0rIbxLqs5Ihg9fwVntOCj8xm+-odxn4vGyY0x6mxXBP-GyX7-h3DsC-dPDjCN6jX767GkqQdVvBPyFDnWsKc-8PjFL4hxOE6R8QM8rcCrLUH5BpBZ3mhIM-IEJ3v1VHRU4Qf8CGupYWBD8Ti6FE9zgHfvo28ZroAh9F2dFb3c6s4KPeJ-jRvXL2Mp45DQyL6rZsYLbMg+LpZfxa0P1Z9ShS3pfnR-dDb1U52t6LiUOR6stYgQ2s6pex1jbKaB7VZercFKd7LUMMHg6R35yUl7FRtJUHR3oFgyhtYPVarxz6eEOeXr19GT-9qk5dv3z5H2NvOR8=
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

My preset demoing the behavior was based on a real-life scenario I'm trying to implement. I will see if I can repeat the behavior using a more direct setup. But basically, the issue is as follows: if I have a modulation curve that ranges between 0 and, say, 20%, then when what is modulated is given an initial value of 0%, the modulated value ranges between 05 and 20% (this case works fine). When what is modulated is given an initial value of 50%, the the modulated value should range between 50% and 70%, right?

As I said, I will try to construct a more straightforward demo.

Post

So it turns out not to be a modulation problem at all. This has a much more basic explanation.

The wavetable had twelve waveforms. To get a pure version of wave 1, we set the Wave index parameter to 0%. Elementary.

Now, to get a pure version of wave 7, we set the Wave index parameter to 50%, right?

Wrong! It's tempting (as I did) to just assume you need 50% and move on. But the index gap between waveforms is actually 1/11, not 1/12. Therefore the Wave index for a pure wave 7 must be 6/11, or approx. 54.5%. Another solution would have been to add a placeholder wave at the end - thirteen waves, which then have an inter-wave index gap of 1/12.

Seems obvious now, but it wasn't at all that way at first.

Post

I agree, it is not very intuitive. I have suggested to Vojtech, that the "Wave" parameter is changed to a numeric, stepped parameter (with the number of steps set by "Wave Count") rather than the current % value

This might help visualize what I think is currently happening:
Image

So 0% is in the 'middle' of W1 and 100% is in the 'middle' of w12.

PS If I pick 50%, that is, exactly on the border of W6 and W7 do I get 50% of each morphed together? Or if I pick 52.25% do I get 25% of w6 and 75% of W7? If so, maybe that is why a continuous mode was implemented.
DarkStar, ... Interesting, if true
Inspired by ...

Post

I agree that the Wave parameter should show the index of the waveform, like say 3.14 instead of 24%. I'll check it out ;).
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

I think that would be a good change. Showing the index number would be more intuitive.

Post

MeldaProduction wrote: Wed Jan 09, 2019 10:24 pm I agree that the Wave parameter should show the index of the waveform, like say 3.14 instead of 24%. I'll check it out ;).
Info from Vojtech: what does a non-integral Wave value mean?
-- 3.14 means 86% of wave #3 morphed with 14% of wave 4
-- 3.50 means 50% of wave #3 morphed with 50% of wave 4
-- 3.86 means 14% of wave #3 morphed with 86% of wave 4
DarkStar, ... Interesting, if true
Inspired by ...

Post

DarkStar wrote: Thu Jan 10, 2019 7:43 pm Info from Vojtech: what does a non-integral Wave value mean?
-- 3.14 means 86% of wave #3 morphed with 14% of wave 4
-- 3.50 means 50% of wave #3 morphed with 50% of wave 4
-- 3.86 means 14% of wave #3 morphed with 86% of wave 4
The above system does have some appeal. But we will not be able to completely get away from the non-obvious arithmetic. If using a custom transform shape or an MP with a Depth value in the targeting information, we will still be faced with dealing with percentage values. I'm not sure things wouldn't be simpler just to leave things as they are. I'm not convinced either way.

Post

I've had another thought:
Instead of displaying a value of "3.14" it would be clearer to display it as "86% 3, 14% 4" or "86% wave 3, 14% wave 4"

Here's the precedent for that form of value display:
Image
DarkStar, ... Interesting, if true
Inspired by ...

Post

That could be done, but I'd probably go for something slightly different, we'll see.
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post Reply

Return to “MeldaProduction”