MSF - MDrummer module envelopes don't work in Monophonic voicing mode

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

Post

Hey,

In Monophonic voicing mode, MDrummer module envelopes (Pitch, etc) don't retrigger on Note events until the Global Envelope has completed.

Could this be fixed, please? Makes it very hard to use MSF as a drum synthesizer when using these modules..

Example below:

Code: Select all

$eNrNl11zojoYx+-9FJn0do+QEBRngJ22a3s6p1pP9XR7LlN41ExD4oHg1P30Z4BFaaWW7dXeOPHJ73n7ExLif31JJNpCmgmtAkz6NkagIh0LtQpwbpZ-ePhr2PMnc52r+IpHRqe7DIwRapWhswATjM4etIiEWk10DAGeaKU3a61EhNE4Fkanc-EDAkw9NvpCCCVN85hnuwDbX2yM-vz7n03Gk40sM9sY3d7PN1IYAyVJAkxtaveJ57jMJYO38zTALnH6Hhkwl3mMYTThL7dXdxdSR89VBQ7FaJJLI2Y85QkYSLNLLSXfZBCXGR9qGTyXUspw6M-zp5nMV0L97Dz0q7-z1wq0ppqDhMhAXHlUXdb+WT1AV7mUU55AgL+leYLmO2XWkIkfkLLpFJWxs+cbVdZXcyXEplOMHkv7v8XvO6WdLVKxWkEq1KrR7Ds1hz6oLUi9ARL6Wy3zBNB4+jC7H8-HiwBTbIX+BVfxjGeZziIhJTc6JaF-d-iDJKiVWQeY9Ye267rOyB04Lg79bM03gOaL8ayOZxfxlin8l4OKCm21UAZdSb7KLgJMGMFoF2CnTzxmO9ShjA4LjxbspWxpVyzgIiFzBtQZuQVsNeJbd82ardZOrIYC9ZAiUPxJVqvkF4ShTWHo5xWgfccmNh2NRu5g8JECR-A7CtBWBWhDAXpQwPmkAk5TAec3U8BpVcBpKOAcFGCfVIA1FWC-mQKsVQHWUIAdeiKvFagJpUV2YruYFtPXoIjViFr77JOTQxp6Ig39MA09StNc5zT0F5BsJDeA6sGVkFBtrHhvK7Z9XuxhxRFguIEiaj0Z+tbrnXZv2A+yNuboLOk1jpfHd7bvtl369Mlinc79GPb8sdqS0F+kkGip5+0L0iqhkqVdWFqxThfWqVjWhWUV63Zh3YoddGEHFTvswg4r1uvCemHPv5b6icux2qJzY3j0XB7S3yDixbdOnzJ3RKg79NwBRjdJArHgBu5BAs+gRJvjeZ4ZXj5k-GH6fd6w599e3ZEjpDTTdrPTbmbtZrfdPGg3D9vNXov5nqtYJ+Xy5Cpb6jThRmjVfOG9stkarF1oVxe6d3G6ujh7F9bVpVi3f8Eui7iEDt0c0IMb7e5W9PQAUkfCdE75hn8TgP5igGYFb9HeIdQshSzLUziFCBOtL0DFJ5iJjr+vAeQJZCGSpxSG7ARykQI3a5ueQMYvm6JioRUhJ7CpNnC3XB4T11LEUL2vR3PnkRFbKBQBg+qP80UK1YtfXJKKIyD0L7mBlU53NwaSG7XUVuhf5mkKqsXr50lmhf75rIpcPKlmpiJxukH33BSXsrKQSXkXoqH-XcRmPQn9uc7TCNAshaWQprw81HtMjVi1U8+32i6HWdj7HwRWiTQ=
Just a DrS4NN, single oscillator with a gradual descent in the Pitch envelope
Global Envelope is non-percussive, zero attack/hold/sustain/release

Tap in notes, while changing the Global Envelope decay from short to long

You'll see that for long decays, the DrS4NN pitch envelope does not retrigger until the global envelope has returned to zero. It should retrigger every time you play a note

Post

I'll check, not sure about this though. You basically ask a module, that is inherently monophonic, to stop being monophonic and restart. The more I think about it, the less I think it is a good idea, not mentioning it's actually very difficult - it cannot just restart the envelopes, since there would be an abrupt change. Not sure really...
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

Hey Vojtech,

It's probably best that you try the example patch and see the behaviour - it seems obvious to me that all envelopes inside MDrummer modules should retrigger their envelopes on receiving a note when being played monophonically..

