Amplitude Modulation in MSoundFactory?

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

Post

What's the best way to do Amplitude Modulation (AM) between two oscillators in MsoundFactory?

The best way I came up with is to generate a custom modulation source with one oscillator and modulating the volume of the other oscillator. That sounds pretty good with oversampling, but I'm hoping there's an easier way to do this.

The Merger module seems like an obvious candidate, but I don't see AM as an option there.

Post

Held wrote: Thu Sep 07, 2023 8:12 pm What's the best way to do Amplitude Modulation (AM) between two oscillators in MsoundFactory?

The best way I came up with is to generate a custom modulation source with one oscillator and modulating the volume of the other oscillator. That sounds pretty good with oversampling, but I'm hoping there's an easier way to do this.

The Merger module seems like an obvious candidate, but I don't see AM as an option there.
What about just 1 oscillator modulated by a LFO with 'Follow note frequency' enabled?

Post

vanerio wrote: Fri Sep 08, 2023 6:20 am What about just 1 oscillator modulated by a LFO with 'Follow note frequency' enabled?
That's a good suggestion. I tend to forget that the LFOs are fully fledged oscillators as well. They don't have an option for anti-aliasing, though, so that might be an issue. But I haven't done enough tests to tell for certain.

If I understand Wikipedia correctly, the main difference between ring modulation and amplitude modulation is that amplitude modulation maintains the frequency of the carrier while ring modulation removes it.

Following that logic, using ring modulation and setting the dry/wet control to 50% should create the same result as amplitude modulation.

Maybe Vojtech can let us know if that's correct.

Post

RM and AM are similar, but AM modulator signal has been converted to positive values only (I am not an expert though). So to do that ,you can do several things:

Seting an Oscillator as modulator: In this MSF preset you have a multiparameter to compare methods to do the exact same thing, from math operations only, to mix RM and math operations, or to directly offset & scale modulator osc.

Or you can use an unipolar LFO, what I think is the easy way, but as Osc´s Volume knob is not linear, it will produce a stronger effect! Have that in mind.

Code: Select all

