Grundlagen Audiotable

Diskussionsforum für Fragen zur Struktur und Implementation in REAKTOR, auch DSP, Literatur und begleitende Software

Moderator: herw

fweth
meister
Beiträge: 118
Registriert: 21. November 2007, 16:01
Wohnort: Österreich

Grundlagen Audiotable

Beitrag von fweth »

Hallo

Ich habe folgendes Problem: Ich möchte eine Art Sampler, der jedoch nicht auf gespeicherte Files zugreift, sondern mit dem ich live über den Audioinput das Sample überschreiben kann. Da dies, meines Wissens nach mit den herkömmlichen Samplern nicht möglich ist, denke ich, muß man das mit einer Audiotable realisieren. Dazu habe ich jetzt zwei grundlegende Fragen:

1. Wie muss ich die Inputs für die Read- und Writeposition ansteuern, damit ich überhaupt Sounds flüssig in Echtzeit hineinschreiben und abspielen kann (ohne Knarzen)?

2. Kann sich die Readposition einer Audiotable sich auch gleichzeitig auf zwei oder mehreren Stellen befinden? Ich denke zB wenn das Sample in einem Takt abgespielt wird, aber die Taktdauer kürzer ist, als die Sampledauer, so dass sich der Anfang und Schluss immer kurz überschneiden (was ja mit einem herkömmlichen Sampler überhaupt kein Problem ist).

Danke, das wäre echt eine gute Hilfe für den Einstieg
fweth
meister
Beiträge: 118
Registriert: 21. November 2007, 16:01
Wohnort: Österreich

Beitrag von fweth »

OK, ich habe mittlerweile gecheckt, dass ich einen Clock Oscillator an einen Counter schließen kann, und damit die Read und Write Position steuern kann. Doch was muss ich tun, um die Audiotable wirklich als Sampler zu verwenden? Ich habe bei X-Size der Audiotable 44100 eingegeben, und den Pitch von dem Clock Oscillator auch auf 44100 festgelegt. Ich dachte, jetzt müsste die Position im Sekundentakt durchlaufen, aber ein Durchlauf dauert noch etwas länger, was ich noch nicht ganz verstehe. Und wie schaffe ich es eben, das sich die Readposition an mehreren Positionen befinden kann? Brauche ich da eine Polyphones Signal für die Audiotable? Wie kann ich einfach mehrere Signale zu einem polyphonen zusammenfügen?

Ich weiß, ich nerve euch da bestimmt mit totalen Anfängerfragen, aber ich hab mir einfach nicht weiterhelfen können.

Danke nochmals
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

hallo fewth

ich würde dir anstelle des clock-osc den ramp-osc empfehlen. der clock-osc und der counter arbeiten mit der eventrate die wesentlich niedriger ist als die samplerate und das ganze sicherlich etwqas nach lofi klingen lässt. am einfachsten geht das ganze wenn du an dem amp-eingang (a) eine konstante mit 1 hängst und bei den audio-table einstellungen x-units auf "0...1" stellst und die x-achse interpolierst. nun kannst du die geschwindigkeit ganz einfach an dem f eingang des ramp-osc steuern. der wert 1 also 1hz wäre dann ganau 1sek.

und wenn du die table gleichzeitig an mehreren positionen auslesen willst braucht du wie du schon erkannt hast mehrere stimmen. nutze einfach den phasen eingang (ph) des ramp-osc dafür. damit das ganze aber für jede stimme einzeln einstellbar ist brauchst du natürlich mehrere phasen regler die alle mit einem to-voice modul (module > auxiliary) verbunden sein müssen. also für jede stimme ein regler und to-voice modul die du dann einfach mit nem add verbindest. damit das ganze wieder ein monophones siganl wird braucht du nun noch ein "audio voice combiner" (module > auxiliary) den du an dem ausgang der table hängst.

ich hab im moment leider nicht genug zeit das mit bildern zu veranschaulichen aber ich hoffe das ist einigermaßen verständlich und du kriegst das ding zum laufen. wenn nicht einfach nochmal nachhaken :wink:
ansonsten noch viel spass mit reaktor und hier im forum.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

