LINEARE STEUERKURVEN
Moderator: herw
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
LINEARE STEUERKURVEN
Ziele und Überblick
Ziel dieses kleinen Projektes ist es, sich an lineare Steuerkurven heranzutasten.
Ich möchte mich dabei auf lineare Steuerkurven beschränken, damit dieses Projekt möglichst einfach ist und jedem Anfänger wie auch Fortgeschrittenen die Gelegenheit bietet, eigene Ideen daraus zu entwickeln. Da ich ja sehr häufig hier im Forum anzutreffen bin, sind Anregungen und Fragen ausdrücklich erwünscht. Ich gehe hier bewusst auf einige Details nicht tiefer ein, in der Hoffnung, dass Interesse an weiteren Informationen besteht, die ich dann auch gerne beantworten oder diskutieren werde.
Ich möchte dieses Projekt bis auf die Bedienelemente auf die Core-Ebene beschränken. Wer sich unsicher in Core fühlt, sollte sich nicht scheuen, Fragen zu stellen.
Unter linearen Steuerkurven stelle ich mir speziell einerseits die bekannten Hüllkurven der YAMAHA DX-Serie vor: wie auch die Rampengeneratoren aus dem primary-Level von REAKTOR 5: Das erste Zwischenziel dieses Projektes ist die Erstellung einer linearen Decay-Kurve:
Ziel dieses kleinen Projektes ist es, sich an lineare Steuerkurven heranzutasten.
Ich möchte mich dabei auf lineare Steuerkurven beschränken, damit dieses Projekt möglichst einfach ist und jedem Anfänger wie auch Fortgeschrittenen die Gelegenheit bietet, eigene Ideen daraus zu entwickeln. Da ich ja sehr häufig hier im Forum anzutreffen bin, sind Anregungen und Fragen ausdrücklich erwünscht. Ich gehe hier bewusst auf einige Details nicht tiefer ein, in der Hoffnung, dass Interesse an weiteren Informationen besteht, die ich dann auch gerne beantworten oder diskutieren werde.
Ich möchte dieses Projekt bis auf die Bedienelemente auf die Core-Ebene beschränken. Wer sich unsicher in Core fühlt, sollte sich nicht scheuen, Fragen zu stellen.
Unter linearen Steuerkurven stelle ich mir speziell einerseits die bekannten Hüllkurven der YAMAHA DX-Serie vor: wie auch die Rampengeneratoren aus dem primary-Level von REAKTOR 5: Das erste Zwischenziel dieses Projektes ist die Erstellung einer linearen Decay-Kurve:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
LINEARE DECAY-KURVE
lineare Decay-Kurve
Um mit dem Thema vertraut zu werden, soll im Folgenden die allereinfachste Form einer Steuerkurve erstellt werden: eine lineare Decay-Kuve. Sie besteht aus einem linearen Verlauf, der mit dem Wert 1 startet und nach einer Zeit T bei 0 endet. Die Steuer-Kurve soll durch einen Trigger gestartet werden.
In REAKTOR benötige ich ein Triggersignal Trg z.B. von einem Midibefehl wie VelocityOn oder von einem LFO. Der Ablauf erfolgt dann in einer AudioCoreCell und schließlich die Ausgabe an ein Anzeigemodul. Die Decay-Zeit T soll einstellbar sein. Somit erhalte ich folgende Grobstruktur: Das Triggermodul auf Primary-Ebene enthält lediglich einen logarithmischen Regler für die Decay-Zeiten und das Midi-Modul VelocityOn, das das Triggersignal liefert. Die Anzeige besteht im Wesentlichen aus einer Audio-Table und zeigt den Verlauf an.
Zum Einstellen geeigneter Zeitdauern für Hüllkurvenphasen ist eine logarithmische Zeitwertsteuerung wesentlich praxisgerechter. Der Wertebereich von -20 bis +80 entspricht einem Zeitbereich von 0,1ms bis 10s.
Die Umrechnungsformel für den Zeitwert z in die Zeit t in Sekunden lautet
Um mit dem Thema vertraut zu werden, soll im Folgenden die allereinfachste Form einer Steuerkurve erstellt werden: eine lineare Decay-Kuve. Sie besteht aus einem linearen Verlauf, der mit dem Wert 1 startet und nach einer Zeit T bei 0 endet. Die Steuer-Kurve soll durch einen Trigger gestartet werden.
In REAKTOR benötige ich ein Triggersignal Trg z.B. von einem Midibefehl wie VelocityOn oder von einem LFO. Der Ablauf erfolgt dann in einer AudioCoreCell und schließlich die Ausgabe an ein Anzeigemodul. Die Decay-Zeit T soll einstellbar sein. Somit erhalte ich folgende Grobstruktur: Das Triggermodul auf Primary-Ebene enthält lediglich einen logarithmischen Regler für die Decay-Zeiten und das Midi-Modul VelocityOn, das das Triggersignal liefert. Die Anzeige besteht im Wesentlichen aus einer Audio-Table und zeigt den Verlauf an.
Zum Einstellen geeigneter Zeitdauern für Hüllkurvenphasen ist eine logarithmische Zeitwertsteuerung wesentlich praxisgerechter. Der Wertebereich von -20 bis +80 entspricht einem Zeitbereich von 0,1ms bis 10s.
Die Umrechnungsformel für den Zeitwert z in die Zeit t in Sekunden lautet
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
LINEARE DECAY-KURVE
Nun zur AudioCoreCell: ein linearer Verlauf wird durch eine Änderungsrate beschrieben, also einem (sehr kleinen) Summanden, der bei jedem SampleRate-Tick zum aktuellen Wert diese Änderungsrate addiert. Da wir einen fallenden Verlauf haben, ist die Änderungsrate negativ.
Damit die Kurve schließlich nach der Zeit T (in Sekunden) bei Null anlangt, muss man die Anzahl der SampleRate-Ticks berechnen. Für die SampleRateRate (SR.R) von z.B. 44100 ist die Änderungsrate also .
Will man Sonderwünsche und zukünftige Entwicklungen berücksichtigen, greift man auf die globale Variable SR.R zu und definiert Der momentane Wert der Decay-Kurve wird in einem Speicher verwaltet. Der Speicher wird durch den Trigger Trg auf 1 gesetzt, im Anschluss daran wird bei jedem SampleRate-Tick über die SampleRateClock (SR.C) die Änderungsrate addiert wird. Sobald der Speicher einen negativen Wert oder Null erreicht, wird der Speicher auf 0 gesetzt:
Damit die Kurve schließlich nach der Zeit T (in Sekunden) bei Null anlangt, muss man die Anzahl der SampleRate-Ticks berechnen. Für die SampleRateRate (SR.R) von z.B. 44100 ist die Änderungsrate also .
Will man Sonderwünsche und zukünftige Entwicklungen berücksichtigen, greift man auf die globale Variable SR.R zu und definiert Der momentane Wert der Decay-Kurve wird in einem Speicher verwaltet. Der Speicher wird durch den Trigger Trg auf 1 gesetzt, im Anschluss daran wird bei jedem SampleRate-Tick über die SampleRateClock (SR.C) die Änderungsrate addiert wird. Sobald der Speicher einen negativen Wert oder Null erreicht, wird der Speicher auf 0 gesetzt:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
LINEARE DECAY-KURVE
Hier nun das Ensemble:Die Originaldatei enthält als Anzeigeelement eine Audiotable der Größe 882000x1. Damit wächst die Datei auf 3,6MB. Da der Speicherplatz auf dem Server begrenzt ist, habe ich die Audiodatei auf 882x1 verkleinert und komme so auf 16kB!
Damit ihr auch eine solch schöne Decay-Anzeige bekommt, müsst ihr in den Properties der Audiotable die Größe auf 882000x1 setzen:
Ich würde die Anzeige gerne auf das nötigste begrenzen (441x110 Pixel), so dass die Dateigröße stark schrumpft. Leider habe ich das noch nie gemacht. Wer mir da unter die Arme hilft, hat etwas bei mir gut. Im Prinzip müsste ich ja nur jeden 2000. Tick erfassen, um dieselbe Anzeige zu bekommen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
ANSCHLAGABHÄNGIGKEIT
Anschlagabhängigkeit
Ich habe diese einfache Decaykurve als Einstieg gewählt, da man an ihr sehr gut alle wichtigen Aspekte einer Steuerkurve darstellen kann.
Zunächst gehe ich auf die Anschlagabhängigkeit ein. Das Midi-Modul VelOn, das wir als Trigger benutzen, können wir gleichzeitig auch als Informatonsquelle für die Anschlagsstärke (velocity) verwenden. Mit einem Button schalten wir um.
Es gibt nun zwei grundsätzlich verschiedene Möglichkeiten des Einbaus.
Der erste Gedanke geht dahin, einfach die Ausgangswerte mit der velocity zu multiplizieren: Im Diagramm sehen wir, wie beim Einschalten der Anschlagsabhängigkeit die Steuerkurve bei dem entsprechenden Wert startet. Die eigentliche Dauer der Steuerkurve bleibt gleich. Würde man die Steuerkurve zur Lautstärkeregulierung benutzen, würde ein Ton auch bei leichtem Anschlag genauso lange ausklingen. Dies kann gewünscht sein oder auch nicht.
Möchte man dagegen die Zeitdauer T vom Anschlag abhängig machen, setzt man den temporären Speicher z.B. auf den Anschagswert: Die Kurve startet auch beim Anschlagswert, verringert sich aber mit derselben Änderungsrate, wie die anschlagsunabhängige Kurve, sie endet also mit einer geringeren Zeitdauer T. Je nach Anwendung wählt man eine der beiden Methoden.
Ich habe diese einfache Decaykurve als Einstieg gewählt, da man an ihr sehr gut alle wichtigen Aspekte einer Steuerkurve darstellen kann.
Zunächst gehe ich auf die Anschlagabhängigkeit ein. Das Midi-Modul VelOn, das wir als Trigger benutzen, können wir gleichzeitig auch als Informatonsquelle für die Anschlagsstärke (velocity) verwenden. Mit einem Button schalten wir um.
Es gibt nun zwei grundsätzlich verschiedene Möglichkeiten des Einbaus.
Der erste Gedanke geht dahin, einfach die Ausgangswerte mit der velocity zu multiplizieren: Im Diagramm sehen wir, wie beim Einschalten der Anschlagsabhängigkeit die Steuerkurve bei dem entsprechenden Wert startet. Die eigentliche Dauer der Steuerkurve bleibt gleich. Würde man die Steuerkurve zur Lautstärkeregulierung benutzen, würde ein Ton auch bei leichtem Anschlag genauso lange ausklingen. Dies kann gewünscht sein oder auch nicht.
Möchte man dagegen die Zeitdauer T vom Anschlag abhängig machen, setzt man den temporären Speicher z.B. auf den Anschagswert: Die Kurve startet auch beim Anschlagswert, verringert sich aber mit derselben Änderungsrate, wie die anschlagsunabhängige Kurve, sie endet also mit einer geringeren Zeitdauer T. Je nach Anwendung wählt man eine der beiden Methoden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
ANSCHLAGABHÄNGIGKEIT
Hier sind die beiden Ensembles:
Bitte beachtet, dass ihr nach dem Laden die Kapazität der AudioTable von 882x1 wieder auf 882000x1 setzt. Ich muss noch nachreichen, wie die Umschaltung auf Anschlagsabhängigkeit geschieht:
Bitte beachtet, dass ihr nach dem Laden die Kapazität der AudioTable von 882x1 wieder auf 882000x1 setzt. Ich muss noch nachreichen, wie die Umschaltung auf Anschlagsabhängigkeit geschieht:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Re: LINEARE STEUERKURVEN
Ich hätte einen Alternativvorschlag für die Anzeige. Die lässt sich zwar nicht so schön beschreiben, aber das nötigste zeigt sie an, wenn man die Table mit nem XY-Feld austauscht und die X-Position durch 882000 teilst.
Oder du teilst einfach die Schreibpostion für die Table provisorisch durch 2000. Für eine elegantere Lösung lässt sich die Struktur ja noch weiter verändern.
Außerdem hatte ich Probleme, nur die Zeit T vom Anschlag abhängig zu machen. Dazu musste ich dann ins Primary, um den Trigbefehl zu ordnen, sodass der Anschlag zuerst T beeinflusst und dann die Hüllkurve triggert.
Versuch ich das in ein und der selben Corezelle zu lösen, dann verhaspelt sich die Kurve und fällt ins Bodenlose!
Naja, im Primary gehts dann ja, dank des Event Orders..
Später würde mich neben deinen Ausführungen noch interessieren, wie man mehrere Kurvenphasen loopt. Ein einfaches Decay zu loopen, ist ja nicht das Problem. Das wäre ja ein abfallender Sägezahn. Aber selektives Loopen mehrerer Phasen wäre geil!Mit BPM-Synchronisation und Teilern. Also mal eine so richtig übertrieben aufgerüstete Kurve!
Absynthmäßig... Ich weiß, sowas gibt es ja bereits in der Werkslibrary unter den Building Blocks. Aber selbstbauen ist doch irgendwie schicker.
Und bei der Casio CZ Serie kann man einstellen, wieviele Phasen (bis zu 8), die Hüllkurve durchläuft. Zudem kann man eine dieser Phasen als Sustainpegel festlegen. Du kennst ja die Anleitung!
http://manuals.fdiskc.com/tree/Casio/Ca ... Manual.pdf
Gibt ganz coole Konturen.
Aber das ist im Moment ja noch zukunftsmusik!
Ist auf jeden Fall interessant hier.. Bitte weitermachen.
Oder du teilst einfach die Schreibpostion für die Table provisorisch durch 2000. Für eine elegantere Lösung lässt sich die Struktur ja noch weiter verändern.
Außerdem hatte ich Probleme, nur die Zeit T vom Anschlag abhängig zu machen. Dazu musste ich dann ins Primary, um den Trigbefehl zu ordnen, sodass der Anschlag zuerst T beeinflusst und dann die Hüllkurve triggert.
Versuch ich das in ein und der selben Corezelle zu lösen, dann verhaspelt sich die Kurve und fällt ins Bodenlose!
Naja, im Primary gehts dann ja, dank des Event Orders..
Später würde mich neben deinen Ausführungen noch interessieren, wie man mehrere Kurvenphasen loopt. Ein einfaches Decay zu loopen, ist ja nicht das Problem. Das wäre ja ein abfallender Sägezahn. Aber selektives Loopen mehrerer Phasen wäre geil!Mit BPM-Synchronisation und Teilern. Also mal eine so richtig übertrieben aufgerüstete Kurve!
Absynthmäßig... Ich weiß, sowas gibt es ja bereits in der Werkslibrary unter den Building Blocks. Aber selbstbauen ist doch irgendwie schicker.
Und bei der Casio CZ Serie kann man einstellen, wieviele Phasen (bis zu 8), die Hüllkurve durchläuft. Zudem kann man eine dieser Phasen als Sustainpegel festlegen. Du kennst ja die Anleitung!
http://manuals.fdiskc.com/tree/Casio/Ca ... Manual.pdf
Gibt ganz coole Konturen.
Aber das ist im Moment ja noch zukunftsmusik!
Ist auf jeden Fall interessant hier.. Bitte weitermachen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Rampensau am 15. April 2010, 15:24, insgesamt 1-mal geändert.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Re: LINEARE STEUERKURVEN
Meine Modifikation mit Vel->A, Vel->T, Vel->both und bipolarem Velocityanteilsregler und skalierter Anzeige in Hoffnung nichts vorweggenommen zu haben
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: LINEARE STEUERKURVEN
wenn du die erste Post liest, dann ist das Ziel klar: mehrere Phasen. Ich gehe sogar noch weiter: mein Ziel ist es, eine universelle Phase zu schaffen, die man beliebig aneinanderhängen kann; zunächst linear, dann auch exponentiell.Rampensau hat geschrieben:[...]
Später würde mich neben deinen Ausführungen noch interessieren, wie man mehrere Kurvenphasen loopt. Ein einfaches Decay zu loopen, ist ja nicht das Problem. Das wäre ja ein abfallender Sägezahn. Aber selektives Loopen wäre geil!Mit BPM-Synchronisation und Teilern. Also mal eine so richtig übertrieben aufgerüstete Kurve!
[...]
Das Building-Blocks-Modul gefällt mir nicht, da die Struktur und insbesondere die Konstruktion der Grafik eine Zumutung ist: überhaupt nicht nachvollziehbar und nicht erweiter- oder kürzbar. Da gefällt mir die Standardkurve des Core-ADSR um Längen besser von der Idee her gesehen.
Über die grafische Darstellung will ich mir keine großen Gedanken machen, da warte ich lieber erst einmal ab, ob die irgendwann vielleicht erscheinende REAKTOR 6 - Version hier Erleichterung bringt; ansonsten muss man zu viele Klimmzüge machen.
Die Verkürzung der Decayzeit T ist doch einfach und elegant im Ensemble decay 02b.ens gelöst. In die primary-Ebene möchte ich aus prinzipiellen Erwägungen nicht zurück.Rampensau hat geschrieben:[...]
Außerdem hatte ich Probleme, nur die Zeit T vom Anschlag abhängig zu machen. Dazu musste ich dann ins Primary, um den Trigbefehl zu ordnen, sodass der Anschlag zuerst T beeinflusst und dann die Hüllkurve triggert. [...]
ciao herw
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Re: LINEARE STEUERKURVEN
genau mein Reden.herw hat geschrieben:
[...]Das Building-Blocks-Modul gefällt mir nicht, da die Struktur und insbesondere die Konstruktion der Grafik eine Zumutung ist[...]
sicher? Du meintest sicher decay 02a.ens. Aber da wird eben beides beeinflusst. Der Startwert und die Zeit! Ich bin mittlerweile auch eher ungern im Primary, aber solange die Schaltung "funzt"...herw hat geschrieben: [...]Die Verkürzung der Decayzeit T ist doch einfach und elegant im Ensemble decay 02b.ens gelöst.[...]
ciao herw
Ich habe aber jetzt ne bessere Lösung, wie ich das in der Corezelle erledige. Wenn man einfach die Amplitude wieder durch den Velocitywert teilt, steigt sie auf einen Startwert von 1 und nur die Zeit ist anschlagsabhängig. Was mich außerdem stört, ist, dass die Kurve bei Initialisierung(Ich glaube zumindest die Initialisierung sei Schuld) getriggert wird. Also wenn das Ensemble aufgemacht wird, oder eine Verbindung (in Core oder Primary) hergestellt wird.
Die "Tablebeschriftung" wird hingegen nicht von der Initialisierung gestartet. Da muss schon ein manuelles Triggern her.
Was kann man gegen den "Init-Trigger" tun?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: LINEARE STEUERKURVEN
oh da habe ich wohl die Dateien vertauscht.Rampensau hat geschrieben:[...]sicher?herw hat geschrieben: [...]Die Verkürzung der Decayzeit T ist doch einfach und elegant im Ensemble decay 02b.ens gelöst.[...]
ciao herw
das war auch meine Absicht, denn das ist ja der Sinn.Du meintest sicher decay 02a.ens. Aber da wird eben beides beeinflusst. Der Startwert und die Zeit!
korrekt! Das wäre dann quasi ein key-Tracking; das habe ich bewusst zunächst außen vor gelassen; aber schön, dass es von Dir kommt .[...] Wenn man einfach die Amplitude wieder durch den Velocitywert teilt, steigt sie auf einen Startwert von 1 und nur die Zeit ist anschlagsabhängig.
Solche „Probleme” habe ich zunächst mal außen vorgelassen, da ich zunächst das Prinzip aufbauen will. Also versteh bitte die Ensemble nicht als Endprodukte, sondern reine Testaufbauten. Ich werde sie nach und nach ohne Kommentar beseitigen, da sie nicht zum eigentlichen Thema gehören.Was mich außerdem stört, ist, dass die Kurve bei Initialisierung(Ich glaube zumindest die Initialisierung sei Schuld) getriggert wird. Also wenn das Ensemble aufgemacht wird, oder eine Verbindung (in Core oder Primary) hergestellt wird.
Die "Tablebeschriftung" wird hingegen nicht von der Initialisierung gestartet. Da muss schon ein manuelles Triggern her.
Was kann man gegen den "Init-Trigger" tun?
ciao herw
PS: bitte weiterhin Fragen, Verbesserungen und Ideen äußern; umso mehr bin ich auch motiviert und aktiv!
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Re: LINEARE STEUERKURVEN
ist doch eher Velocity-Tracking?! Key- bezieht sich ja mehr auf die Tonhöhe. Aber vielleicht schreibst du auch deswegen "quasi"-Tracking.herw hat geschrieben: [...] Wenn man einfach die Amplitude wieder durch den Velocitywert teilt, steigt sie auf einen Startwert von 1 und nur die Zeit ist anschlagsabhängig.
korrekt! Das wäre dann quasi ein key-Tracking; das habe ich bewusst zunächst außen vor gelassen; aber schön, dass es von Dir kommt .
Aber ich will ja auch nicht klugscheißern.
Das ist absolut verständlich.herw hat geschrieben:Solche „Probleme” habe ich zunächst mal außen vorgelassen, da ich zunächst das Prinzip aufbauen will. Also versteh bitte die Ensemble nicht als Endprodukte, sondern reine Testaufbauten. Ich werde sie nach und nach ohne Kommentar beseitigen, da sie nicht zum eigentlichen Thema gehören.
Und das ist dir vielleicht schon bekannt, aber ich wollte nur mal nen Kniff erwähnen, mit dem man in mehrstimmigen Ensembles stets die aktuelle Stimme in Anzeigen oder Oszilloskope schreiben kann.
Im Moment reagiert die Anzeige bei einem 4-stimmigen Ensemble immer nur auf jede vierte Note(bei Voice-Assign="Oldest).
Um genau zu sein, immer nur auf Stimme 1!
Der Kniff ist, die "Voice-Info" für das "From-Voice"-Modul in ein (polyphones) "Value"-Modul zu schreiben, und mit einem (polyphonen) Gate zu triggern.
Somit wird immer nur die aktuelle Stimme ausgegeben. Dieses Signal kann man jetzt durch einen Event-Voice-Combiner jagen und als monophonen Stimmenindikator in die From-Voice-Module speisen. Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: LINEARE STEUERKURVEN
ach du Schreck; habe ich mal wieder zu schnell geschrieben. Ich schreibe hier quasi aus der Hand; manchmal steht auch ein Glas Rotwein daneben und nicht nur . Danke für die Korrektur.Rampensau hat geschrieben:ist doch eher Velocity-Tracking?![...]herw hat geschrieben: [...] Wenn man einfach die Amplitude wieder durch den Velocitywert teilt, steigt sie auf einen Startwert von 1 und nur die Zeit ist anschlagsabhängig.
decay02amod2.JPG
korrekt! Das wäre dann quasi ein key-Tracking; das habe ich bewusst zunächst außen vor gelassen; aber schön, dass es von Dir kommt .
klar ist mir das bekannt, bin ja schon ein wenig länger dabei ; das zuständige Modul heißt übrigens FromLastVoice und findet sich in einigen der Ensembles von Eric Wistrand (ew) und bei mir ab und an ebenfalls. Ich mache hier mein Projekt bewusst monophon, da ich möglichst viel Ballast weglassen möchte. REAKTOR ist in der Behandlung der Mehrstimmigkeit einfach so genial, dass man monophone Ensembles fast 1:1 polyphon übernehmen kann. Die Anzeige ist nicht gedacht als ständige Kontrolle (in einem fertigen Ensemble) sondern nur als Messanzeige hier in unserem (monophonen) Projekt. Eine Anzeige in einem umfangreicheren Ensemble stelle ich mir auch nicht als AudioTable (oder xy-Anzeige) vor, sondern als einmalige qualitative Anzeige, wie in den primary-Level-Modulen beim ADSR etc..Und das ist dir vielleicht schon bekannt, aber ich wollte nur mal nen Kniff erwähnen, mit dem man in mehrstimmigen Ensembles stets die aktuelle Stimme in Anzeigen oder Oszilloskope schreiben kann.[...]
Gruß
Gleich geht's weiter.
ciao herw
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: LINEARE STEUERKURVEN
Start- und Zielpunkte
Betrachten wir die Steuerkurven im ersten Abschnitt, so muss jeder Teilabschnitt von jedem beliebigen Wert starten und in jedem beliebigen Wert enden. Die Informationen über den Wertebereich benötigen wir sowohl bei der Berechnung der Zeitdauer, wie auch bei der Speicherverwaltung Die Änderungsrate d bezieht sich nun nicht mehr auf den Bereich [1;0] sondern [A,B]. Da ist nur ein wenig Arithmetik nötig: Die Änderungsrate wird auf die Differenz A-B durch einen entsprechenden Faktor genormt. Die Veränderung der Änderungsrate kann man übrigens auch bei Anschlagabhängigkeit benutzen (ausprobieren!).
Im Speichermodul muss als Startwert statt 1 nun A gesetzt werden, und die Abbruchbedingung das Unterschreiten von B abfragen: Das Ensemble lautet: .
Das Modul ist natürlich noch nicht gegen „Fehlbedienung” gesichert; so muss der Benutzer beachten, dass A größer oder gleich B sein muss. Aber das soll uns hier noch nicht interessieren.
Betrachten wir die Steuerkurven im ersten Abschnitt, so muss jeder Teilabschnitt von jedem beliebigen Wert starten und in jedem beliebigen Wert enden. Die Informationen über den Wertebereich benötigen wir sowohl bei der Berechnung der Zeitdauer, wie auch bei der Speicherverwaltung Die Änderungsrate d bezieht sich nun nicht mehr auf den Bereich [1;0] sondern [A,B]. Da ist nur ein wenig Arithmetik nötig: Die Änderungsrate wird auf die Differenz A-B durch einen entsprechenden Faktor genormt. Die Veränderung der Änderungsrate kann man übrigens auch bei Anschlagabhängigkeit benutzen (ausprobieren!).
Im Speichermodul muss als Startwert statt 1 nun A gesetzt werden, und die Abbruchbedingung das Unterschreiten von B abfragen: Das Ensemble lautet: .
Das Modul ist natürlich noch nicht gegen „Fehlbedienung” gesichert; so muss der Benutzer beachten, dass A größer oder gleich B sein muss. Aber das soll uns hier noch nicht interessieren.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: LINEARE STEUERKURVEN
Wir erweitern schließlich noch den Wertebereich der Regler und der Audio-Table auf [-1;1] und erhalten so auch negative Steuerwerte.
ciao herwDu hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.