Harmonizer mit MIDI input in supercollider

fufen2000

Auskenner
Registriert
30.05.03
Beiträge
635
Reaktionen
11
Punkte
697
Moin,
ich habe mal einen Harmonizer in supercollider geschrieben. Vorbild war der Harmonizer von Jacob Collier.
Das bedeutet:
- MIDI input vom keyboard
- Audio input vom Mikro
= Harmonizer "singt" eure MIDI Noten mit eurer Stimme

Wer das ganze mal ausprobieren möchte, findet den Code auf github.com:

View: https://gist.github.com/dingodoppelt/0237aa7040bbe05b4901230d9b8cdcbe

lg, nils
 
Sehr schöne Arbeit, Respekt. Kannst Du vielleicht Ein bißchen dokumentieren wie Du Dir das Wissen angeeignet hast?
 
Sehr schöne Arbeit, Respekt. Kannst Du vielleicht Ein bißchen dokumentieren wie Du Dir das Wissen angeeignet hast?
Vielen Dank :)
Ich interessiere mich schon lange für pitch tracking und digitale Signalverarbeitung im allgemeinen. Dieser Harmonizer war auch der Grund mich damals mit supercollider zu beschäftigen. SC bringt eine (erweiterbare) library für alle möglichen DSP Aufgaben mit, unter anderem pitchtracker und pitchshifter.
Supercollider ist wirklich hervorragend dokumentiert und in der SC-IDE wird man förmlich dazu gezwungen mit der Doku zu arbeiten.

Der pitch shifting Teil ist dieser hier:
Code:
SynthDef.new("Stimme", { |midiNote, volumeBus, audioBus, pitchBus, glideTime, attackTime |
    var in, out, freq, env;
    in = In.ar(audioBus);
    freq = In.kr(pitchBus, 1);
    env = EnvGate.new(0, nil, attackTime, Done.freeSelf);
    out = PitchShiftPA.ar(in, freq, (XLine.ar(freq, midiNote.midicps, glideTime) / freq).clip(0.01, 10), 1) * env * In.kr(volumeBus);
    Out.ar(0, out);
    Out.ar(1, AllpassC.ar(out, 0.04, 0.03, 0.002));
}).add;

Die Funktion, die das pitch shifting übernimmt heißt PitchShiftPA und ist eine der Erweiterungen ("Quarks" genannt) für SC.
Im Github Repo von PitchShiftPA sind auch einige wissenschaftliche Papers zu den Algorithmen verlinkt. Neben Büchern zum Thema ist natürlich Youtube eine Goldgrube. Gefühlt hat jede Universität auf Youtube auch eine Playlist zur Signalverarbeitung und was man dort nicht findet, findet man bei einem der vielen DSP Influencer.
lg, nils
 

Zurück
Oben