fweth hat geschrieben:...
Ich weiß, ich nerve euch da bestimmt mit totalen Anfängerfragen, aber ich hab mir einfach nicht weiterhelfen können.
...
Hallo fweth, sei gegrüsst in unserem Forum. Hier nervt keiner mit irgendwelchen Fragen, sondern jeder hilft jedem.
Leider habe ich von Audiotables nur wenig Ahnung, daher kann ich nicht helfen. Aber ein kleiner Tip: suche in der user library unter dem Stichwort "audiotable"; dann werden wesentliche ensembles aufgelistet; ich gebe mal beispielsweise das erste hier an: Granular AudioTable - DEMO v1.0 von CList. Ich denke da wirst Du einige Tricks und grundsätzliche Steuerungsmöglichkeiten entdecken.
CList gehört neben Martin Brinkmann zu den wenigen, die sehr viel Ahnung von REAKTOR haben und deren Ensemble auch gut in ihrer Struktur lesbar sind. Deine Vorgehensweise ist ja ansonsten richtig: nach und nach die Steuerungsmöglichkeiten durch kleine Experimentier-Ensembles herausfinden. Polyphonie ist glaube ich überhaupt kein Problem, da REAKTOR automatisch jedes Modul auch polyphon verarbeiten kann.

ciao herw
fweth
meister
Beiträge: 118
Registriert: 21. November 2007, 16:01
Wohnort: Österreich

Beitrag von fweth »

sellotape hat geschrieben: ich würde dir anstelle des clock-osc den ramp-osc empfehlen. der clock-osc und der counter arbeiten mit der eventrate die wesentlich niedriger ist als die samplerate und das ganze sicherlich etwqas nach lofi klingen lässt. am einfachsten geht das ganze wenn du an dem amp-eingang (a) eine konstante mit 1 hängst und bei den audio-table einstellungen x-units auf "0...1" stellst und die x-achse interpolierst. nun kannst du die geschwindigkeit ganz einfach an dem f eingang des ramp-osc steuern. der wert 1 also 1hz wäre dann ganau 1sek.
was bedeutet die Option Interpolation in der Audio Table?
sellotape hat geschrieben: und wenn du die table gleichzeitig an mehreren positionen auslesen willst braucht du wie du schon erkannt hast mehrere stimmen. nutze einfach den phasen eingang (ph) des ramp-osc dafür. damit das ganze aber für jede stimme einzeln einstellbar ist brauchst du natürlich mehrere phasen regler die alle mit einem to-voice modul (module > auxiliary) verbunden sein müssen. also für jede stimme ein regler und to-voice modul die du dann einfach mit nem add verbindest. damit das ganze wieder ein monophones siganl wird braucht du nun noch ein "audio voice combiner" (module > auxiliary) den du an dem ausgang der table hängst.
Super, danke für die verständliche Beschreibung!

Hat eigentlich alles geklappt, nur bei der Veränderung der Phase habe ich keine Veränderung erzielt, egal ob monophon, oder polyphon, sowie du es beschrieben hast. Das mit dem To Voice Modul habe ich aber dann an der Frequenz getestet, und da funktioniert es auch prima (leider kann Reaktor in der Audio Table immer nur eine Positionsmarkierung ANZEIGEN, aber funktionieren tut es auf jeden Fall auch polyphon).

Den Ramp Osc habe ich jedoch jetzt für diese Idee wieder verworfen, ich möchte eigentlich einen MIDI gesteuerten Sampler bauen, dazu bräuchte ich sowas wie einen Sampler, mit Eingängen für Loop Start, Loop Length, etc..., der jedoch kein Sample bearbeitet, sondern nur einen polyphonen Position Wert ausgibt (um den an die Audiotable zu leiten). Das geht zwar auch mit einigen herkömmlichen Samplern (zB Grain Resynth), die neben dem Audioausgang einen zusätzlichen Pos Ausgang besitzen, jedoch muss man dazu extra ein Sample hineinladen, quasi als Platzhalter, damit überhaupt eine Position berechnet werden kann, was jedoch, denke ich, pure RAM und CPU-Verschwendung ist. Vielleich gibt es für meine Idee auch kein spezielles Modul, aber zumindest so eine grundlegende Funktion, halt ohne so Optionen wie Loop Start oder Pitch, an der ich weiterbasteln kann...vielleicht weiß da jemand was.

Danke
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

