Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Audio plugin for circuit-bent MP3 compression sounds (wildergardenaudio.com)
229 points by wildergarden 10 months ago | hide | past | favorite | 65 comments
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!




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.


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.


Thank you wildergarden for giving MAIM out for free!

Most other usable plugins in that realm cost real money (Lossy is USD 79 for example) so I like to take the liberty to highlight the donation link:

https://ko-fi.com/wildergardenaudio


Love what OP has created and is releasing free (thank you!)

Did want to point out some other cheap/free bitcrushers out there for people to try (in addition to MAIM)

https://www.deniseaudio.com/plugins/my-crush is currently free with newsletter sub and was super cheap when I first purchased it.

Some other free vst of note https://bedroomproducersblog.com/2012/03/09/bpb-freeware-stu...

I also like https://camelcrusher.com/


very cool to hear lossy was an inspiration, and to know there's a more accurate version of the same idea out there in the world. and yes that's a totally accurate characterization re: accuracy when it comes to lossy. the loosely-based-on-mp3-ness also lets us be creative with certain engineering constraints, like getting it onto a guitar pedal: https://www.chasebliss.com/lossy


Thanks for the comment! I really love the quality and attention to detail you folks put into your plugins, and I had no idea you made Lossy into a pedal. So cool!


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


I don’t think so. I’m probably of the ‘current generation’, but tubes and vinyl and tape etc. do have a certain undeniable and pleasant analogue warmth. Digital artifacts have no such quality; they just happen to induce some nostalgia amongst those of us who (in my case just about) remember when they were a necessity.

No one’s going to be converting their music library to old-fashioned low bitrate MP3s, whereas vinyl is more popular than ever. (Okay, maybe not ever, but it’s actually growing again.)


> whereas vinyl is more popular than ever. (Okay, maybe not ever, but it’s actually growing gain.)

let's not confuse "the only format available at the time" with popular by choice. each time a new format was created, it was adopted to the point of vinyl nearly becoming obsolete. what is old is new again is part of vinyl's resurrection. it's doubtful most hipsters buying vinyl today even have sound systems other than bookshelf speakers to hear a difference in any format.


I’m not confusing those; by popular I simply meant… well, popular. It was what everyone used because it’s what there was.

My point was that vinyl, as well as being (1) pleasingly retro and (2) physical rather than existing in the cloud somewhere, also has (3) fundamentally desirable traits as an audio format — ‘analogue warmth’, etc. Bad lossy digital compression has (1) but not (2) or (3).

You’re right about vinyl’s current popularity not having much to do with that though: it’s mainly (1) and (2) I think.


I always thought an interesting format would have been the plastic disc with a physical track similar to vinyl, but read optically so that it could be a disc that was compact like that other digital format. The loss in fidelity would naturally cause the format to have a charm of its own. Sort of like those old films with an optical audio track that have a distinctive sound.


Laserdisc is analog optical, but not so compact.


Analog audio was first, and video was always analog, but most of the time laserdisc audio playback is literally CD Audio (not merely 16bit/44.1khz but the same intermediate data/error correction/scrambling... even CD-G was recycled into LD-G)

That said, assuming a pilot signal was added one could probably put two to three hours of PAL-frequency analog audio (which completely went away with digital sound) onto a CD.


Optical turntables exist.


not compact as a disc. that's just someone retrofitting an optical reader for existing vinyl. that's not even close to what i'm suggesting


MAIM is the funniest possible name for this, great job


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)


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!


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)


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"


I remember first seeing that quote on a Kotaku article, where they had unfortunately misinterpreted "the crap sound of 8-bit" as referring to retro videogame music made on 8-bit CPUs, rather than (what he was actually referring to) 8-bit audio[0].

[0] i.e. https://en.wikipedia.org/wiki/Audio_bit_depth


Funnily enough, to get the "crap sound of 8-bit" you usually needed a 16-bit computer (the Amiga). But that's nothing compared to the "crap sound of 1-bit", i.e. playing sampled sound using the PC speaker. I still remember thinking "how is this even possible?!" when I first heard it...


Yeah, it's amazing what you can do with just a 1-bit pulse. You can even do multiple instruments[0] or win the loudness war[1].

[0] https://www.youtube.com/watch?v=wV9PfEFw78I

[1] https://www.youtube.com/watch?v=s_ANEQu5Lto


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.


> 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.


Xing encodes from Napster, baby!


I used to record broadcast radio to a SLP VHS tape. Just imagine how that sounded!


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.


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....


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.


I think this used to happen when files were transferred as plain text rather than binary, but I forget which transfer protocol was affected - maybe FTP?


>> uncook.exe is a utility to remove line feeds from the mp3 file. Line feeds can be inserted when web sites are not configured properly to serve mp3 files. So Netscape (the browser which actually pays attention to such things as server configuration), can download mp3's as text files.

https://hydrogenaud.io/index.php?topic=736.msg6877#msg6877

>> How many times does it happen? You click a link to an mp3 file while using Netscape, and before you know it the mp3 file starts loading itself like a text file in Netscape. Either that, or you shift+click on a mp3 file then put save to disk. You goto play it after it downloads, and in no time you are disappointed that it sounds like plain screwed up shit, like you are under water, or you are listening to the lead singer of Type O Negative gargleing on a glass of kool-aid!!! Well with this new fix program that Blex has found out there on the net, I will guide you though fixing this irritating problem!!!

http://blex.org/mp3/archives/02161998/fix.html


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


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


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.


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


As someone producing in linux land I wish CLAP was more widespread as well


Meanwhile, we have JUCE and it produces perfectly cromulant Linux VST3's ..


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


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


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


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


"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!


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.


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.


I completely agree with your comment and would like to emphasize the part of about the delay.

I wrote a toy synthesizer for the ESP32 where I used STK for the bulk of the synthesis. That was pleasant endeavor but the real pleasure started when I wrote my delay effect. I had so much fun adding features like multiple playback heads with separate feedback and volume.

Another fun thing to implement was the apregiator and something that I call a scaler¹, I learned so much about music theory while doing this.

1- There is probably a name for that effect where you choose a scale and if the effect receives a note outside, it outputs the closest note in the selected scale.

edit: I forgot to add that your plug-in is awesome


>There is probably a name for that effect where you choose a scale and if the effect receives a note outside, it outputs the closest note in the selected scale.

Pitch quantization.


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!


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


Hi there, I’m in a similar situation!! Would like to write my own things at some point.

For me I’ve looked at using the new Max VST compiler https://cycling74.com/products/rnbo

Great for prototyping ideas.

There is also native instruments Reaktor which is also awesome for low level dsp prototyping. https://www.native-instruments.com/en/products/komplete/synt...

These tools are for creating the algorithms before programming them in text.


There's also PureData which is free/FOSS. I prefer Max if I'm using a visual dsp language, but PureData can technically do everything Max does, tends to have wider support for 3rd party programs (I have a guitar pedal that can load PureData files for example) and like I said it's free. There are ways to turn it into a VST, as well as some VSTs that are just PD runtimes so you don't need to compile it[0]. And it's by the same person who created Max.

Reaktor is the most difficult for me to work in, that might just be because I learned the other 2 first. But you get their library of pre-built components which is nice. Want an exceptionally accurate Moog filter in your effect? Just drag and drop the one they've already made.

[0] https://news.ycombinator.com/item?id=33302905


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 :)


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.


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.


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


This is excellent, thank you for sharing it!


Oh this is fun.


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


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


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


Very cool!


I love a recursive name


Fooking cool.


Please add CD ripping artefacts !


love this!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: