Hacker News new | ask | show | jobs
by signalsmith 664 days ago
Whoah - the author (Signalsmith) here! This was a fun way to wake up, and I'm happy to answer any questions.
10 comments

Brillant article! Thanks!

Are you also "Geraint"? (The home page https://signalsmith-audio.co.uk/ says "we" but the Geraint page https://geraintluff.github.io/jsfx/ says "I"...?)

Geraint's plugins are a great collection of excellent (and free) effects for Reaper, with a superb GUI (which isn't easy to do in Reaper/JSFX). So thanks also for this! ;-)

Yes, I'm Geraint. :D I'm the tech side of Signalsmith Audio, and my partner is the Business Brain. The JSFX plugins are mostly from before we made a proper company (back when Signalsmith was just my username) - I'm glad you're enjoying them!
Do you do anything with hardware/microcontrollers? I dabble in the daisy/rasbpi world for synthesis and effects, but have always just used off-the-shelf reverb in the chain and things like teensy audio are fine but not especially great (specifically things like shimmer reverb)
I'm not really a hardware person, although at this point I've done a couple of guitar-pedal projects. My favourite is to write OS-independent C++ DSP classes, and work with a team/client who handles the gnarly build/signatures/UI/embedded stuff.
That makes sense.

> I'm not really a hardware person

Neither am I, most of the fun is in the software anyway. The rest is just some amateurish solder work and compiling an array of components I may or may not use.

Ah, excellent! Congrats again!
Thanks for the enjoyable article!

Possibly off-topic, but I am coder with hobbyist interest in the DSP space. I have never really had a "penny drop" moment when it comes to starting from nothing and generating sound.

Even generating simple sine wave seems like either a big chore or a completely abstract concept (depending on the tools/libraries/environment), I have not been able to find a middle-ground where I feel like I am learning but not getting completely lost in trigonometry or calculus. I am not sure if I'm not using the right tools or if I need to start even simpler and build up. GNU Radio comes close to scratching an itch for me of generating signal processing pipelines and a bit of intuition, but ultimately it becomes pretty easy to get lost in that as well (and it seems mostly focused on actual radio use-cases).

Do you have any advice for someone looking to build more familiarity or intuition on this front?

First, join a good community! If you're on Discord, TAP is great: https://discord.gg/aBghGGcfYs - it's beginner-friendly while also having some heavy-hitters in there, and it's generally wholesome. You're not the only hobbyist learner, and it's important to have a place you can ask questions without feeling awkward.

If you swap language/environment later, you'll carry your understanding/intuition with you, so you don't have to start with C++ if that's not your bag (even though it's still the industry standard). There are audio-specific languages with JIT runtimes (which can be used in Logic/Reaper/GarageBand/etc.), Rust/JS frameworks, etc. so find the one that feels good to tinker with, and keep that momentum/motivation going. :)

Thank you for the advice!
You could start with making sounds using a software synth or PureData. There will be no issues with generating sine waves. And there are lot of tutorials for this.

If you aim for performance, you will have to use SIMD and language that supports it (for example, C, Rust).

Thanks for this! Your reaper plugins were a great inspiration for me to learn JSFX and make my own effects. I was pleasantly surprise to see you're still sharing things with the community when I stumbled onto your talk about pitch-shifting at ADC :) Glad to have found a whole blog to explore! Thanks again :)
Thanks for writing so many blogs. The adc talk was also great. Have you considered doing some demos with wasm on the web? Also, have you considered porting these packages to rust?
I haven't done anything with Rust yet, but it's on my free-time wishlist.

I'm working on WASM demos! I've been playing with WASM builds of my plugins, and it's great for prototyping/sharing, but it could definitely be set up better for demos/teaching: https://signalsmith-audio.co.uk/tmp/web-audio/?url=/tmp/basi...

FWIW, this is my implementation of this reverb in Rust: https://github.com/cornedriesprong/cp3-dsp-rs/blob/main/src/...
Not a question but, really cool articles on your page, cheers :)
Thanks for this, Geraint! I've been trying to get a better understanding in programming for DSP, and blog posts like this are a big help with that.

I have subscribed to your blog.

Thanks so much for taking the time to write this up clearly. I now have a much better understanding of how recent work than I did before. Really appreciate it!
Care to offer feedback on my 8-band EQ implementation for OBS?

https://github.com/phkahler/obs-studio/tree/eq8

It got rejected but only because they don't want the feature. My implementation does seem different to most which I think use band-pass filters instead.

Nothing to ask, really. Just saying thanks for a fantastic intro to reverb, that I used as one of the sources to implement my own. Hope to see more audio processing educational material.
Do you happen to know the basis of state of the art reverb algorithms such as the one used for the Bricasti? Are there any clues as to how they work, or are they completely proprietary black magic?
I don't know anything about proprietary reverbs, I'm afraid - particularly hardware units! Sometimes you can tell things about a reverb's internals by looking at impulse responses, but I've always had more fun designing something from scratch.
One of my favorite things I've ever found on the internet is the "Reverb Subculture" thread on GearSpace. https://gearspace.com/board/geekzone/380233-reverb-subcultur...

It's a discussion of some of the finer (and coarser) parts of reverb design and includes comments from Casey Dowdell (Bricasti), Sean Costello (Valhalla DSP), Matt from LiquidSonics, Urs Heckmann (u-he), Chris from Airwindows, Stian (Acon Digital) and other top-notch audio DSP gurus. They're not giving away trade secrets but there are fascinating discussions around reverb design, topology, theory, and of course perception.