ich versteh nicht ganz, warum du die idee mit dem ramp-osc verworfen hast!? ich benutze den i.d.r. auch zum auslesen und beschreiben von audiotables, wegen der saplerate-steuerung - da hat sellotape schon recht!
wenn du etwas aufnehmen willst und gleichzeitig auch das schon aufgezeichnete hören willst, dann achte darauf, das immer später gelesen als geschrieben wird.... das realisierst du, indem du rx und wx eingang mit derselben quelle (z.b. dem ramp oscillator speist), allerdings vor den rx eingang noch ein unit-delay einfügst! somit wird immer ein sample später gelesen als geschrieben, anderenfalls kommt es zu fragmenten, weil der table dann unter umständen zwischendurch zellen liest, die noch garnicht beschrieben sind!
ich weiss noch nicht genau, was für ne art sampler du bauen möchtest, ich hab mal einen kleinen drumloop häxler gebaut, vielleicht kannste dir da ja was abgucken, is in der ul unter dem namen "twister" zu finden! basiert auch auf nem audiotable in den man jedes beliebige sample einladen kann, die entsprechenden positionen passen sich an die länge des samples an.
fweth
meister
Beiträge: 118
Registriert: 21. November 2007, 16:01
Wohnort: Österreich

Beitrag von fweth »

toxonic hat geschrieben:ich versteh nicht ganz, warum du die idee mit dem ramp-osc verworfen hast!? ich benutze den i.d.r. auch zum auslesen und beschreiben von audiotables, wegen der saplerate-steuerung - da hat sellotape schon recht!
hmmmm danke vielmals, aber ich komm leider nicht in die user library...

mein problem mit dem ramp-osc war, dass der periodisch schwingungen produziert, und ich bräuchte sowas wie einen osc mit einem trigger-input, der bei jedem trigger genau EINE schwingung produziert, also einfach einmal von 0 bis 1 und dann aus. so dass ich die table wirklich wie einen trigger-gesteuerten sampler verwenden kann. das müsste eigentlich echt kein problem sein (vielleicht geht es sogar mit dem ramp-osc), ich habe nur leider noch keine lösung gefunden...
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

fweth hat geschrieben:[...]
hmmmm danke vielmals, aber ich komm leider nicht in die user library...
hmmm? solltest Du ändern, lohnt sich!
mein problem mit dem ramp-osc war, dass der periodisch schwingungen produziert, und ich bräuchte sowas wie einen osc mit einem trigger-input, der bei jedem trigger genau EINE schwingung produziert, also einfach einmal von 0 bis 1 und dann aus. so dass ich die table wirklich wie einen trigger-gesteuerten sampler verwenden kann. das müsste eigentlich echt kein problem sein (vielleicht geht es sogar mit dem ramp-osc), ich habe nur leider noch keine lösung gefunden...
du meinst einen "one-shot-Generator? Das kann man sich aus einem Sägezahngenerator ableiten (AudioCore-Cell), nur dass dieser nicht mehr bei 1 zurückspringt sondern einfach aufhört zu zählen - also ein Audio-Akkumulator (vgl. Handbuch zum Event-Akkumulator). Eventuell musst Du die Amplitude anpassen, da ich nicht weiß, wie Du den Sample-Generator ansteuerst. Mit Rate wird die Frequenz angegeben, mit der die Rampe durchlaufen wird. Falls Du eine Zeitdauer eingeben willst (in Sekunden), dann musst du den Kehrwert (1/x) benutzen.
one shot.gif
Das gehört jetzt aber nicht mehr zum Basiswisssen, daher verschiebe ich das Ganze mal ins Unterforum REAKTOR (kreativ).

ciao herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

krümelmonster hat geschrieben:Hmmmmh, ehrlich gesagt finde ich einen aus +, x und UnitDelay gebauten (geht natürlich in Core noch viel besser) diskreten Zähler zum Ansteuern der AudioTable-Zellen viel schicker.
Läuft auch sauberer und CPU-sparender.
Hi Gerald, kannst Du mal Deinen Vorschlag hier als Bild oder Makro posten?

ciao herw
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

mein neuer Vorschlag:
one-shot-Zähler.gif
L ist dabei die Länge der Audiotable (also zum Beispiel 1s = 44100, 2s = 88200 bei einer SampleRate von 44100Hz).

Der Trigger kann zum Beispiel von einem Midi-VelocityON-Modul stammen. Am Ausgang liegen dann mit SampleRate die Zahlen von 1 bis L an.

ciao herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
krümelmonster
synthesist
Beiträge: 90
Registriert: 6. März 2010, 18:18

Beitrag von krümelmonster »

Hi Herwig,
ja, so, oder auch ähnlich.
So startet man immer mit "1".

