top | item 38509173

Show HN: Audio plugin for circuit-bent MP3 compression sounds

229 points| wildergarden | 2 years ago |wildergardenaudio.com

I made MAIM, an open-source audio plugin that uses real MP3 encoders to distort the sound. I've also added knobs that let you "circuit bend" the encoders, changing parameters that would normally be inaccessible to the user to get strange glitchy sounds.

The plugin lets you switch between two MP3 encoders, since under the MP3 standard, the specifics of what to lose in MP3 lossy compression is left up to the encoder. The encoders are LAME, the gold standard for open-source MP3 encoders, and BladeEnc, an old open-source MP3 encoder that has a really bubbly sound and was fun to work with.

I'd love any feedback, and I'll be around to answer questions!

65 comments

order

weinzierl|2 years ago

Looks similar in spirit to Goodhertz' Lossy plugin [1], described as:

"The infinitely desirable sound of crappy mp3’s, broken cellphones, streaming videos, and much more."

I think Lossy approaches the same idea from a more artistic angle in contrast to MAIM which comes to a similar end from a more technical direction.

Coming from the 8-bit generation I find it interesting and refreshing that the younger generation seems to leave the harsh sound of the bit crusher behind and brings more sophistication into digital degradation. It's no surprise, of course, because low quality lossy compression is what they grew up with, in contrast to 4-bit 4 kHz bit banged crash, my generation would consider lo-fi.

Another plugin that is similar in spirit in the sense that it goes beyond simple downsampling to make things retro is AudioThing's Speakers. It has convolution samples from many old devices like the Gameboy or several old phones. I think it would be the perfect companion to listen to MP3 degraded sound with a speaker from your past.

[1] https://goodhertz.com/lossy/

[2] https://www.audiothing.net/effects/speakers/

I'm not affiliated with any of the companies mentioned. These are just plugins from my collection that came to my mind. Usually I do not post links to paid products at all, but I also think the VST plugin space is somewhat special in that it seems to allow many small companies to exist (maybe even prosper?), which is rare today, so I made an exception here.

wildergarden|2 years ago

Yes, absolutely! Lossy was one of my main inspirations in coding MAIM, and I would recommend their plugin highly: it sounds beautiful, although it is perhaps a bit less "accurate," since it does not use real MP3 encoders.

userbinator|2 years ago

It seems digital compression artifacts have replaced the previous generations' audiophiles liking for the "colour" that tubes and vinyl imparted to the sound.

trial3|2 years ago

MAIM is the funniest possible name for this, great job

sudara|2 years ago

This is amazing, I will def be playing with it (lossy is also my jam) and hi! I made pamplejuce, hope it worked ok for you, lemme know if anything was rough (its been growing up a bit lately)

wildergarden|2 years ago

Oh my goodness, hello! Pamplejuce has been a life-saver-- having github actions with pluginval proved to be an absolute necessity when building and linking the hacked encoder libraries. I love reading your juce blogposts as well. Thank you for all that you do!

louthy|2 years ago

Not sure what to make of it. It clearly does what it says on the tin, and from that point of view it’s impressive; but personally it’s a deeply undesirable effect. Maybe it’s bringing back PTSD of performing on Groovetech radio, streamed over RealPlayer! :D

I guess im not the audience as I prefer analogue distortion, but I also like the sound of low bit rate digital artefacts (bit crushing and the sound of old samplers) - however unlike those distortion effects this produces quite tricky resonances that I wouldn’t want to apply to audio sources in a track (because then I’d need to spend time EQing them out to make it sit well in a mix), so I’m not sure of the use case?

Bravo on the name though! (and for making it open-source)

0xdada|2 years ago

Quoting Brian Eno: "Whatever you now find weird, ugly, uncomfortable and nasty about a new medium will surely become its signature. CD distortion, the jitteriness of digital video, the crap sound of 8-bit - all of these will be cherished and emulated as soon as they can be avoided. It’s the sound of failure: so much modern art is the sound of things going out of control, of a medium pushing to its limits and breaking apart"

weinzierl|2 years ago

I think this is to a degree a generational thing. I guess between 15 and 25 we are imprinted with what lo-fi means to us.

My prediction is that after low quality compression we will see good, but noticeable auto-tune as a retro effect. I don't mean the early, late 90s overdone Cher-like auto-tune, but the one that's used seriously for pitch correction but is still noticeable.

After that, I think, bad vocal synths are a good candidate. To my old ears many are right there in uncanny valley - too human for a synth, but not human enough not to be creepy.

dylan604|2 years ago

> streamed over RealPlayer!

does it keep pausing/stuttering while displaying "buffering"? in my neck of the woods, it was hard to buffer enough data that played long enough to hear how shitty it sounded.

brnt|2 years ago

Xing encodes from Napster, baby!

TonyTrapp|2 years ago

