# Sanguine Mutants - Mutable Instruments Alt Firmwares

**URL:** <https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108>\
**Category:** Plugins\
**Created:** [February 18, 2025, 10:38pm UTC](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108 "2025-02-18T22:38:58Z")\
**Posts on this page:** 5\
**Page:** 2

<div class="post-metadata">

**Author:** ![etcetc](https://forum.4ms.info/letter_avatar_proxy/v4/letter/e/b38774/32.png) [@etcetc](https://forum.4ms.info/u/etcetc)\
**Post date:** [April 11, 2025, 9:50pm UTC](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108/21 "2025-04-11T21:50:52Z")

</div>

Thanks for the report. Immediately I had a lot of trouble with this library trying to get its faceplate and backplate to show up, they have a transparent faceplate overlaid on the backplate.

> <https://github.com/Bloodbat/SanguineMutants/blob/0fa3a6e44c0149a584a71a0ede874f8b7b369350/src/sanguinecomponents.cpp#L844>

Does the MM support syntax like this?

Similarly, panel-\>addLayer doesn’t seem to work

> <https://github.com/Bloodbat/SanguineMutants/blob/0fa3a6e44c0149a584a71a0ede874f8b7b369350/src/sanguinecomponents.cpp#L939>

I had to write a workaround for the above just to get one of the layers to load:

```auto
	#ifdef METAMODULE
	setPanel(panel);
	if (bHasCommon) {
		SvgWidget* overlay = createWidget<SvgWidget>(Vec(0, 0));
 		overlay->setSvg(APP->window->loadSvg(asset::plugin(pluginInstance, "res/" + moduleName + "_common.svg")));
 		addChild(overlay);
	}
	#else
	if (bHasCommon) {
		panel->addLayer("res/" + moduleName + "_common.svg");
	}
	setPanel(panel);
	#endif

```

* * *

Re: aestus, looks like working as intended. It has this knob that’s labeled `Module model` but it only has two discrete states which get shown in that view.

---

<div class="post-metadata">

**Author:** ![danngreen](https://forum.4ms.info/user_avatar/forum.4ms.info/danngreen/32/14_2.png) [@danngreen](https://forum.4ms.info/u/danngreen)\
**Post date:** [April 11, 2025, 10:25pm UTC](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108/22 "2025-04-11T22:25:25Z")

</div>

> [@etcetc](#):
>
> Re: aestus, looks like working as intended. It has this knob that’s labeled `Module model` but it only has two discrete states which get shown in that view.

Oh, I see it now, right.

I’ll look at the addLayer thing. It looks like the workaround you used is just using `addChild` instead of `addChildBelow`? And also explicitly setting the box.pos to Vec(0,0) (which is probably important to do)

Update: I see now, your workaround calls `addChild()` to the ModuleWidget, and the original code calls it to the SvgPanel FrameBufferWidget.

---

<div class="post-metadata">

**Author:** ![danngreen](https://forum.4ms.info/user_avatar/forum.4ms.info/danngreen/32/14_2.png) [@danngreen](https://forum.4ms.info/u/danngreen)\
**Post date:** [April 11, 2025, 11:09pm UTC](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108/23 "2025-04-11T23:09:56Z")

</div>

OK, I see what’s happening. There are three PNGs it’s trying to overlay with transparency. What we need to do is make the background one the panel (since that’s always the first/lowest layer), and then make the other two SvgWidget children of the ModuleWidget.

I tested it out, seems to work? (just in the simulator I didn’t bother fixing the font):

 ![Screenshot 2025-04-11 at 4.06.55 PM](https://forum.4ms.info/uploads/default/original/2X/2/294e17b60edd4edfa2a89764358a2f55f10a386c.png)

It would faster to load and less memory consumed to combine those three images into a single PNG. Not a huge deal, but something like imagemagick could be scripted to do all the modules in one command.

I’ll push how I did it.  
Update: pushed to branch `faceplate-fix`

---

<div class="post-metadata">

**Author:** ![etcetc](https://forum.4ms.info/letter_avatar_proxy/v4/letter/e/b38774/32.png) [@etcetc](https://forum.4ms.info/u/etcetc)\
**Post date:** [April 12, 2025, 1:05am UTC](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108/24 "2025-04-12T01:05:34Z")

</div>

I also made the same fix around the same time as you lol

I’ve updated the repo with font fixes, and also laid out the labels a bit better so they dont overlap on the MM.

I had to truncate some of the labels just as they are really hard to place anywhere at a reasonable font size.

---

<div class="post-metadata">

**Author:** ![etcetc](https://forum.4ms.info/letter_avatar_proxy/v4/letter/e/b38774/32.png) [@etcetc](https://forum.4ms.info/u/etcetc)\
**Post date:** [April 12, 2025, 11:59pm UTC](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108/25 "2025-04-12T23:59:55Z")

</div>

Updated again today - I reduced some of FFT/window size for MM on the Spectral modes for Fluctus and Etesia. So now the “STRETCH” and “SPECTRAL” modes can run on 48khz 256 buffer size.

[Previous page](https://forum.4ms.info/t/sanguine-mutants-mutable-instruments-alt-firmwares/1108.md?page=1)
