4ms/metamodule

Update Befaco collection to v2.7.1

Closed this issue ยท 10 comments

It's been a while since Befaco for metamodule has been updated, I'll take a look. This adds:

  • Burst
  • Voltio
  • Octaves
  • MidiThingv2 (not to be added to metamodule)

Interesting both Octaves (polyphonic) and PonyVCO (which is now updated polyphonic in VCV) now fail to function (by fail to function, I mean just output a burst of sound then stop in the simulator). EvenVCO, which was always polyphonic, still works (so it's not a general polyphony / simd issue). I have the monophonic versions from development branch, but it'd be much more satisfying to work out the issue. Perhaps they use an unsupported simd function. I'll try myself, but if I struggle I may point you at relevant bits, unless this issue sounds familiar to you already!

Hmm... ok I'll check it out. Spring Reverb stopped working in firmware as well, I have't looked into that, but it always was kind of picky about the block size, so I suspect something with that.

The simulator uses a different audio engine, so just because it doesn't work there might not indicate an issue on hardware.

OK, on hardware PonyVCO and EvenVCO work fine on hardware. No obvious issues, though I didn't do a detailed test of each jack, just wiggled the knobs and tested some example patches that include them already.

Also the three new modules seem to function, and look good (again, I didn't do a detailed test).

Great, i'll try not to rely on simulator too much! I'm not getting faceplates for new modules on hardware though (but presumably you are because different flashing method?). Can I flash updated assets.uimg via dfu-util also (I'm just guessing that's somehow what needed)? Or is loading via USB? Whilst I do have JTAG programmer, the cable/header I have is too big so stuck with other methods for now.

I'll test properly then open a PR. I'll take a look at Spring Reverb too.

Oh right, the new faceplates won't load because they're part of the assets.uimg.

The best way to flash that is with the in-app updater (System > Update). You'd need to first build and then unzip one of the release zip files (the one ending in -assets.zip is all you need if you just are updating assets). Unzip that, copy the whole folder to a USB drive or SD card and then use the in-app updater.

Related: I tried compiling NoisePlethora and Muxlicer and they work!

Muxlicer does not dynamically change the jacks, instead it just has both sets overlayed on top of each other. The only improvement I would do is add "In" and "Out" to the jack names so that they're more evident since you can't use the color red/black to determine if you have an Input or Output selected.
I made a branch on my fork with this change the names: danngreen/Befaco@92ce02c

Nice - I've included that change in the v2-mm branch (and updated submodule), so should be picked up. I've checked that PonyVCO still works and basically uses same CPU now that upstream version is polyphonic (simd). PonyVCO is 17% usage, and Octaves is around 31% usage (it does have 6 oversampled square waves....). I'll open a PR later tonight to merge this back to main.

Great! Looking forward to it!

PR here - #351

Muxlicer does not dynamically change the jacks, instead it just has both sets overlayed on top of each other. The only improvement I would do is add "In" and "Out" to the jack names so that they're more evident since you can't use the color red/black to determine if you have an Input or Output selected.

One thing to note on this - VCV Rack (desktop application) automatically adds "output" or "input" to the tooltip text depending on the jack type, so I'll not add this to upstream Befaco (otherwise you'd get "All Out Output" and "All In Input".

One thing to note on this - VCV Rack (desktop application) automatically adds "output" or "input" to the tooltip text depending on the jack type, so I'll not add this to upstream Befaco (otherwise you'd get "All Out Output" and "All In Input".

Maybe it would be smarter to implement something similar in MetaModule? It would need to check if the jack name contains "Out" or "Output" and append if not, since there already are lots of jacks ending in "In" and "Out". It's a trivial change (I recently added auto-numbering for unnamed jacks and params). I can implement this as part of the merge. Then we can stay more in sync with upstream (and head off this issue with plugins)

Merged! Will be in release v1.1