Sanguine Modules Development

If you want an example of what the Trigger input does with Freeze off in Nebulae’s Stretch mode in a simple patch, you could try this:

faeries_in_a_universal_studios_classic_lab.vcv (1.7 KB)

You can mute and unmute the signal to the trigger to hear the difference :slight_smile:

2 Likes

Thank you for all the detailed explanations and for the patch! I tried the other Nebulae modes as well, and it made the trigger effect much clearer. :slightly_smiling_face: Going back to my patch, I noticed now, there is an effect, but I think, it’s just quite diffused due to my frequent toggling of the freeze/stutter input.

1 Like

The “Handle triggers as gates” context menu option described a few posts above also affects the effect. The more hardware-like behavior is obtained with that option unchecked (it is checked by default due to familiarity and old patch compatibility).

1 Like

Oh yes, the trigger effect appears significantly stronger when the option is disabled. I can clearly notice the difference in my patch, and in your patch anyway.

1 Like

I have to say, I am seriously impressed with your documentation and the thought you put into designing your enhancements to the Mutable Instruments modules. The docs are fun to read, well thought out, informative, and very complete.

I never jibed with the Mutable Instruments, and your esthetic is the antithesis of what I personally like, so I likely will not use your modules other than playing with patches others have created. Never-the-less, you have earned my respect big time. Great job, and I hope you are able to keep your momentum. I know a huge population adores Mutable Instruments for good reason, and you are adding tremendous value to a beloved line.

3 Likes

Thank you for comments and words of encouragement :slight_smile:

I have to say you were the one who first suggested adding some options as menu items as to keep compatibility; yet move forward with certain fixes and corrections, that has become a staple, so I thank you :slight_smile: ; also, some of your modules are an integral part of my patches, tests and demos, even if they are not, in turn, my aesthetic cup of tea :slight_smile:

1 Like