Die Sache mit dem diskreten Zähler...

Seit Core braucht man das ja nicht mehr, trotzdem.
Erfunden hat´s der "dfa".
Gibt´s auch irgendwo in der UL.
Und 2-3 berühmte threads, die ich bloß nicht mehr finde.
Die 2-3 Basistechniken seien hier noch mal gezeigt.
forum, diskreter Zähler.JPG
Sauberer läuft es sicher. Die CPU-Sparsamkeit muß ich leider aufgeben.
Die Rampe ist genügsamer.

Ciao, Gerald.
diskreter Zähler.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
fweth
meister
Beiträge: 118
Registriert: 21. November 2007, 16:01
Wohnort: Österreich

Beitrag von fweth »

hey

vielen dank für das tolle feedback!

leider konnte ich die core-cell dinger nicht zum laufen kriegen...weiß nicht woran das liegt. das erste hat mein notebook immer zum aufhängen gebracht :-/ und das zweite hat nur den eingangswert L ausgegeben. dabei glaube ich schon dass ich die ganz sauber nachgebaut habe...und dass ich reaktor 5.0 und nicht die neuerste version 5.1.2 habe sollte eigentlich auch kein problem sein.

naja den diskreten zähler verstehe ich besser, den hab ich jetzt so umgebaut dass er bei 1 zu zählen aufhört, von einem trigger angesteuert wird und die frequenz (zählgeschwindigkeit) live verändert werden kann (siehe anhang).

jetzt will ich nur wissen, wie man es schafft, dass zwei kurz aufeinanderfolgende trigger, bei denen der zähler sich eigentlich unterbrechen würde, auf zwei stimmen aufgeteilt werden, damit auf jeder stimme der zähler fertig zählen kann und nicht unterbrochen wird. wenn ich einen normalen, polyphonen sampler per MIDI ansteuere, passiert das auch ganz automatisch, so dass das sample paralell an zwei verschiedenen stellen abläuft.

und außerdem: wie wichtig ist für eine audiotable die anti-aliased funktion der ramp-osc?

danke
One Shor Counter.ens.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

mein lieber scholli - wie kann man mit so wenigen modulen so ein chaos erzeugen? :shock: also ich hab jetzt nicht versucht nachzuvollziehen, was du da gebaut hast - aber rein strukturell solltest du dir etwas ordnung aneignen.... bei grösseren strukturen verlierst du sonst ruckzuck den überblick! :wink:
ich hab dein ensemble mal bisschen aufgeräumt, den runbutton durch ein polyphones gate ersetzt........
da ich immernoch nicht genau weiss, wie dein ensemble hinterher genau funktionieren soll, soll dies hier nur als eine art wegweiser dienen:
wie du sicher schon ahnst, ist polyphonie der richtige lösungsweg!
4 stimmen sind in deinem instrument eingestellt, daher habe ich nun 4 numeric readouts eingefügt, die ich jeweils per "from voice"-modul je einer stimme zuordne! jetzt kannst du gleichzeitig oder auch zeitlich leicht versetzt irgeneine taste auf deinem keyboard drücken und der jeweilige counter fängt an zu zählen!
sicher willst du aber nicht dieselben positionen im table auslesen,oder?
dazu müsstes du selber noch ein bisschen basteln, aber dazu wirst du dich dann wohl auch mit dem "to voice" modul anfreunden! :lol:

edit: ich dusel....... hab vergessen die datei anzuhängen! also, nochmal - et voila!
One Shor Counter.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

krümelmonster hat geschrieben:[...]
Du solltest dringend auf 5.1.4 oder wenigstens 5.1.2 upgraden.
wieso sollte man bei R5.1.2 aufhören?
krümelmonster
synthesist
Beiträge: 90
Registriert: 6. März 2010, 18:18

Beitrag von krümelmonster »

Hi Herwig,
laut einigen Nutzern (ausschließlich auf Mac-Basis) gibt es bei 5.1.4 zumindest ein Problem mit Hintergrundfarben, die angeblich so eklig sind, daß sie einem den Spaß komplett verderben.
Kannst Du das als Mac-Fan bestätigen ?
Ich selbst habe 5.1.4 noch nicht. Da von PC-Userseite keine Probleme gemeldet worden sind, werde ich das baldigst nachholen.
Ansonsten gibt es natürlich keinen Grund, bei 5.1.2 aufzuhören.
Cheers, Gerald.
Antworten