..just the same way that the other envelopes in MSF do

I've updated the example:

Code: Select all

$eNrNWN9z2jgQfuev0Cgz99SCJdkG5mx3moT0Mhd+XKBp71ExC2gqS5wtM6F--Y3sGpxgCMlTXxiz+nb30yd5dyH49JRItIE0E1qFmLQdjEDFei7UMsS5WXzs4U9RKxhOda7mNzw2Ot1mYIxQywxdhJhgdPGgRSzUcqjnEOKhVnq90krExYrMEwix0-a7PkaDuTA6nYqfEGLiM-eD77l164Bn2xA7HxyM-vrn6zrjyVoWRByM7u6naymMgQJJQkwcz2v3PULcvt97uU5DTH3Wdtxez3MY6WI05E93N+NLqeMfJQFGMRrm0ogJT3kCBtLsSkvJ1xnMi4wPlSo9j1Lq4iiY5o8TmS+F+iVEFJRfp88FaUw1BQmxgXnpEWLygeDKP6se0E0u5Yhbya7TPEHTrTIryMRPSN3RCBWxsx+3quBX4QqQOxph9L2w-2s-j1C7mKViuYRUqGVts0c4RwGoDUi9BhIFm+Io0WD0MLkfTAezEFPciYJLruYTnmU6i4WU3OiURMF4-wVJUEuzCrHb7jqe57G+5zMPR0G24mtA09lgUsVzbLxFCv-loGKrrRbKoBvJl9lliIlLMNqGmLVJz3UYZdSlXevRAHsqtrS199kmdJlPWd+z4E4tfmdc59xp3EmnpkD1SBEo-ijLW-IGYWhdGPp+BWibOcSh-X7f8-3XFDgAH1GANipAawrQvQLsnQqwugLsN1OANSrAagqwvQLuOxVw6wq4v5kCbqMCbk0Bd78n8lyBCqG0yE6Ui5Fd-gKKdGpRK59dcrJPQ0+koa+moQdp6vecRsEMkrXkBlD1cCMklIUV72y27HNbw2wLMNyAjVotRkHneaXdGRqK+l7rF7XcPo5zY+mjl9CirpNX6vo4NnwDWYg-UowuJsLEq7IfX2mVGa4MRhdTSITRqkAx2vZdjC6+KpFpNSg0ft4R6s3bNtjmDjEcX+-joiudK1N4X8PaKmZ73L1Ts2dp7IR4oDaIFDfxmX8UTJvfhzdIXLJGf-Bk-SeacKVTnnCr9m55wlWtVZKjklbOIf7otP3eEQk6bydD90dPm46+4jjOzTo3t2oOT05BaXcPziFtOb9OubObQA41Phh3WrUJ6PsRBk0JD4YfO+Lthp-G860nagUDtSHoszE8-lGc2zXEfBtir82I22W032cMo9skgbngBu5BAs+gHBthA9KK0aMuRvWVaZ4ZXpDBUTBLIdFSH7t+Nn9Jg56DpSWWnYNlJdY9B+uWWO8crFdi-XOwfontnoPtltjeOdhe1Aq+SP3IpX3hd+fXdhzKfJcSZn8U-DpL0iY+I33S9wjzjxzme49vxyFqBXc3Y3IAKcy02cyazW6z2Ws2+83mbrO512C+52quE2L3ylW20GnCjdCq3vp6xWYrYOVCz3WhOxd2rgvbubjnutg7-Ddss5hLOGM3e+jejZ7vZvf0AFLHwpyd8gX+RQD6xgB1Bi+hrX2oSQpZlqdwCmKb+iWo+QnMUM+-rQDkCchMJI8pdN0TkMsUuFk59ARk8LS2jIVWhJyAjbSB8WJxiPgixRzK9-Vg7XNsxAasImBQNZTMUihffPt3QdkBr7iBpU63twaSW7XQnSi4ytMUVIPXr5muEwWfJ2Vke1L1TDZxukb33EA5RbaCYfGvAI2Cb2JuVsMomOo8jQFNUlgIaYqf0VWNqSCdyqkVdJr+Ncmi1v+SSHsG

This now has an additional generator lane, with an Oscillator whose pitch is being modulated by ENV1, set to replicate the sound of the DrS4NN (generators are panned - DrS4NN to the left, Oscillator to the right)

You'll see that when notes are played quickly ENV1 retriggers correctly when Global Decay is at higher values, and DrS4NN does not

Hope that makes it a little clearer!

Post

