R6 Audio Table / Framework
Moderator: herw
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: R6 Audio Table / Framework
Küche, Keller, Klo?
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: R6 Audio Table / Framework
ja aber wie genau geht das? Ich muss noch mal in den (sehr) alten Dateien suchen, es gab mal einen so herrlichen bayerischen Aussprachenschnipsel „Transformator”.Quietschboy hat geschrieben:Komplete 10herw hat geschrieben:... und dann würde ich gerne mal hören, wie man eigentlich an vernünftige Samples kommt.
lol
- wehkah
- synthesist
- Beiträge: 77
- Registriert: 26. Januar 2009, 19:17
Re: R6 Audio Table / Framework
Was genau verstehst Du nicht?herw hat geschrieben:ja aber wie genau geht das? Ich muss noch mal in den (sehr) alten Dateien suchen, es gab mal einen so herrlichen bayerischen Aussprachenschnipsel „Transformator”.Quietschboy hat geschrieben:Komplete 10herw hat geschrieben:... und dann würde ich gerne mal hören, wie man eigentlich an vernünftige Samples kommt.
lol
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: R6 Audio Table / Framework
alles - von Grund auf. Ich habe mich noch nie mit Samples beschäftigt, also ich bin bei Null.wehkah hat geschrieben:Was genau verstehst Du nicht?
Ich stelle mal ein paar doofe Fragen:
- Wie ist eine Sampledatei aufgebaut (nur prinzipiell) und wo wird sie in REAKTOR geladen? Eine ganz einfache Datei wäre nett.
- Was kann ich mit der Sampledatei in Primary anstellen (vorwärts, rückwärts, Auswahl, Start-end etc.), was in Core (nur grober Überblick, damit ich konkretere Fragen stellen kann)
ciao herw
- wehkah
- synthesist
- Beiträge: 77
- Registriert: 26. Januar 2009, 19:17
Re: R6 Audio Table / Framework
Hej Herw,
ich hatte eigentlich gedacht das Du das schon kennst aufgrund Deiner starken Core Knowlegde.
Wie ist eine Sampledatei aufgebaut (nur prinzipiell) und wo wird sie in REAKTOR geladen? Eine ganz einfache Datei wäre nett.
Ein Sample ist ein Schnipsel einer Audiodatei. Wav oder Aiff . In Reaktor kannst die mit den Primary Samplern laden, per Drag'n'Drop, in eine AudioTable oder SampleMap(eine Datei mit eingebetteten oder verlinkten Samples plus keymapping und Loopangaben).
Was kann ich mit der Sampledatei in Primary anstellen (vorwärts, rückwärts, Auswahl, Start-end etc.), was in Core (nur grober Überblick, damit ich konkretere Fragen stellen kann)
In Primary geht eigentlich schon alles nur war bisher das teilen der Audiodaten innerhalb der Struktur schwierig, das soll jetzt durch das Tableframework vereinfacht werden. Sprich Du hast das Table modul indem Du Deine Samples "verwalten" kannst. Die Table kannst Du über ein SampleMap Modul oder via Drag'n'Drop mit Daten füllen. Mit der Table fütterst Du dann die Stellen im dem Ensemble wo Du das Sample als Rohdaten(Array) brauchst, NI spricht hier von der Table Reference.
Da ich aber noch nicht viel mit Core gemacht habe, komm ich an einigen Stellen nicht mit meiner Rangehensweise weiter bzw. muss erstmal verstehen wie ich zum Beispiel eine Loopfunktion baue. Ich stell mir das wie eine For-To Schleife vor, die den Array Pointer einfach immer wieder auf die vorher eingestellte Startposition setzt wenn eine gewisse Anzahl von Durchläufen bzw. Samples(hier meine ich die Samples bezogen auf die Rate) abgespielt wurde, also die angegeben Abspiellänge erreicht wurde.
Ich bastle derzeit mit den Reaktor internen Macros herum und versuche zu verstehen was da genau passiert.
Es wäre ja auch toll ein flexibles Samplermodul im ModularX zuhaben, für Drums und so weiter.
Beste Grüße,
Tino
ich hatte eigentlich gedacht das Du das schon kennst aufgrund Deiner starken Core Knowlegde.
Wie ist eine Sampledatei aufgebaut (nur prinzipiell) und wo wird sie in REAKTOR geladen? Eine ganz einfache Datei wäre nett.
Ein Sample ist ein Schnipsel einer Audiodatei. Wav oder Aiff . In Reaktor kannst die mit den Primary Samplern laden, per Drag'n'Drop, in eine AudioTable oder SampleMap(eine Datei mit eingebetteten oder verlinkten Samples plus keymapping und Loopangaben).
Was kann ich mit der Sampledatei in Primary anstellen (vorwärts, rückwärts, Auswahl, Start-end etc.), was in Core (nur grober Überblick, damit ich konkretere Fragen stellen kann)
In Primary geht eigentlich schon alles nur war bisher das teilen der Audiodaten innerhalb der Struktur schwierig, das soll jetzt durch das Tableframework vereinfacht werden. Sprich Du hast das Table modul indem Du Deine Samples "verwalten" kannst. Die Table kannst Du über ein SampleMap Modul oder via Drag'n'Drop mit Daten füllen. Mit der Table fütterst Du dann die Stellen im dem Ensemble wo Du das Sample als Rohdaten(Array) brauchst, NI spricht hier von der Table Reference.
Da ich aber noch nicht viel mit Core gemacht habe, komm ich an einigen Stellen nicht mit meiner Rangehensweise weiter bzw. muss erstmal verstehen wie ich zum Beispiel eine Loopfunktion baue. Ich stell mir das wie eine For-To Schleife vor, die den Array Pointer einfach immer wieder auf die vorher eingestellte Startposition setzt wenn eine gewisse Anzahl von Durchläufen bzw. Samples(hier meine ich die Samples bezogen auf die Rate) abgespielt wurde, also die angegeben Abspiellänge erreicht wurde.
Ich bastle derzeit mit den Reaktor internen Macros herum und versuche zu verstehen was da genau passiert.
Es wäre ja auch toll ein flexibles Samplermodul im ModularX zuhaben, für Drums und so weiter.
Beste Grüße,
Tino
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: R6 Audio Table / Framework
Hi,
hier mal ein ganz einfaches Beispiel, wie man eine Table Sample in ein Core Array kopiert. Abspielfunktion ist hier noch keine implementiert. Nur Kopieren.
Da mich das Droppen von Samples in eine Mouse Area sehr interressiert habe ich das auch noch mit eingefügt: 1. Der Eingang DpA der Mouse Area solllte grundsätzlich >= 1 gesetzt werden, damit der Outport DpG zusätzlich zur 0 auch eine 1 bei erfolgter Drop-Funktion rausschickt. Diese 1 ist nötig, um die Referenz und einen Triggerevent bei erfolgtem Dropping einmalig senden zu können. Die Null wird nämlich zusammen mit der 2 ständig während des Droppens gesendet. Dieses Verhalten, sowie denn zusätzlich nötigen Router unter 2. finde ich äußerst fragwürdig. Evtl. muss das aber so sein.
3. Hier wird der Trigger (val =1) für folgende Funktionen gefiltert:
- verschicken der Table Referenz vom Master (Table List) an die Slaves (hier die Core Array Macros und das Info Modul (size)).
- resetten des Core Counters
- starten der Iteration zum kopieren des Samples ins Core Array
Ich hatte noch eine andere Variante gesehen, wo der Trigger nicht das 1er Event, sondern das Null-event nach dem 1er Event ist. Warum? Keine Ahnung. Das 1er-Event macht seinen job als Trigger in diesem Beispiel gut.
4. Das Table List Modul in der grundlegendsten Form. Keine Wahlmöglichkeit für Sample Referenzen, kein insert, delete, etc. Ein neu gedropptes Sample überschreibt lediglich die alte Referenz.
5. Die Core Cell und das Iterations Modul für die Kopier funktion
--- kommt in der nächsten post ----
hier mal ein ganz einfaches Beispiel, wie man eine Table Sample in ein Core Array kopiert. Abspielfunktion ist hier noch keine implementiert. Nur Kopieren.
Da mich das Droppen von Samples in eine Mouse Area sehr interressiert habe ich das auch noch mit eingefügt: 1. Der Eingang DpA der Mouse Area solllte grundsätzlich >= 1 gesetzt werden, damit der Outport DpG zusätzlich zur 0 auch eine 1 bei erfolgter Drop-Funktion rausschickt. Diese 1 ist nötig, um die Referenz und einen Triggerevent bei erfolgtem Dropping einmalig senden zu können. Die Null wird nämlich zusammen mit der 2 ständig während des Droppens gesendet. Dieses Verhalten, sowie denn zusätzlich nötigen Router unter 2. finde ich äußerst fragwürdig. Evtl. muss das aber so sein.
3. Hier wird der Trigger (val =1) für folgende Funktionen gefiltert:
- verschicken der Table Referenz vom Master (Table List) an die Slaves (hier die Core Array Macros und das Info Modul (size)).
- resetten des Core Counters
- starten der Iteration zum kopieren des Samples ins Core Array
Ich hatte noch eine andere Variante gesehen, wo der Trigger nicht das 1er Event, sondern das Null-event nach dem 1er Event ist. Warum? Keine Ahnung. Das 1er-Event macht seinen job als Trigger in diesem Beispiel gut.
4. Das Table List Modul in der grundlegendsten Form. Keine Wahlmöglichkeit für Sample Referenzen, kein insert, delete, etc. Ein neu gedropptes Sample überschreibt lediglich die alte Referenz.
5. Die Core Cell und das Iterations Modul für die Kopier funktion
--- kommt in der nächsten post ----
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: R6 Audio Table / Framework
1. Der Table Reference Inport stellt zwei - weil stereo - OBC Ports zur Verfügung. Es kann also mit den gewohnten Core-OBC Modulen auf das TF Audiosample, also die referenzierte Datei auf der Festplatte, zugegriffen werden.
2. Wird der Table Inport neu referenziert, so stellt das size[] Modul sofort die neue Samplegröße N zur Verfügung (ein Event). Da Arrays nullbasiert adressiert werden ist es nötig den letzten Index, also die Zelle mit dem letzten Sampleword, als N-1 festzuhalten. Dies wird nämlich gleich noch für die Endabfrage benötigt. Es gibt allerdings einen driftigen Grund Audiosamples nicht nullbasiert sondern erst ab Index 1 zu speichern und die Gesamtgröße des Audiosamples auch am Ende um eine weitere Speicherzelle zu vergrößern. Stichwort Interpolation. Aber das passt jetzt nicht zum Thema und wird außerdem sogar im Core Manual erklärt! Daumen hoch dafür!
3. Ein (R5) Counter, angetriggert von der Iteration als Clock, zählt stumpf von Null bis N (Größe des Audiosamples). N wird von dem Vergleich > N-1 jedoch zur Weitergabe als Index herausgefiltert und stoppt stattdessen den Iterator (outport "brk".
4.Ansonsten wird mit jedem Tick der Iteration der Index für das Read und das Write Makro gesetzt. Das Read wird außerdem auch vom Quickbus "Index" zum auslesen bewegt. Das Ausgangsevent, also der Wert des Sampleword, wird direkt und zum selben Index, in das Core Array geschrieben.
Man muss hier noch beachten, dass die maximale Größe eines Core Arrays 1048576 Zellen beträgt! Das ist nicht viel. Reicht bei 44,1kHz Audio für gerade mal gute 20Sekunden Eppes. Es ist allerdings möglich, Arrays zu stacken, so dass auch längere Audiosamples aufgenommen oder hineinkopiert werden können.
Rechts in der Core Cell ist lediglich eine kleine Hilfsstruktur zur Überprüfung des Index mit Hilfe des ACEW zu sehen:
Es sollen nur Indizes kleiner 3 und größer N-4 an den ACEW übergeben werden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Quietschboy am 17. September 2015, 22:48, insgesamt 2-mal geändert.
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: R6 Audio Table / Framework
Ensemble angehängt
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: R6 Audio Table / Framework
das sample fehlt?Quietschboy hat geschrieben:Ensemble angehängt
ok - ich muss jetzt leider aufhören, ich habe morgen einen frühen Termin; du kannst es mir auch zumailen, dann kann ich das file einfügen.
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: R6 Audio Table / Framework
Nö, selbst Samples aus dem Reaktor Browser in die Drop-Zone schmeissen!herw hat geschrieben:das sample fehlt?
Sonst wäre es kalter Kaffe...
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: R6 Audio Table / Framework
ja das ist ja gerade mein Problem, wo finde ich denn samples? Liefert REAKTOR welche mit, oder hole ich sie mir irgendwo aus komplete und wenn ja wo?????Quietschboy hat geschrieben:Nö, selbst Samples aus dem Reaktor Browser in die Drop-Zone schmeissen!herw hat geschrieben:das sample fehlt?
Sonst wäre es kalter Kaffe...
Ich sag doch, ich starte bei NULL, was samples angeht.
- wehkah
- synthesist
- Beiträge: 77
- Registriert: 26. Januar 2009, 19:17
Re: R6 Audio Table / Framework
Moin moin Leudde,
Quietschboy danke für das auseinander frickeln
HERW hier findest Du massig sehr interessante Samples - http://freesound.org/
Einen schönen Tag gewünscht,
T
Quietschboy danke für das auseinander frickeln
HERW hier findest Du massig sehr interessante Samples - http://freesound.org/
Einen schönen Tag gewünscht,
T
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: R6 Audio Table / Framework
Hast du Kontakt oder Battery installiert? Dann solltest du doch das ein oder andere Sample in den entsprechenden Librarys finden. Für solche Testzwecke wie hier solltest du dir vielleicht eine Hand voll Samples in den Ordner "Audio" deines Reaktor User Folder kopieren. So hast du sie schnell im Reaktor browser bereit. Unter Mac könnte es allerdings sein, dass sogar das droppen von samples in eine Mouse Area aus dem Mac File Browser heraus funktioniert.herw hat geschrieben:ja das ist ja gerade mein Problem, wo finde ich denn samples? Liefert REAKTOR welche mit, oder hole ich sie mir irgendwo aus komplete und wenn ja wo?????Quietschboy hat geschrieben:Nö, selbst Samples aus dem Reaktor Browser in die Drop-Zone schmeissen!herw hat geschrieben:das sample fehlt?
Sonst wäre es kalter Kaffe...
Ich sag doch, ich starte bei NULL, was samples angeht.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: R6 Audio Table / Framework
ja ich habe jetzt einige samples aus alten REAKTOR ensembles kopiert. Das kann ich testen; ich habe sogar das Uralt-Sample „Transformator” wieder entdeckt.Quietschboy hat geschrieben:Hast du Kontakt oder Battery installiert? Dann solltest du doch das ein oder andere Sample in den entsprechenden Librarys finden. Für solche Testzwecke wie hier solltest du dir vielleicht eine Hand voll Samples in den Ordner "Audio" deines Reaktor User Folder kopieren. So hast du sie schnell im Reaktor browser bereit. Unter Mac könnte es allerdings sein, dass sogar das droppen von samples in eine Mouse Area aus dem Mac File Browser heraus funktioniert.herw hat geschrieben:[...]
Ich sag doch, ich starte bei NULL, was samples angeht.
Im Moment habe ich einiges anderes zu organisieren.
Ich werde aber das table framework noch testen.
ciao herw
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Re: R6 Audio Table / Framework
Mich würde interessieren, ob, und wenn nicht, wann das Table Framework vollständig implementiert ist? Weiß da jemand etwas mehr?
Aus einer Dokumentation wird man ja nicht unbedingt schlau, da es nicht wirklich eine für Benutzer gibt. Im Getting Started werden Features suggeriert, die (noch ?) nicht vorhanden sind. Bisher ist es mehr ein Audioplayer Framework. Ist ja auch nett, aber Read only?? Für mich bringt das Table Framework in dieser Version bisher keinen Mehrwert.
Coole Features, die m.E. fehlen:
- Write Funktion. Nicht nur für die Nutzdaten. Auch die Flags/Sampleinfos sollten über Eventprozesse geschrieben werden können sollen.
- Weitere Dateitypen, wie z.B. .txt
- Dateien ins Dateisystem schreiben, aber bitte Event-gesteuert
- Generierte Dateien löschen, auch über Event triggerbar
- Tablereferenz manuell aus einem Textmodul, oder irgendwie anders, als per Drag&Drop generieren
Offtopic:
Ich träume ja immer gerne. Ich vermisse aber schon immer Strings, also Zeichenketten (Arrays von lesbaren Zeichen) als Datentypen und entsprechende Eingabe-, Verarbeitungs- und Ausgabeperationen für Strings in Reaktor. Tablereferenzen wären hierfür eine super Anwendung. Man könnte richtig tolle Parsing-Werkzeuge in Reaktor programmieren, die xml-Strukturen auslesen. So könnte man z.B. easy as it is, OSC-Informationen aus xml-Deskriptoren lesen. In Verbindung mit einem (etwas weiter entwickelten) Table Framework hätte man ein mächtiges Dateiverarbeitungsframework in Reaktor.
Aus einer Dokumentation wird man ja nicht unbedingt schlau, da es nicht wirklich eine für Benutzer gibt. Im Getting Started werden Features suggeriert, die (noch ?) nicht vorhanden sind. Bisher ist es mehr ein Audioplayer Framework. Ist ja auch nett, aber Read only?? Für mich bringt das Table Framework in dieser Version bisher keinen Mehrwert.
Coole Features, die m.E. fehlen:
- Write Funktion. Nicht nur für die Nutzdaten. Auch die Flags/Sampleinfos sollten über Eventprozesse geschrieben werden können sollen.
- Weitere Dateitypen, wie z.B. .txt
- Dateien ins Dateisystem schreiben, aber bitte Event-gesteuert
- Generierte Dateien löschen, auch über Event triggerbar
- Tablereferenz manuell aus einem Textmodul, oder irgendwie anders, als per Drag&Drop generieren
Offtopic:
Ich träume ja immer gerne. Ich vermisse aber schon immer Strings, also Zeichenketten (Arrays von lesbaren Zeichen) als Datentypen und entsprechende Eingabe-, Verarbeitungs- und Ausgabeperationen für Strings in Reaktor. Tablereferenzen wären hierfür eine super Anwendung. Man könnte richtig tolle Parsing-Werkzeuge in Reaktor programmieren, die xml-Strukturen auslesen. So könnte man z.B. easy as it is, OSC-Informationen aus xml-Deskriptoren lesen. In Verbindung mit einem (etwas weiter entwickelten) Table Framework hätte man ein mächtiges Dateiverarbeitungsframework in Reaktor.
Zuletzt geändert von Rampensau am 26. November 2015, 15:44, insgesamt 2-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