9 ms·
Show HN: Audio plugin for circuit-bent MP3 compression sounds
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!
- kid64 3y agoThis is excellent, thank you for sharing it!
- mock-possum 3y agoOh this is fun.
- pschuegr 3y agoVery cool!
- TonyTrapp 3y agoAnd if you want to undo all the destruction caused by this plugin: Check out Zynaptiq UNCHIRP :) (https://www.zynaptiq.com/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 3y agoOh 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....
- deleted 3y ago[deleted]
- bestham 3y agoIn 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.
- phpnode 3y agoI 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?
- justsomehnguy 3y ago>> 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 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 http://blex.org/mp3/archives/02161998/fix.html
- trial3 3y agoMAIM is the funniest possible name for this, great job
- hyperific 3y agoI love a recursive name
- eurekin 3y agoWasn'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
- EamonnMR 3y agoThis is really cool, and perfect for an aughts-throwback music project I've been chewing on. Thanks!
- fogbeak 3y agoHey, 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.
- ace2358 3y agoHi 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 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/synths/reaktor-6/ https://www.native-instruments.com/en/products/komplete/synt... These tools are for creating the algorithms before programming them in text.
- squeaky-clean 3y agoThere'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 https://news.ycombinator.com/item?id=33302905
- deleted 3y ago[deleted]
- wildergarden 3y agoI 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.
- WalterSear 3y agoWhy are you doing this to me? I feel old enough already!
- weinzierl 3y agoLooks 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/ https://goodhertz.com/lossy/ [2] https://www.audiothing.net/effects/speakers/ 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 3y agoYes, 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.
- weinzierl 3y agoThank 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 https://ko-fi.com/wildergardenaudio
- 3y ago
- thriftwy 3y agoThat should be great for making phonk-like music snippets where you want just right amount of samples distortion.
- phaserphile 3y agoI 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 3y agoSeconded. Unfortunately Linux support is relatively rare in VST land. Also I wish CLAP would get more traction as a plugin format.
- badosu 3y agoAs someone producing in linux land I wish CLAP was more widespread as well
- boffinAudio 3y agoMeanwhile, we have JUCE and it produces perfectly cromulant Linux VST3's ..
- davidgerard 3y agoWindows VSTs typically run fine under Wine if your DAW supports it
- tgv 3y agoFooking cool.
- louthy 3y agoNot 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)
- weinzierl 3y agoI 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.
- 0xdada 3y agoQuoting 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"
- Nition 3y agoI 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 https://en.wikipedia.org/wiki/Audio_bit_depth
- ArekDymalski 3y agoGreat, 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 :)
- naoru 3y 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!
- an_aparallel 3y agoawesome work - im amazed by what folks are putting out for free these days. Kudos to you :)
- dkarras 3y agolove this!
- xanderlewis 3y agoVery cool. Some of the more extreme examples start to remind me of one of the B-sides of Aphex Twin’s Windowlicker.
- abrugsch 3y agonot 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 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
- sudara 3y agoThis 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 3y agoOh 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!
- dr_kiszonka 3y agoThe last 3-4 effects remind me of Richard James. Nicely done.
- zbrozek 3y agoI 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.
- nlnn 3y agoVery 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 https://www.chasebliss.com/lossy
- liotier 3y agoPlease add CD ripping artefacts !
- bryceneal 3y agoThis 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.