I agree that in this specific case it would make sense, but the problem is it's a rather obscure thing. The MDrummer modules don't follow any global modulation or anything, they just play that one sound, which is fine in normal polyphonic situation. But you are using it for monophonic situation, sort of a monophonic drum :), and what it sounds like IS that... I'd probably suggest simply using a oscillator for this, after all you are using only an osc or something in that. Anyways I'll check if a mono restart swithc or something like that would be possible... no promises
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

I don't see what I'm describing as an obscure thing at all..

Let me describe a simple scenario as an different way of explaining:

I have a drum stick, and a MIDI Drum pad, and this is connected to MSF.

MSF has a DrS4NN, set up to play an 808-style (boom) kick drum, with a long pitch and volume decay (of, say, 2 seconds)

When I hit the drum pad with the drum stick, it sends a note on, and immediately after, a note off.

What I want MSF to do is play the kick drum. When I hit the drum pad again, 1 second later (remember, the kick drum is audible for 2 seconds), I want it to play the kick drum again, without the first kick drum continuing to play and audibly overlapping with the new one.

What I am saying in this thread is that there appears to be no way to do that in MSF using a DrS4NN.

I really wouldn't describe that as an obscure scenario - it's how all drum synthesizers and drum machines ever made work, it's really fundamental, basic stuff

If it's going to be a problem implementing mono retriggering on those envelopes, could I suggest another way? Allow the value in Globals > Advanced > Voicing > Max Voices to be set to 1, rather than the current minimum of 2.

Post

No worries, there will be a switch in the next version ;).
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

That's great news! I think it will be a big help to people building complex percussion instruments - DrS4NN is such a powerful module IMO, so much functionality in a small space with easy access to everything needed for the core sound. I hope to replace Tremor and some even older drum instruments with MSF.

I'm also excited to see what is coming for the Sampler module - I'd like not to have to use Falcon any more! And if it can replace my beloved TAL-Sampler, even better :hihi:

Post

Thank you! And no worries, a lot is about to happen ;)... in time :D
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

Now running 13.02 - Auto-restart is retriggering those envelopes in Monophonic, which is great!

It does highlight a wider issue with the Global Envelope, however - as you warned earlier, there are abrupt clicks on note events, which I guess is going to be unavoidable with a truly Monophonic voice.

So I've mostly abandoned the idea of using Monophonic for Drum sounds in MSF, as to have drum sounds that cut off and retrigger cleanly it's necessary to have at least a tiny amount of Release time where sounds overlap.

Which brings me back to the original problem - how to have a non-overlapping drum sound (except for a tiny "declicking" release time) that also ignores note-off..

I'm happy to say I've discovered the Sustain Pedal, which solves it! So if your Global Envelope is Polyphonic (1 per note) and "Enable Sustain Pedal" is set in Advanced, when you send MIDI CC 64 at a value of >64 to MSF, note-offs afterwards are ignored and the release phase of the Global Envelope begins when the next note arrives - which is exactly what I've needed!

I've noticed that the Sustain is "lost" when doing certain things in MSF (like enabling/disabling modules) requiring me to re-send MIDI CC 64 so I wonder if it would be possible to have a switch for Permanent Sustain somewhere in Globals?

Post

Ok, so I'm a bit lost here :) - is there one question or more? Which are not solved? :)
Anyways when adding modules etc. the engine needs to completely reset, with everything, otherwise very weird things may happen :). So that's why I'm the sustain is killed to (with everything else).
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

Sorry if all that was rambing or confusing!

Basically - for me - all the behaviours discussed are working as expected. Sending Sustain MIDI CC allows the envelope to work cleanly with drum sounds in Polyphonic (1 per note) mode.

The only question I had was whether Sustain could be switched into a "permanent" mode (i.e always ignore note-off) somewhere in Global, as MIDI CC 64 is sometimes lost and needs to be re-sent when making changes to the patch..

There could be reasons why it's preferable not to include such a switch, and if so, that's OK - I can build something outside of MSF that feeds it with CC64 periodically. But this appears to me to be the very last (small) thing that would enable MSF "off-the-shelf" to be the most powerful percussion synthesizer on the market, and by a long distance!

Post

First, thank you! :love:

Now, I'm afraid I cannot really force the sustain to be resent all the time, I even struggle to understand why you want that - it will make notes sound forever :o. Anyways the "panic" that occurs whenever a module is added/deleted/moved is necessary, otherwise things could really get wrong. So basically it needs to kill all notes etc.
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post Reply

Return to “MeldaProduction”