And if you want to undo all the destruction caused by this plugin: Check out Zynaptiq UNCHIRP :) (https://www.zynaptiq.com/unchirp/).

Obviously it cannot undo every single artifact caused by MP3 compression, but I was blown away by how much it can undo the bubbly, metallic artifacts of many older MP3s. If your single source for a sound that you absolutely need is an old, low-quality MP3 file, this thing can do wonders that I thought wouldn't be possible. It's quite expensive but if this is something you have to deal with regularly, it's quite worth the price.

wildergarden|2 years ago

Oh that's cool! I didn't know about that program. Now I wonder what compressing and UNCHIRPing a sound hundreds of times in a row would sound like....

bestham|2 years ago

In the late 90s sometimes the mp3 files I got sounded awful and there was a little utility for windows named “uncook.exe” that would restore the original sound. It must have been because of some encoding error or mime error in the transfer to or from server. I was too young to know what it was but Uncook often worked to fix this.

xanderlewis|2 years ago

Very cool. Some of the more extreme examples start to remind me of one of the B-sides of Aphex Twin’s Windowlicker.

abrugsch|2 years ago

not just the WL B-sides, but there are also a few snatches of audio glitching in WL itself[0] and most of his work from '99 or so leans heavily on these exact distortions.

There was even one album that the name escapes me right now (all the track names were named like, if not directly after, exploits) where every other track was more or less just a string of encoder glitches.

I suspect a lot of his sound from that period came from griefing MP3 encoder settings (I mean pretty much all his music features some form of audio sample/synth griefing.)

As soon as I heard those examples the first thing I thought of was Aphex twin (and actually also specifically windowlicker)

[0] https://youtu.be/FATTzbm78cc?t=152 - the "underwater" effect can be heard in this timestamp but there are definitely others layered in the background throughout the track

phaserphile|2 years ago

I love the fact that you're shipping a linux version of this. Thank you, really! I do not understand why developers who make VST3 plugins explicitly choose not to ship linux builds by choice.

weinzierl|2 years ago

Seconded. Unfortunately Linux support is relatively rare in VST land. Also I wish CLAP would get more traction as a plugin format.

davidgerard|2 years ago

Windows VSTs typically run fine under Wine if your DAW supports it

nlnn|2 years ago

Very nice, looking forward to trying it later.

This seems to be something that's been getting more popular/desirable, I noticed that there was even a physical pedal released by Chase Bliss recently that reproduces mp3 compression: https://www.chasebliss.com/lossy

thriftwy|2 years ago

That should be great for making phonk-like music snippets where you want just right amount of samples distortion.

EamonnMR|2 years ago

This is really cool, and perfect for an aughts-throwback music project I've been chewing on. Thanks!

naoru|2 years ago

"tubular" really brings back memories of slightly incompatible mp3 encoders and decoders. Some combinations produced this short and distinct tone on sharp transitions in sound, I wasn't sure what was the cause but I suspect this has something to do with VBR.

Thanks!

fogbeak|2 years ago

Hey, I'm a long-time music producer and I'm dying to get into this exact kind of work - writing plugins and eventually synthesizers from scratch.

I'm curious what your path was to get to the point where you can write an audio plug-in from scratch - I noticed you're using the JUCE framework, and that's about as far as I got and I never really escaped tutorial hell.

wildergarden|2 years ago

I would absolutely recommend using JUCE-- it is very well documented, with an active forum full of helpful people.

When starting out, the first plugin I made was a gain/panning plugin, then a simple saturation plugin. These are good ones to start out with, since the output for a sample only depends on the input of that sample, and not the samples before it. After that, I would recommend making a delay plugin: there are a lot of opportunities for creativity with delay, once you have the basic code down.

The plugin project structure can be a bit confusing at first, especially in the interaction between the GUI code and the audio processing code. The tutorials are helpful for that: once you've copied a tutorial, you can try expanding it, adding more knobs etc.

boffinAudio|2 years ago

If you want to learn JUCE, one of the best things you can do is clone every single repo in Sudara's wonderful juce-awesome list, and every week do a mass update of the repositories - you will learn a lot as there are some projects which really push new updates hard each week, and just learning what was committed will give you a great path to learn things ..

https://github.com/sudara/awesome-juce

(Direct link to the raw data here: https://raw.githubusercontent.com/sudara/awesome-juce/main/s...)

Some truly wonderful things in there to learn from - starting with basic plugins, all the way up to synthesizers and a full DAW. Be sure you mine that resource!

richrichardsson|2 years ago

Since it hasn't been mentioned already, check out The Audio Programmer on YouTube [1] and Discord [2].

The JUCE forum [3] is also incredible useful and friendly place for "noobs", I'm always happy to see how non-toxic it stays 99.9999% of the time.

That said, you'll need something above "noob" C++ knowledge, as that community isn't really so into helping people with C++ basics, but if you have questions about the framework they're always happy to help. The TAP Discord has a channel that's probably a better place to ask audio plugin related C++ questions.

[1] https://www.youtube.com/c/TheAudioProgrammer [2] https://discord.gg/fdV4npvnmK [3] https://forum.juce.com

ArekDymalski|2 years ago

Great, sounds and looks exactly as it should :) Can't wait to see discussions about analog warmth and that-rich-sound-of-vinyl being replaced by geeking over that-cool-retro-encoding-artifacts :)

zbrozek|2 years ago

I can't tell the difference between the source track and the "moderate compression" sample. My lack of ability here might partially explain why I've never cared for music.

bryceneal|2 years ago

This is cool. I notice it does not seem to come with any presets, or am I missing them? I was curious what the settings were for the examples on the landing page.

eurekin|2 years ago

Wasn't expecting to like the actual sound of it, could be used to modulate game in music, for example, when approaching a club with music playing

kid64|2 years ago

This is excellent, thank you for sharing it!

dr_kiszonka|2 years ago

The last 3-4 effects remind me of Richard James. Nicely done.

WalterSear|2 years ago

Why are you doing this to me? I feel old enough already!

an_aparallel|2 years ago

awesome work - im amazed by what folks are putting out for free these days. Kudos to you :)

hyperific|2 years ago

I love a recursive name

tgv|2 years ago

Fooking cool.

liotier|2 years ago

Please add CD ripping artefacts !