vocal autotune/harmoniser für Clavia G2

T

Tim Kleinert

...
hi, falls es interessiert, habe auf dem Clavia G2 einen auf dem keyboard polyphon spielbaren vocal autotune/harmoniser mit Formantkorrektur/-kontrolle entwickelt.
Zu finden hier:
http://www.electro-music.com/forum/topic-26247.html

es ist ein "work in progress", gewisse dinge kann ich vielleicht noch verbessern, aber es funzt schon ganz ordentlich.

(Anm.: Doppelpost-Alarm :oops: -hab' das zuerst fälschlicherweise im "Klangfragen"-Subforum gepostet. Kann man dort gerne löschen, thx.)
 
Oh, danke.

Ja, im Moment ärgere ich mich immer noch mit einer Verbesserung der Tonhöhenerkennung rum. Mein Design filtert Signal mittels eines adaptiven LPF auf eine unizyklische Wellenform herunter und misst dann die zero crossings. "Adaptiv" bedeutet dass das Signal am Ausgang des LPF mit einem Envelope Follower ausgemessen wird, welcher rückkoppelnd dann die Frequenz ebendieses Filters invertiert steuert. Ist eine Erfindung von mir, aber sie funktioniert erstaunlich gut :lol:, und man kann es durch Justage des Filters, des Mod-Ranges und des Env-Followers gut feintunen. Das Problem ist nur, dass durch das Filtern die zero-crossings phasenverschoben werden, sodass man diese nicht mehr zum Antriggern des wavecycle-basierten Pitchshifters verwenden kann, sondern hierfür nochmals eine zweite Abtastung vornehmen muss. Not good enough.

Bin also auf der Suche nach einer Schaltung, die auch mehrzyklische Wellenformen (d.h. mehr als 1 zero crossing pro Grundschwingung) als solche erkennt, und auch so immun als möglich ist gegenüber Störsignalanteilen. Habe mich hierzu in die Thematik eingelesen und auf patentstorm.us ein paar Patente angesehen. Ist ein interessantes Gebiet, geht zurück bis in die Anfänge der Nachrichtentechnik (Stichwort PLL), kann man eine Menge lernen.

Die mit Abstand beste Methode in der time domain ist zweifellos die Autokorrelation (das Audiosignal wird von verzögerten Kopien seiner selbst subtrahiert, die Auslöschungsmaxima bestimmen die Periode). Nur sehe ich keinen Weg, diese auf dem G2 zu implementieren, da alle Verzögerungen (in Samples) mit einer Schleife auf einmal abgearbeitet werden müssten (was eh auch relativ rechenintensiv ist). (Mein Experiment mit einer PLL-Delayline scheiterte kläglich :lol:.) Schade. Eine andere Technik, "zero crossing max gradient detection" (A.Szalay), d.h. die Anstiegsgeschwindigkeiten der Wellenform bei den Nulldurchgängen auszuwerten, hat nicht gehalten was sie versprach. Tja, und nun... warte ich auf Inspiration. :lol:

2b continued.
 
Liest sich sehr beeindruckend, ich probiere das bei Gelegenheit mal aus. Danke für das "Sharing" :)
 
Noiseprofessor schrieb:
Liest sich sehr beeindruckend, ich probiere das bei Gelegenheit mal aus. Danke für das "Sharing" :)
Falls Du einen G2 hast kannst Du Dir via obigem Link mal das Autotune-Patch ansehen/anhören. In dessen FX-Sektion, in der 2. Kolumne, steckt der beschriebene Pitch-Detector. Ist aber leider nicht beschriftet (eine Untugend von mir :oops:), aber Du erkennst es am LPF mit nachgeschaltetem Env-Follower.
 


Zurück
Oben