Befaco modules development blog

Good one!

But you’re right - depending on what device you’re sending midi to, it might be good to be able to adjust the rate. But then, if you’re sending too fast, most devices will just drop messages.

As far as performance, it might be useful to avoid sending messages when the value of that item hasn’t changed.

Thanks for the input, very helpful! A few responses:

This seems to have a negative effect, the signal from the MidiThing suggests things are getting dropped somewhere along the way. Results below (note that MIDI thing applies some light filtering on the outputs to denoise hence the odd rounded stepped look):

frame

I am connecting via USB, but I find that if I increase the rate I get odd behaviour, as in it seems to queue up message faster than process them on the hardware, and so it plays them with a lag that can last for quite a while. Not sure if this is a Rack thing or a MidiThing issue, but looks like better-than-3125 B/s isn’t possible currently.

I think this is a good idea, and I’ve implemented it. But it also made me realise that if you want to do this right the effective refresh rate depends on number of active channels. So 1 channel you can run at 3125 B/s / 3 bytes = 1041 Hz. But if you run all 12 channels you can only update each every ~87 Hz which actually is pretty restrictive (maybe alright for gates/pitch, but not for envelopes etc).

I guess this is just a fundmental limitation, which is a bit sad as it restricts the usefulness of the module. Unless I’m missing something? Given MIDI over USB might be the normal use case, can I exploit this / am I doing something stupid to not be able to use extra baud rates?

Finally, @Omri_Cohen - does this fix the CPU spikes issue for you at least?

Just curious if the MCU on the MidiThing2 does any rate limiting to the usb midi - it has TS midi input too - it may be limited to old 31.25 k that was max for 5pin DIN / TS.

I don’t think it’s known by us mere mortals what MCU it uses - if it’s Teensy4.0/teensyduino - and I don’t think we can see the source yet.

I hope it will use the full benefits - and deliver “data at rate hundreds of times faster than the original MIDI 1.0 hardware specification .” usb.org quote

I will ask!

It is a Teensy 4.0. From their site, it can transmit at high rates, not sure about recieving though.

Teensy USB can transmit MIDI messages very rapidly, especially Teensy 4.x which uses high speed 480 Mbit/sec. Most MIDI usage where messages represent human generated musical events is naturally paced, which needs no special rate limiting. However, programs which send MIDI messages as rapidly as USB will transmit can easily overwhelm software running on your PC or Mac. Microsoft Windows will automatically discard some incoming data if received too quickly. This can be a problem for programs which send many MIDI SysEx messages. Use of delays or elapsedMillis or elapsedMicros is needed to pace the sustained transmission to a rate the computer’s software can handle.

Finally, do you/does anyone think it’s possible to connect to the Teensy over USB and send CV data via a different protocol? It’s a bit outside my wheelhouse tbh.

MidiThing v2

I think the MidiThing issue has been solved on the firmware side, still only targeting CV rate (rather than audio rate), and subject to limitations of MIDI (14 bit pitch bend channels specifically), but hopefully will be a useful addition (essentially giving you a poor man’s ES8 as a bonus):

Octaves

Befaco recently demonstrated Octaves VCO. I have a prototype up and running if anyone would like to have a play. It’s a “harsh and funky take of an additive Oscillator”. Any feedback welcome

Other

Burst, Voltio and polyphony for PonyVCO should be hitting the library soon!

As always, releases here: Releases · hemmer/Befaco · GitHub

15 Likes

Has this one lost the battle ?

afbeelding

It’s no longer in the latest build.

I’ve re-added it. I’d actually love for it to replace the existing EvenVCO implementation (handles FM better, no DC on saw, has hard sync), but I am looking for a little more feedback that it works/is better, especially given it’s been around for ages and is in most people’s libraries (i.e. I have a higher than usual threshold for merging this back). I don’t think a single person has even said they’ve used it/tested it tbh (maybe except you!).

6 Likes

What’s not to like ? :sunglasses:

Thanks for that.

2 Likes

@hemmer Is the Pony VCF also on your list?

1 Like

It is, it’s on my workbench. Little hard to know how to approach this one. It’s based on SSI2144 FATKEYS™ Chip, with resonance compensation. Is it acceptable to take (and reference) an appropriately licensed ladder vcf implementation, and just tune the response? Getting the feedback mechanism sounding like the hardware will be the tricky part.

I don’t have the skills to model the circuitry of the chip (or surrounding circuitry).

3 Likes

No sin to ask around for a pointer or guidance or just get someone to do it for you. It’s for the greater good of more free Befaco!! lol, but seriously ask Vult or Cytomic or other modeling genius, worst could happen is you are rebuffed and no worse off. You other work has been terrific and I love the idea of fully poly Pony VCO, thank you!! Maybe take a crack at the VCF anyway and see what you see. Can’t wait to play around with Burst!! Thanks again

1 Like

SurgeXT has the same license as Befaco and I’m sure they wouldn’t mind donating one of the filter models for starting. Maybe have a chat with @baconpaul and see if there’s a fit.

1 Like

I have a kit on order for it and will probably have built it by the end of the week. Whatever solution you find, if you want me to A/B anything, then let me know.

2 Likes

Cheers! I’ve actually had one myself for a little while, just been prioritising midi thing / octaves work. But if/when there’s something up and running getting people with the hardware to check would be super helpful.

1 Like

It’ll be interesting to hear how much my calibration is off :slight_smile:

Just want to say thanks for realizing these wonderful hardware modules with pride and conviction. A real joy to use this collection.

1 Like

All of our filters are here in a gol3+ header only 4-way simd library:

That also includes tests and a sample juce plugin which run them and of course if you want a rack example of using them the surge xt module does exactly that

2 Likes

Are any of them models of an SMM 2044?

I’m not sure what that is so probably not!