@bloodbat, just wanted to say thank you :pray: for Anuli, it’s such an amazing module! I used it in my latest patch (https://youtu.be/6QDXXwJJIXo) as the only voice, and I am thrilled.

3 Likes

The music left me with a great, hopeful feeling, so, thank you :slight_smile:

1 Like

I revisited the Explorator noise generator and added a new one: “Sanguine white noise”.

It is really close to what the original generator does; but at a third of the CPU cost:

From left to right, the original generator, the prism noise generator and the new “Sanguine white noise” generator. All 3 modules are generating 16 separate noise channels.

The default remains Prism; you can change the generator using the context menu and save your preferred one for future patches by saving the default preset; if you think I should change the default let me know.

EOL

Haha, I assume you’re referencing the iconic ‘End of line’ close communication statement from MCP (Master Control Program), from the then revolutionary movie Tron (1982)?

2 Likes

You assume correctly :slight_smile:

Just briefly reporting: Patch (the one you’ve already seen) with Tidal Modulator polyphony (with Aestus) and FX selection of the Disastrous Peace in Anuli via CV. Worked all fine, no errors! :slightly_smiling_face:

As a side question: In Disastrous Peace, you select the chord with the Structure knob or the corresponding CV jack. Are the chord types and knob positions of the chords the same as for the Chord mode and Harmonics knob in Funes? Your doc displays an explaining image for Funes, but not for Anuli:

When closely listening, I had the impression it’s the same for the Disastrous Peace, but I’m not quite sure.

And: Is the range of the Structure input only 2 Volts? When setting the Structure knob fully counter-clock-wise and then sending about 1 Volt to the CV input (with attenuverter to max position), I think I’ve got already the m9 chord which corresponds to noon position of the knob.

Thank you for reporting :slight_smile:

Yes, in Disastrous Peace mode, the Structure knob follows the same diagram, I will add a reference to it in the manual, thanks for catching that incomplete part of the docs, I envy your ears :slight_smile:

The range of the Structure input, and every modulation port, is -5V to 5V (10V PTP), that said, both the Audible version and Anuli follow the process outlined below for almost every CV port (the exception is the Frequency port, not relevant to this conversation :wink: ), albeit using different approaches (Anuli uses SIMD); it is quite similar to what the hardware does (though that one is 16V PTP: off Rack standards):

  • Get the incoming voltage and divide it by 5.
  • Multiply it by 3.3.
  • Multiply it by the attenuverter value.
  • Add the result to the value set by the knob.
  • Limit the total to a number between 0 and 0.9995.
  • Send the value to the firmware.

All well and good except… except where the Structure voltage is concerned for Disastrous Peace mode, specifically: the process is the same up to adding the result to the knob, after that, the voltage is multiplied by the total chords; converted to integer; limited to the available chords and sent to the firmware.

I understand why it would come across as having a limited range due to the massive, fast changes; but I can’t change it without breaking patches and, also, this has been the way it works for mine and other ports; in this case, the attenuverter is your friend :slight_smile:

The expanders for Apices and Mortuus to add CV modulations have the same perceptual issue due to how parameters are handled in those modules; but are also supported by attenuverters, I use them often and haven’t had to file a complaint to myself… believe me, I would… and I would word it strongly! :slight_smile:

All that said, if you can’t get to the Major chords using CV, do let me know: that is, indeed a bug, and we don’t like those :stuck_out_tongue:

I hope some of this was helpful, or at least made things a bit clearer.

1 Like

Thank you! :slight_smile: No, there’s no problem with addressing the Major chord with CV.

Actually there’s no problem at all, and no need to change anything. I just had the feeling since some time that my use of your modulation ports is off. What I meant with my guess of a “2 Volt range” (upon closer look it’s even only about 1.4 Volt) is the following:

  • If I set the Structure knob to noon, the attenuverter to 100%, and send -0.7 Volt to the CV port I get the Octave chord (corresponding to fully counterclockwise knob position without CV). Everything < -0.7 V (down to -5 V or even lower) is still the Octave chord.
  • If I send +0.7 Volt I get the Major chord (corresponding to fully clockwise knob position without CV). Everything > +0.7 V (up to +5 V or even higher) is still the Major chord.
  • I observe the same, for instance, for Brightness: If the knob is at noon and the attenuverter is 100%, below -0.7 V and above +0.7 V the brightness doesn’t seem to change anymore.

I probably have a misunderstanding about the meaning of “the CV port range is -5V to +5V”: I always understand this as “-5V corresponds to fully counterclockwise knob position, and +5V is fully clockwise” (if the attenuverter is maxed). If I want to cover the full range with an LFO, for example, I use a bipolar LFO with -5/+5 Volt range. Let’s say, it’s a triangle wave with a fixed slow frequency, my expectation was always that the result is the same as if I’d move the knob steadily by hand from left to right and back.

But if I apply the -5/+5 Volt LFO, for example, to the Brightness port with the attenuverter at 100%, I would get the minimal brightness for a long time (-5 to -0.7 V), maximum brightness for the same long time (+0.7 to +5 V), and then in a comparably short period (-0.7 to +0.7 V) the brightness will actually change.

No problem, because there’s the attenuverter! By trial and error (using again the Disastrous Peace Structure and Brightness inputs) I found that I have to set the attenuverter to about 38% to get the described behaviour with a -5/+5 Volt bipolar LFO. So, with 38%, -5V input corresponds indeed to counterclockwise, +5V input to clockwise knob position. (I was assuming first, 14% (= 0.7 V / 5.0 V) should be the right attenuverter position, but testing showed, it’s too small. I guess, something with the attenuation is not as linear as I was assuming…)

Holy cow, what am I nitpicking here. :smile: Like I said, no need to change anything, it’s just different than I expected. Best is, forget everything what I wrote!

For now, as my working hypothesis, I’m happy to keep 38% as the magical Sanguine attenuation number in mind (but subject to be verified on a case by case basis)!

1 Like

That behavior has been inherited from the Audible Rings port, sorry about the confusion; if anything, at least there’s solidarity: I have been bit by it as well; but when I thought about changing it… it was too late… I try to break user patches as little as possible if providing a solution would be impractical (I’ve done little breakages here and there; but the solution is usually a couple of clicks) :frowning:

The voltages issue for Anuli we are discussing is, as of right now, my textbook example of “impractical”: Anuli’s (and Audible Rings’) values are manipulated before being sent to the firmware in a number of ways that are not quite what most of the other modules do: the knobs are not exactly what you expect under the hood either… so, there’s a lot going on.

I haven’t stared a lot at the Elements source; but I suspect the ports of that module do something similar… just a feeling; why bring that up? I’ve pondered bringing, at least, an Anuli-like “calibration” to it: I’ve seen people comment about their dislike and confusion about the Frequency knob in at least one port, so, if I get around to doing it… I’ll try to make the ports behave as expected as well, if needed and possible.

I believe, without going through the source of every one of my modules (there’s quite a few between Monsters and Mutants and I don’t keep the code for them all in mind :stuck_out_tongue: ) most will work as you expect: strictly linearly, again, sorry for the confusion; now… as I mentioned in my previous post, there are situations arising from the range of values the firmwares expect: the Peaks firmwares want such big numbers that, if the attenuverters in the expanders are set all the way left or right, changes will be huge even with little voltages, despite the voltage logic being completely linear (I wrote it from scratch); but that’s how the firmware wants its values, so the attenuverters help fulfill the desire of the artists.

Scalaria suffers from a similar issue; this time regarding the Frequency knob, also stemming from the firmware: the values expected by the firmware are so low vs. The frequency ranges users expect are so high, the spectrum is really compressed over the knob (there was a post in a forum where someone requested it from the firmware’s author and then an “it’s done!” response by the creator of the firmware). Scalaria is another candidate for an Mk2 version, sans those firmware constraints. Why not write it like that from the get-go? I believe a lot of users (including me, at least when first doing a module) want the hardware experience, warts and all, that’s why the Peacocks live in Aestus; why the parameter lights were emulated in the Nebulae family, and so on… given the new features of the next release, some of those emulations have gone the way of the Dodo (humanity misses you, you funky bird), while some crucial others were added (like the Nebulae family properly treating Trigger voltages as such and not as gates); but hey… they were there at some point :stuck_out_tongue: (and the Peacocks remain :slight_smile: )

1 Like

Hi Bloodbat, thank you for the insight into the constraints of your development process! That was interesting to read, and I understand better now why some behaviour of the module inputs might be confusing. But once you know how it works, it doesn’t hurt to enjoy your modules - and neither if you don’t know how it works; trial and error is a capable guide! Keep up your great work! :slight_smile:

1 Like

I made some changes to how (and when) the Nodi family handles resampling and some inputs, this makes the modules use less CPU, particularly when polyphony is used (though a small improvement for monophonic scenarios was also achieved).

I would really appreciate if you wonderful folk could kindly test Nodi and Contextus using the latest Nightly and let me know if something is off either in the output or where triggers are concerned :slight_smile:

2 Likes

I’ve tested a bit both Nodi and Contextus (SanguineMutants-2.7.5-e093570-nightly-win-x64), with 8 channels of polyphony, with and without triggered VCA, most or maybe even all of the models, modulation in timbre, color, attack, decay, etc. I could not notice any obvious* glitch or difference in the audio output compared to the previous version I had (SanguineMutants-2.7.0-d23317f-nightly-win-x64) (which, I guess, is good in this case). The modules also behaved stable; I didn’t experience any crash or NaN output.

(* The sound spectrum of Nodi and Contextus with all their models and possible values for timbre and color is so huge that I certainly did not cover everything in proper detail, and I’m not very familiar with many of the models, so often I even don’t know exactly how it should sound.)

Thank you for constantly expanding and improving your modules! :slight_smile:

1 Like

While I’m testing… :slight_smile: Can you reproduce the following in Funes? I noticed this already several months ago (on two different PCs, but both Win x64), so it hasn’t been introduced by the latest nightlies.

I tried to construct the problem now in a minimal patch: I add a Funes module to an empty patch (+ Audio + LFO as trigger clock (freq = 0.2 Hz)), and change the model to “6 OP-FM1”. The normal output with each trigger looks like this:

However, if I close the patch and reopen it, I get a nasty high cheep noise exactly once at the beginning:

After that, the sound is normal again. If I use polyphony I can hear this noise multiple times after loading the patch, and I have the suspicion it happens exactly once per poly channel (when the channel is triggered for the first time, maybe…)

It also happens for the other two “6 OP-FM*” models, not sure if for all Harmonics settings. But for example, I can reproduce it with “6 OP-FM3” with Harmonics at 70%.

I didn’t notice the glitch for any other model except the three “6 OP-FM*” models.

It’s not a major issue for me because it disappears after the patch is running for a few seconds, and apparently only the FM models are affected. So, if you can’t reproduce it or it’s not easy to fix, just forget it! :slightly_smiling_face:

1 Like

And a peanut (I hope): The Mutants doc says the Pitch knob middle position for Etesia Resonestor model is A3…

image

…but it sounds like C4 to me. (I double checked with Hot Tuna.) The CV input seems to follow 1V/Oct standard with 0 Volt and knob in middle position = C4 (which I would be happy about).