$eNrdWU2MI0cVLk8CinKBA+IAEmppQhTIDu32eHbngrw1Y3uwmF477pnZzrHc-cZuTbnKqqqejPewiAMi4pQrHODAKZcVHJAAhR8hbpFyiIQiDpE2QjkhoUUcEBIS6PWPp+2xd23vJIvog9tV9b2qV19VvXrvNXH3fN-1ZCzCJguMVGMNxkSirwndJE6Jbh5w2WNcH7FeUqT1OozMgIQkeR7WEBGF0AHVDgw7B+IQegJKR1KQKnnh84R+67XjkWbDEY9EH1sbYWSk8qJ70GB6TLSzXd6+sevsFluIdqo7Ozd2d6qE7sdKgTAdBRpMq050nZ1H4f3GBfYJ+j51LVfGnJlIitDKqgl1Y26iDlNsCAaU3pecs5GGEFVw2cVhs73HZXCWjOZYFJGcA4-uJR3hZA+73ohHxkCikpPN+c23bs+0VHI2HtVoh8f9SBA9xSnxvbiXtkxq0qI3YdsDDoGBMO+gfKOcLcFVZTNhnfdCqI+zeh1-7rAhEN3WQcQ5M1IR2ow5n9Rayez1WUsguAuCDZGSkr-HxFmZ2Ff0SnfBieTxEArz3DwWkZaiIViPQ4HbEt3s3HVdGQLR9Uhja0iSulyYzKPfd9v1fBA6tcMe1ei+jIUhzobfLZO8UKJaBWWiD5ttnNJFmYQPHuzvfPX1D35n+13ncbhcDdv2vQEbAaHeUaPT6Ta8xhFxiG3bRVpLy9FaITTlIttfOcP4rx2j9p8M2emh08R5finiW-VWR8m+YsP9ARN9SLtERaeq95mBvlTRPVDzj8tc5vz2CFRyejShHalN3nspKXkB41Ckfw7RpYxol5lBkeKvl7+xM5fhjSLD7diMYtMSIVyUsa9C2SHOf5ZfgZTGxIKM+Njqja1ACm2YMEhp0fgdRsPI5BUv3b4+hueQs7GAnFefBTk0DJ81KYnFe24BKbh4c0l5LvvnGWAciy0xik1SSnhJijktpUKrc41biny6JD2fkwSqD1O2q+uuQFK+ecinylk3En1rKMPsiid0s67Gd2HCHblW7tAqXd7W-jVd1NgrNYYFZw6hhyD6ZoAXWkOcA5doSKnWUX+idOPOSW5VNyaSlbUlt9eWrK4tubO25M21JW+tLbm7hmRDnDvEP1IwlFzO9yQQU1kCs70EproEZmcJzM0lMLeWwOw+CZNGDg1xTmhKcsER6QIHpoGE-3777++7vU6N1iFg4wLCi7Vhkbj0gp4w2mGzjQ4tM0DCf-36Oz8Pmp+7PbN+UyKXO4U2JefyjTvSJK5KwaOacp6ueDdT-szDWlJHw5CE33-nB87x8Z9qqVYVspwaCXh7FXB1FfDOKuCbq4BvrQLeXRrcZSKUw+SEMaFPpRpm5n-hoXzBzqUqa0ltryVVXVHq2zDWuHOcNeVWndsJcBlEZr1Bp4TXHXmm4bITDOl1rGAxIDLBYA9E6C+EuDK8OwDgCwFH0bCn4FZ1IWBPATODcmUhoHExQkUjKRxnISi3V4va0by0T09n25PkSWbSpltm8hdkpqJMJj6dGciQ0NRZQodKE3rCeAxZzdjqMXFmoc9FqGdglIXGn6HeCCAs2NxEqhB3Hhy30pQM9lQh+g4uPCdY77EhdOUbuOoHx619yaUiulq-1ayWm01CUY3JMFhAXcvoblquDKPTCIPTvN4hmroYZKU+fF5dSeC9sdU+PdVgXk7sbWi1dVC5BG1PZGNurJcfi63m2MNmm9AJk130DPWlE+xPWgqglOsDEHgHSGVtWV3X2rJyqWnqSOphJx3jPdK4MF28UUonvVdyBHlUI1PPbJmgW7yUJhgcX48uV3VYVZdX-4d0SbbEU+ny5LVaVpckR2RtWclRn7xHUputkZIBmhfRR1yyf5PQJFP3vXff+dlb1Y9rNFU13LX-8Ye99-9YW0L9h7X8fXSMz8e1v73oJe+8-rrVT32inOnff+V7f33tlz+uFWbz7vlvf-Il+zeT2XzZ-vClz373F4+fzY9+iM+vatPvtyfvdRfjGnfp1V27ijKOtWWlWT8MdC1ry0pzoLlizY-ufeHBwUcT1sw3X-zgp6MPV9sD89+P0E2dvlom6c4ksx5ar6BdtobJPaO-lt80+WVQuGo6oAIQBoPkT+xmeVqzna99nmx+3NJfYaYyy0zX-X-hJbnO6mpsY2ZlNVa2Z1k5bLafio43v-jn9-7p-eVZb5Orp5I6Rct8Gc2mp3I871Ri5mdfCqMk5+jGUS8SfQ6YjxLAMXb1aWCic0i-b6UfwTAOrcN5FIA7+-GqRPPCkQL0uv0sqTVuGRi2xKkk9qTKMxgP+wcgFBDbT11hHFGZKMjzabZPOSbFzGBIbL8JzMQKMGXlZ1-e8uXFjyrzh36acZIJZ98JkjRZJ2MC-6tRFtM7G77LjIouLhtTairEvxuFZuAS35OxCgBTfnAacQMq-eBo2-b9-wJriqzO

Post

Thank you so much for showing me all those options to do AM in MSF. It was a lot of fun to play around with your preset.

