top | item 38122396

Audacity 3.4

231 points| jongalloway2 | 2 years ago |audacityteam.org

119 comments

order

Aachen|2 years ago

> You can now change the duration of your audio clips without affecting their pitch non-destructively. Audacity 3.4 uses a new time stretching algorithm specifically made for music, which outperforms many of the commercially available options.

Way to bury the lede! What's this magic algorithm being spoken of, how does it work so well?

> A more detailed overview of these changes can be found in our <a>changelog</a>.

The changelog is even more terse, saying only which key combo activates it :(

A way bigger deal to me is mentioned at the bottom of the "other changes" in said changelog: Opus support!

Edit: wait, under "libraries" it says

> lib-time-and-pitch implements a time stretching algorithm originating in Staffpad. It currently is one of the highest-quality time stretching algorithms for music on the market.

Staffpad links to https://staffpad.net and seems to be some music app. The library name links to a Microsoft repository (https://github.com/audacity/audacity/tree/e4bc052201eb0e6e22...) with no readme. The source code is documentation enough :)

Slow_Hand|2 years ago

I was curious myself, so I downloaded Audacity and tried.

It's a granular time-stretch algorithm. By the sound of the artifacts at extreme settings it's akin to the 'Complex Pro' algorithm in Ableton Live (if you have any reference to that) and seems to be equally effective at a wide variety of sources (percussion, vocals, full records).

Is it better than most commercial offerings? Hard to say after a brief test, but it's not bad!

I suspect it's plenty good for the needs of Audacity's audience, who are unlikely to be demanding audio pros. As an audio professional I would never use Audacity, but if you need a quick, free, and (relatively) simple option to time-stretch a file, then it should fit the bill.

heycosmo|2 years ago

The time stretch algorithm is implemented in https://github.com/audacity/audacity/blob/master/libraries/l... particularly functions _time_stretch and _process_hop. It looks to me like a classic phase vocoder with vertical phase coherence (c.f. https://en.wikipedia.org/wiki/Phase_vocoder).

The basic idea is this. For a time-stretch factor of, say, 2x, the frequency spectrum of the stretched output at 2 sec should be the same as the frequency spectrum of the unstretched input at 1 sec. The naive algorithm therefore takes a short section of signal at 1s, translates it to 2s and adds it to the result. Unfortunately, this method generates all sorts of unwanted artifacts.

Imagine a pure sine wave. Now take 2 short sections of the wave from 2 random times, overlap them, and add them together. What happens? Well, it depends on the phase of each section. If the sections are out of phase, they cancel on the overlap; if in phase, they constructively interfere.

The phase vocoder is all about overlapping and adding sections together so that the phases of all the different sine waves in the sections line up. Thus, in any phase vocoder algorithm, you will see code that searches for peaks in the spectrum (see _time_stretch code). Each peak is an assumed sine wave, and corresponding peaks in adjacent frames should have their phases match.

Blackthorn|2 years ago

Is there a comparison of different algorithms and how they work anywhere? I only know of two, and I'd really like to understand them better.

The two I know of are Paulstretch (which is really only for super-duper-long stretching) and Lent 1989 ("An Efficient Method for Pitch Shifting Digital Sampled Sounds"), which can be thought of as a form of granular synthesis but isn't really what most people think of when they hear that term.

bdhcuidbebe|2 years ago

> The library name links to a Microsoft repository.

You link to the official audacity and chose to (incorrectly) describe it as ”a Microsoft repository”

Why being dishonest?

swyx|2 years ago

it would be nice to at least know in what ways it "outperforms many of the commercially available options.". is this asking too much?

TheAceOfHearts|2 years ago

Tangential to this, I've noticed significant differences in audio quality when listening to audiobooks at 2x speed on VLC vs MPV. In particular MPV doesn't seem as clipped.

A bit of an open ended question, but is there anything more I could do to process the audiobook to make it sound even better at 2x?

jai_|2 years ago

Staffpad and Audacity are both software under the ownership (?) of Muse Group.

Staffpad is recent acquisition which is why they are now able to share technology like this: https://mu.se/

beepbooptheory|2 years ago

I just feel like, for just stretching stuff and staying in pitch, any off-the-shelf FFT-based method has near perfect results within a meaningful range anyway. It has felt like a solved problem for a while? What does the "high-quality" mean here?

willis936|2 years ago

Is this different than paul stretching with infinite duration?

dmix|2 years ago

> a new time stretching algorithm specifically made for music, which outperforms many of the commercially available options.

I wonder how it compares to Ableton Live, warping was always a big part of Abelton.

evgpbfhnr|2 years ago

Speaking of which, how did that "audacity isn't FOSS" fuss end up? A quick search shows tenacity is still active ( https://codeberg.org/tenacityteam/tenacity ) but I have no idea how much the projects kept interacting after the initial debate

Conscat|2 years ago

Tenacity is distinct in more fundamental ways that just not being copyright infringement (for one, it uses a different GUI toolkit and is way slower and buggier), so its appeal at this point isn't closely related to whether people like Muse or not.

LWinterberg|2 years ago

It's complete BS. Audacity never stopped being open source and currently has update checking and crash reporting - it does not have any telemetry.

0cf8612b2e1e|2 years ago

I recently needed to do some sound editing, and I had a dreadful experience with Tenacity. Running on PopOS, I encountered many crashes doing simple manipulations. Even trying to scroll while playing audio ostensibly resulted in a crash. Small favor, the restore-unsaved-work functionality did save me several times.

Eventually, I held my nose and ran Audacity in a VM, and not a single crash.

Arnavion|2 years ago

FWIW it was never an issue for Linux distribution packages of Audacity. It was behind a compile-time flag so distro build scripts could have been changed to disable the telemetry. In fact the flag was disabled by default, so distro build scripts didn't even need to change and would've continued producing telemetry-free binaries.

Only binaries from Audacity themselves had the telemetry, which (as usual) is why you should never use upstream binaries.

RockRobotRock|2 years ago

seems like its because they tried to add basic telemetry?

tofflos|2 years ago

Feedback on release:

- Overall great.

- The tempo stretching example in the video was too subtle for me. I listened a few times and had trouble telling the difference.

- The documentation at https://manual.audacityteam.org/index.html is still for 3.3 which is a bit frustrating when trying out new features. Also the link labeled Manual that is displayed in the splash screen 404s for me.

- It took a bit too long to scan my computer for plugins and at the end I was told some plugins were deemed incompatible but not why.

Suggestions on next steps:

- I want to download songs and map the tempo to the song. That way I can easily loop over few bars when practicing an instrument.

- Today I use Ableton for this which can automatically detect the tempo of a clip, and align bar and beat markers to the song, without stretching the audio. It also does a decent job of following tempo variations within a clip. This all started working well in version 11.3.2.

I tried to use Audacity for this and these were my impressions:

- Opus support makes it easy to work with material from Youtube.

- Adding clips to tracks obscures beat and bar markings making them difficult to align with transients.

- Having to generate a metronome track is a bit clunky.

- Stem separation would be a nice addition so that I could easily mute the instrument I'm playing.

LWinterberg|2 years ago

> - The tempo stretching example in the video was too subtle for me. I listened a few times and had trouble telling the difference.

that's the point of it. Being able to make 124 bpm samples cooperate with 110bpm samples without anyone ever noticing that it had happened.

> - The documentation at https://manual.audacityteam.org/index.html is still for 3.3 which is a bit frustrating when trying out new features. Also the link labeled Manual that is displayed in the splash screen 404s for me.

the manual job always takes forever to complete, but support.audacityteam.org is updated.

> - It took a bit too long to scan my computer for plugins and at the end I was told some plugins were deemed incompatible but not why.

It tries to load the relevant VSTs in a child process and if the VST crashes the child process it gets flagged as incompatible. Audio plugins are awful and nobody ever follows the spec.

All of the other things you mentioned are in various stages of being planned.

crazygringo|2 years ago

Have there been any improvements in noise reduction?

That's what's always kept me from using Audacity in the past. I like the interface and operations and everything, but cleaning up audio (removing room tone mostly) has always been the first step in my workflow, and its built-in noise reduction has just been unusably terrible compared to basic commercial tools.

Or is there a common plugin people use with it that I've never known about?

lotsofpizza|2 years ago

Typically a noise reduction plugin installed with the DAW by default isn’t going to be amazing. People usually install their own preferred plugins when using a DAW. If you look up noise reduction VSTs you will get lots of results for paid and free plugins compatible with Audactiy. I don’t have a recommendation but googling “reddit cheap noise reduction vst” came up with a lot of viable recommendations.

marssaxman|2 years ago

This is a big deal! My primary use of Audacity was to create custom edits of tracks I wanted to mix, saving effort later when DJing. Aligning my edits with the beat grid always took a lot of work, so much so that I hacked up a different audio editor, trying to integrate beat detection (https://github.com/marssaxman/gum-audio). Audacity felt like it was frustratingly behind the times in this regard; well, it's five years later now, but I'm glad to see they've made it happen.

teilo|2 years ago

Audacity, despite its weaknesses compared to commercial tools, still excels at batch processing due to its Nyquist plugin suite. The macro tool is finicky, but you can still do things that nothing else can in a batch, like trimming leading and trailing silence and then adding an exact amount of silence to the front and end of a file. You would think functions so simple and obvious as this would already exist in Audition, RX, SpectraLayers, etc., but no.

atoav|2 years ago

Ffmpeg or sox can do the silence trimming for you on the command line. And it is totally reasonable to just have a script lying around that does that.

kzrdude|2 years ago

Audacity is also commercial, even if it's free and open source. That's because Muse is developing it and has a commercial interest in it, and their goals now (partly) govern the project.

For example, that also makes them vulnerable to "enshittification".

intalentive|2 years ago

I take care of that stuff in Python, it’s pretty straightforward.

jacquesm|2 years ago

Sox?

synergy20|2 years ago

this is made in wxWidgets by the way, a cross platform c++ GUI framework like Qt but 100% free

on the other hand inkscape is made with gtkmm(gtk), which also runs cross platform.

viraptor|2 years ago

For some values of "works". Inkscape is close to unusable on MacOS because it goes through the X server and every interaction is really slow.

LWinterberg|2 years ago

Audacity will switch to Qt/QML for version 4 because wxWidgets just keeps getting in the way.

jadbox|2 years ago

How does wxw and gtk roughly compare? I have liked the UI of Audacity moderately more than Inkscape, but I don't know where framework versus implementation is at play.

CephalopodMD|2 years ago

This is about halfway to a competent DAW (whereas before I feel we were at like 15%). You could really demo something pretty well with this I bet!

FigurativeVoid|2 years ago

These are some really nice quality of life updates. I've never used time stretching, but combined with the beats and measure markers, it could be really nice.

defrost|2 years ago

There's a particular occasional need for easy to use time stretching of audio against video.

Every now and again there'll be a hard to otherwise source episode of something that turns up two poor vesions, one with good video but damaged | lower quality sound another with good sound | bad video .. and they each have differing frame rates and edit cuts.

To make a better version involves a bit of time stretching on the audio between marks.

I still have an eye out for the best OS tool for merging and aligning video + audio + subtitles tracks .. the smoothly integrated intersection of MKVToolNix + SubtitleEdit + Audacity.

SoftTalker|2 years ago

Yeah I don’t use this application much but I have occasionally created edits, condensed a song by shortening the intro or dropping a verse, and having beat alignment would be convenient

paul7986|2 years ago

Does anyone know if there's an AI music app in which I can sing my melodies into and it then automatically adds AI drums, bass and other instruments? Be even cooler if i change my singing voice too

I loved Apple's Music Memos (works still on some old iPhones) as I could strum my guitar and sing my songs in it to automagically with one click add AI drums and bass (tempo could be changed/edited). They discontinued the app a few years ago, unfortunately.

QuantumGood|2 years ago

3.4 removes the functionality that clicking on a clip separator no longer joins clips, but I have long joined at separators by highlighting an area with join(s), then using this macro set to the keyboard shortcut "j":

   Join:
   SelectNone:

EarthAmbassador|2 years ago

Is there a good reason why there isn't a hot key combo for zooming on tracks with a Mac in 2023? Command + is the standard for a lot of media editors in Mac OS.

LWinterberg|2 years ago

Audacity predates this convention, it's Cmd+1,2,3,E,F for zoom in/neutral/out/selection/project at the moment. It definitely should be changed though.

tohnjitor|2 years ago

Audacity is a great suite of tools. Never thought to try to use it for arranging music but apparently now I can.

shmerl|2 years ago

When is it switching to Qt? Their current interface is very clunky.