The harmonizer needs a little tuning, I’ll be playing around with the parameters of the ugens. But it sounds pretty decent as long as you’re within a certain range, and if you push it you can generate some pretty fun-sounding artifacts. Try beatboxing into it while humming your bassline.
I’ve hard-coded the bus my microphone is on, so you’ll need to edit that if you wanna paste this code into your REPL or your cider-connected emacs/vim. But anyway, here’s this:
(definst voice1  (sound-in:ar 1) ) (definst harmonize-input [note 60 velocity 80 gate 1 bus 1] (let [in (sound-in bus) pitch (pitch:kr in :exec-freq 500 :down-sample 0.1) amp (/ velocity 127) env (env-gen (adsr 0.01 0.1 1 0.3) gate :action FREE) orig-midinote (cpsmidi pitch) interval (- note orig-midinote) ratio (midiratio interval) sig (pitch-shift:ar in :pitch-ratio ratio) ] (* env (* amp [sig sig])) ) ) (def harmonizer (midi-poly-player harmonize-input (:overtone.studio.midi/full-device-key (first (midi-connected-devices))) :none ))