I think I like the option with the math modules and the RM module the best, since the merge module comes with the convenient dry/wet and oversampling controls. The resulting spectrum looks like proper AM.
msf_am_math.png
The volume modulation with an LFO introduces additional harmonics due to the non-linearity of the volume control as you mentioned
msf_am_volume.png
While playing around with the math module, I remembered that you can also use the abs function to make a signal positive. Using this creates a bunch of harmonics and sounds pretty cool as well. But this also introduces a lot of aliasing without oversampling.
msf_am_abs.png
(I changed the modulator to be only 2 octaves above the carrier in all the screenshots.)

I really appreciate that you took the time to set up such a nice playground to explore different AM options. I learned a lot.
You do not have the required permissions to view the files attached to this post.

Post

Held wrote: Sat Sep 09, 2023 1:13 pm Thank you so much for showing me all those options to do AM in MSF. It was a lot of fun to play around with your preset.

I think I like the option with the math modules and the RM module the best, since the merge module comes with the convenient dry/wet and oversampling controls. The resulting spectrum looks like proper AM.
msf_am_math.png

The volume modulation with an LFO introduces additional harmonics due to the non-linearity of the volume control as you mentioned
msf_am_volume.png

While playing around with the math module, I remembered that you can also use the abs function to make a signal positive. Using this creates a bunch of harmonics and sounds pretty cool as well. But this also introduces a lot of aliasing without oversampling.
msf_am_abs.png
(I changed the modulator to be only 2 octaves above the carrier in all the screenshots.)

I really appreciate that you took the time to set up such a nice playground to explore different AM options. I learned a lot.
Using the ABS function will not recreate standard AM, as AM is offsetting the entire wave, not just the negative part, but it will create of course a valid and funny alternative.
I am glad it helped you! :)

Edit: I just want to add, Vojtech, never stop being that crazy...the capabilities of your software are amazing ;)

Post

I also tried using RM with 50% dry/wet and it looks pretty much identical to doing AM with the math modules. So this seems to be the easiest option after all.
msf_am_rm.png
You do not have the required permissions to view the files attached to this post.

Post

Held wrote: Sat Sep 09, 2023 1:32 pm I also tried using RM with 50% dry/wet and it looks pretty much identical to doing AM with the math modules. So this seems to be the easiest option after all.

msf_am_rm.png
Mmm you are right!!
If we solve the next equation for a:

Code: Select all

x*a + (x*y)*b = x*(y+1)
We get:

Code: Select all

a = -b*y + y + 1
And if b=1, then a=1, so 100% of each signal (Carrier & RM) is the same as AM (Carrier + RM = AM).

Or easier:

Code: Select all

x+(x*y) = x*(y+1)
->

Code: Select all

x + x*y = x + x*y
what is True

Post

vanerio wrote: Fri Sep 08, 2023 6:20 am
Held wrote: Thu Sep 07, 2023 8:12 pm What's the best way to do Amplitude Modulation (AM) between two oscillators in MsoundFactory?

The best way I came up with is to generate a custom modulation source with one oscillator and modulating the volume of the other oscillator. That sounds pretty good with oversampling, but I'm hoping there's an easier way to do this.

The Merger module seems like an obvious candidate, but I don't see AM as an option there.
What about just 1 oscillator modulated by a LFO with 'Follow note frequency' enabled?
That’s how I do it.
Zerocrossing Media

4th Law of Robotics: When turning evil, display a red indicator light. ~[ ●_● ]~

Post

vanerio wrote: Sat Sep 09, 2023 2:24 pm Mmm you are right!!
It's nice to have your experiments confirmed with math. Thanks.
zerocrossing wrote: Sat Sep 09, 2023 2:54 pm
vanerio wrote: Fri Sep 08, 2023 6:20 am What about just 1 oscillator modulated by a LFO with 'Follow note frequency' enabled?
That’s how I do it.
That adds a few more harmonics than normal AM since the volume control of the oscillator is logarithmic. (Compare the second screenshot with the first screenshot in my post above)

