bbloomberg
Hello :) all of the resources mentioned here are great! One step I’d add to the learning part (and it’s what we did when building Jacob’s) is to spend a lot of time trying out existing implementations to determine what you like and don’t like.

For example, many of them don’t have great low end. Some are “sluggish” and need external enveloping. Getting a sense for what’s out there can help to provide a North Star when you write your own. Some classics are the Eventide H3000, IZotope Vocal Synth, TC Voice Live, Antares Harmony Engine, and Soundtoys Little Alterboy.

i_am_proteus
https://ccrma.stanford.edu/~jos/

Not much to say that Julius doesn't... open course materials for (almost) everything you might need in audio processing.

an_aparallel
Hey - one of the industry standard time stretching library is "elastique" by Zynaptiq (licensed, not open source). Used by Ableton, FL Studio etc.

If you want to peak into some source code - you can look into Rubberband library:

https://breakfastquay.com/rubberband/

Rubberband is one of the time stretching/pitch shifting algorithms used in Reaper. You can download reaper trial and listen to the results with different parameters to see how you can tweak the code and if that gets any results you're happy with:

https://www.reaper.fm/

RossBencina
Learn how to search and read the research literature, most of the rest is just dabbling in the shallows.

MTG Barcelona has been doing R&D for Yamaha since the 90s. They have published a lot of work on time-frequency transformation and have certainly implemented harmonizers and time stretchers. Look for papers and thesis by Jordi Bonada, Alex Loscos and certainly others too: https://www.upf.edu/web/mtg/research/publications

Needless to say pitch shifting is nothing new, so going back to research publications from the 90s may help. Publications might be found in early conferences of DAFX, ICMC, IEEE Mohonk, ACM multimedia, JAES, etc etc. Try keywords like "waveform similarity overlap add" WSOLA, "Lent's algorithm".

The musicdsp mailing list has discussed pitch shifting many times over the years. Participants have included engineers with fairly intimate familiarity with algorithms employed by Eventide, z-plane, etc. I would search the archives (you may need to do some digging to find all of the archives dating back to the late 90s).

Maybe look at expired patents from Creative Labs, Eventide and Antares if you feel comfortable exposing yourself to that literature.

planewave
Professor Puckett, inventor of Max and PureData (the two top visual programming languages for DSP) has a book, The Theory and Practice of Electronic Music, with interactive examples written in PD, this one probably has an example exercise for a pitch shifter [0]

I often recommend also Music and Computers originally out of Columbia. [1]

[0]http://msp.ucsd.edu/techniques.htm

[1]https://musicandcomputersbook.com/

dsp_person
I find [1] a good reference. A con is the examples are in matlab, but it's clear enough between the text and matlab code to write your own implementation.

Also [2] is a decent book for overall dsp concepts.

[1] DAFX - Digital Audio Effects (Second Edition) Edited by Udo Zölzer https://dafx.de/DAFX_Book_Page_2nd_edition/index.html

[2] Understanding Digital Signal Processing, Richard Lyons

jarmitage
Real-time audio programming 101: time waits for nothing http://www.rossbencina.com/code/real-time-audio-programming-...

C++ for Real-Time Audio Programming: https://learn.bela.io/tutorials/c-plus-plus-for-real-time-au...

bwestergard
You should learn Supercollider, starting with Eli Fieldsteel's tutorials.
zengid
Pretty good Audio Developer Conference talk on it here: https://www.youtube.com/watch?v=fJUmmcGKZMI
rhizome31
Great channel on fundamentals of digital audio: https://www.youtube.com/@akashmurthy
Chrupiter
When I wanted to make a python application to separate a song into the source instruments I used this: https://www.coursera.org/learn/audio-signal-processing. I studied signal processing as a Computer Engineer student but I didn't really get it at the time, with that course I understood what I could do in practice.
bwanab
It's not going to directly teach you how to build a harmonizer, but this guy has a series of incredible videos on audio processing that might be helpful: https://www.youtube.com/playlist?list=PL-wATfeyAMNoirN4idjev...
jkalsdjf209
Great discord where many audio programmers hang out, may be able to answer your specific questions when you get to the more detailed areas. https://www.theaudioprogrammer.com/discord

A blog post about an open source C++ pitch shifting library: https://signalsmith-audio.co.uk/writing/2023/stretch-design/

And accompanying ADC talk: https://www.youtube.com/watch?v=fJUmmcGKZMI

fxtentacle
Audio is half art, half science. That's why I'd try to find someone with experience.

Back in university, I heard lectures on FFT and its applications to audio signal processing. So open access university courses would be the second place I'd look. The approach I always try first is to ask people I know if they can recommend a conference/meetup. For example, the annual JUCE events appear to be chock full with VST plugin developers. There's also private schools like SAE where you (or your employer) can pay for you to have an hour with one of their lecturers to ask questions.

octetta
MaysonL
Check out officehours.global – a lot of audio people hang out there.
cageface
The Will Pirkle books have a lot of good info and code to get you started:

https://www.willpirkle.com

Audio programming is a lot of fun but it's the most challenging domain I've ever worked in. You have to be very careful with what you do on the audio thread. No locks, no memory allocation etc. Messing this up can result in some really ugly audio artifacts.

peterbmarks
If you are interested in Apple platforms check out https://www.audiokit.io
aj7
Use LabView as a calculation engine to do experiments. The advantage is you get system-like diagrams.
grobibi
http://blogs.zynaptiq.com/bernsee/time-pitch-overview/

Not sure if it's useful. It's probably going to involve granular synthesis.

mikewarot
Gnu Radio can easily handle audio I/O as well as it does IQ signals from SDR front ends. It's cross platform and you just build flow graphs, which then can be executed.
ivanjermakov
the__alchemist
I would pick up a microcontroller dev board that has a mic built in (Eg one of the STM32 discoveries). Also get a "codec" dev board. (Or alternatively, use the MCU's onboarod DAC). Get it to receive audio, process it using DSP, then output it, and/or save to memory. This will really force you to understand it.
brudgers
I'm trying to program a harmonizer

Why?

Not questioning your motivations.

Rather I’m curious what they are.

Ylpertnodi
www.airwindows.com may help.
checker659
Audio Anecdotes series