It can sound pretty good as well, so I'd consider it another option to play around with.

Post

Use Merger module, that lets you use several algorithms for "messing 2 signals together", one of which is ring modulation, which is equal to amplitude modulation. It probably has lots of other names too :)

Simple example:

Code: Select all

$eNrFV81u4zYQnmSLYoFe+ggB0lMRQKbtJN7ThnHkrNE4diNvVj0y0kQmQpEGSblJDn2LPkIfpz33WKAv0FuPLSjJ8s-CiC2kqE5DzvdxON+Q0ggG52E4CFQm4x6LrNJPBq3lMjFAD4Hs0cNLoe6YMGN2lw-pxQVO7QRiyJ8-3tNb1IYrCW14+zXQQf+iP9Iq0SztTphM0JfsTiAQoCvTXWYxUZo-o3a+D99-nBqWTgWXiRsPuukUCZBfC6tZWa3KalfWcWWdVNZpZXUq611lkcbCXEQhizBkEYcsApFFJJKH8mNulQ74M-rMPIEh7c67o06rAUue5dkRZ1Ldcvyxq4RgU4Nxnix7vOoNz4WKHnICOaAjppkQKPgzs05cskevboKp4NZiviopK-DNz2drnua8Nn+9pyORJVyCWakwhEF2V3iqmWIYVLUPUGBkMZ4vQI7a5YGoWeDPcyxjmnlwoKED-gDkC3rNUgQzNBEXglmlgfYyIdZnD-J1zUNfAoHwnMmHBnifpVIc44+SGyWLvS6J-5r5BBM2RaAzJjKc1+DbMxqM-dHoxg-8MRDwPG853b2d0m0upZtbw8wC2a+b+WGAKbdKooH499-+Dv785auz-1eOvPpflnIMUCe4IkUx46rezbRGaV3ieQ1LVd6UVmCRCSD7tC+nme3LGB+Jw+XD3JkPh5ldcv-zgo4DFSOYGy6Tg1TFmSgu5usJ5rln6WqGL9-KxlHjP7uVbjPUWhY9EKBXKBM7cWfNlzMUyhWWGsOTKop-fTuv6n7FbNZmtmoz27WZx7WZJ7WZp7WZnRpMX84IhGONqRKqvJ9r99FhmltgWltg2ltgjrfAnGyBOd0C03kJU-Q6vpy9BLzqDcm61iuYRW1ycHMXcGsXcHsX8PEu4JNdwKe7gDtbg2+YjFWan1kmzb3SafnW3XjM33pzVrMWq1WL1d6R9R0+mYgJJDV5u+Z2i0JF3NYLukKuG3nNsVhkpNGYTONmALfR5BxlHG6EDFT8aYIoNgLGPL3TeNreCDjXyOyk0dwI8B+nbqNcSUI2goLMWOZ6mQ3+a2VxeH+-7r8UPMbyTbPq6SpptRICtfv6c5kIdN9xicK9h0IaWT5DpyDa4pfD9QIXOOMRDtCiNisN33ww1piXqp+yxLWEWSoNkDdh2Rw89S2mfXmvwKumAsssQniJUiN4YaGn24G2PJr3Ql5IhWsu7CQFL+whs5lG10mEZb8GZWsH61t5lTi5AMUx3Mu7l1GpjLP1FOiNW5vshwNmNX9cOAupmhB+4rGdDCAMVKYjdK0T3nNhURd-pZ7n-fQvMCrBQA==
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

MeldaProduction wrote: Sun Sep 24, 2023 5:08 pm Use Merger module, that lets you use several algorithms for "messing 2 signals together", one of which is ring modulation, which is equal to amplitude modulation.
Thanks for the example. AM in MSF sounds great :)

Post

:tu:
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

Ring Modulation is easier to access in MPowerSynth.

Post

But I can't make the powersynth as f**ked up

Post Reply

Return to “MeldaProduction”