core cell osc vs. primary osc

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

Moderator: herw

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

core cell osc vs. primary osc

Beitrag von sellotape »

gibt es da eigentlich nennenswerte unterschiede zwischen den beiden? das einzigste was ich bis jetzt festgestellt habe ist:
- bei core cell gibts softsync
- der cpu verbrauch bei core cell ist fast 4x mal so groß!

klanglich macht das für mich keinen unterschied und bei dem cpu verbrauch seh ich im moment echt keinen grund die core cell oscillatoren zu benutzen aber ich lass mich gerne eines besseren belehren.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: core cell osc vs. primary osc

Beitrag von herw »

sellotape hat geschrieben:gibt es da eigentlich nennenswerte unterschiede zwischen den beiden? das einzigste was ich bis jetzt festgestellt habe ist:
- bei core cell gibts softsync
- der cpu verbrauch bei core cell ist fast 4x mal so groß!

klanglich macht das für mich keinen unterschied und bei dem cpu verbrauch seh ich im moment echt keinen grund die core cell oscillatoren zu benutzen aber ich lass mich gerne eines besseren belehren.
schwer zu entscheiden: vielleicht sind die core Oszillatoren im hohen Bereich (antialaising) etwas besser.
Der Vorteil ist natürlich, dass man sich die Oszillatoren selbst für die eigenen Bedürfnisse anpassen kann. Wenn man sich aus den angegebenen Beispielen der core library mal die Multioszillatoren vornimmt und auf die Eigenschaften der primary Oszillatoren heruntertrimmt, dann verbrauchen sie genauso wenig wie die primary Oszillatoren. Es sind dazu aber einige Tricks nötig (kann ich bei Interesse auch gerne verraten). Die primary-Oszillatoren sind wohl wesentlich maschinennäher programmiert, also optimiert.
Trotzdem möchte ich die Eingriffsmöglichkleit in Core nicht missen. Gerade die Oszillatoren sind in meinen Augen der beste und auch bestens dokumentierte Core-Einstieg überhaupt.
Wenn man sich die Funktionsweise des Eventzählers und dann auch des Sägezahnoszillators einmal klar gemacht hat, dann steht einem eine ganze Welt neuer Oszillatoren offen. Es gibt unglaublich viele Möglichkleiten, interessante Modulations- und Synchronisationsmöglichkeiten durch einfachste Rechenoperationen zu entwickeln. Die Synchronisation ist in meinen Augan dabei die wichtigste Modulation überhaupt. Sie ist in ihren Grundzügen äußerst einfach und systematisch anzuwenden, aber sehr unterschiedlich in ihren klanglichen Auswirkungen.
Man muss sich nur hineintrauen.
Man darf die Core-Library nicht als optimale und endgültige Bibliopthek verstehen, sondern nur als ein Orientierungspool, aus dem man eigenständige Ideen eintwickeln kann.
Ich kann nur empfehlen, sich mit den Core-Oszillatoren intensiv zu beschäftigen. Dabei kann man die ausgefuchsten Tricks des Antialaising ruhig außen vorlassen. Allein der interne Ramposzillator und die anschließende Wellenbidung reichen, um neue Ideen zu entwickeln.

PS: die soft-Synchronisation ist in meinen Augen die langweiligste Synchronisationsform, da sie lediglich die Frequenz des synchronisierenden Oszillators übernimmt, die Wellenform aber gleich lässt. Die Hardsynchronisation dagegennimmt massiven Einfluss auf den Obertongehalt der Original-Schwingung und ist damit extrem klangformend.
Allerdings muss ich einschränkend sagen, dass NI wohl unter soft-synchronisation wohl auch eine Form der Hardsynchronisation versteht, mir ist das nicht ganz klar.
Gut beschrieben wird die Synchronisation bei Doepfer (pdf-file S. 8-10).
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

ich dank dir mal wieder für deine ausführliche antwort!
ich hab das ganze mal auf eine wellenform reduziert, den pm eingang rausgescmissen und den p eingang auf event umgestellt und komm fast auf den selben cpu-verbrauch wie mit den primary.
hast du manchmal ne idee wie ich die lfos interpolieren kann. ich würd gern den sinus und triangel mit einstellbarer symmetrie als oscillator mit fm und sync haben. aber die dokumentation beschränkt sich leider nur auf die sägezahn funktion. das ganze verbiegt sich bei hohen frequenzen zwar nicht aber das ergebnis klingt doch recht digital was in verbindung mit fm zwar auch interessante ergebnisse bringt aber letztendlich mal wieder nicht das ist was ich haben wollte.
ni's softsync ist mir auch etwas unklar. es scheint mehr oder weniger nur ein zufallsparameter zu sein der festlegt ob bei einem nulldurchlauf gesynced wird oder nicht. am ende das selbe wie bei hardsync nur das halt nicht bei jedem nulldurchlauf geretriggert (was fürn wort^^) wird.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

sellotape hat geschrieben:...
hast du manchmal ne idee wie ich die lfos interpolieren kann. ich würd gern den sinus und triangel mit einstellbarer symmetrie als oscillator mit fm und sync haben. aber die dokumentation beschränkt sich leider nur auf die sägezahn funktion. das ganze verbiegt sich bei hohen frequenzen zwar nicht aber das ergebnis klingt doch recht digital was in verbindung mit fm zwar auch interessante ergebnisse bringt aber letztendlich mal wieder nicht das ist was ich haben wollte.
...
die primary LFOs sind schlecht, wenn Du höhere Frequenzen benutzen möchtest (mehr als 5Hz).
Ich benutze einen ganz normalen (Audio-)Oszillator, wobei ich allerdings mich auf das wesentliche beschränke; da dieser LFO immer noch sehr niedrige Frequenzen benutzt (<200Hz), kann man auf den ganzen alaising-Balast verzichten. Probiere zunächst mal einen Sägezahn-LFO in dieser Art aufzubauen, der deine Modulationswünsche erfüllt.
Aus einem Sägezahn dann andere Wellenformen herzustellen, ist nicht so schwierig, wenn Du dir die Wellenverbiegung im Multi-Wave-Oszillator ansiehst.
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

ich will aus nem audio core cell lfo (siehe anhang) einen oscillator basteln und dafür brauch ich die interpolation nur leider hab ich ma wieder keinen dunst wie ich das anstellen soll. aus dem core cell multiwave osc werd ich einfach nicht schlau.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

und kannst du mir bitte die tricks zur cpu optimierung verraten?
primary 0.4%
corecell 0.8%
bei 4 stimmen
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

sellotape hat geschrieben:und kannst du mir bitte die tricks zur cpu optimierung verraten?
primary 0.4%
corecell 0.8%
bei 4 stimmen
die zusätzliche Last kommt durch die Umrechnung Pitch->frequency zustande. Falls Du die benutzen solltest, so musst du diese in primary auslagern; dort ist zwar die Genauigkeit etwas geringer als in Core, aber im CPU-Verbrauch niedriger. In deinen LFO schaue ich mal hinein.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

sellotape hat geschrieben:ich will aus nem audio core cell lfo (siehe anhang) einen oscillator basteln und dafür brauch ich die interpolation nur leider hab ich ma wieder keinen dunst wie ich das anstellen soll. aus dem core cell multiwave osc werd ich einfach nicht schlau.
beide Oszillatoren erzeugen nicht die Phase; kannst Du das mal noch dazulegen; es ist schon wichtig, die gesamte LFO-Sruktur zu sehen, insbesondere wie du die Phase erzeugst, oder nimmst Du einfach einen Ramposzillator?
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

da hast du...
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 »

sellotape hat geschrieben:...dafür brauch ich die interpolation nur leider hab ich ma wieder keinen dunst wie ich das anstellen soll....
Was meinst Du mit Interpolation? Ist dir die Schritthöhe bei samplerate=44100 und den niedrigen Frequenzen zu hoch, oder verstehst Du darunter etwas ganz anderes?
Damit wir nicht aneinander vorbeireden: unter Interpolation verstehe ich die Errechnung von Zwischenwerten zwischen zwei Ergebnissen. Da die Schritthöhe schon aus der samplerate errechnet wird, kann man nicht noch Zwischenwerte ausgeben.
Beim Dreiecksoszillator verstehe ich dich richtig, dass du eine variable Dreiecksform haben möchtest (der Umkehrpunkt liegt nicht unbedingt symmetrisch)?

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

Beitrag von sellotape »

nkay da war ich gedanklich noch zur sehr mit der interpolation von dem distributor beschäftigt. :oops:
was ich eigentlich meinte ist das aliasing. da brauch ich dann auch eine funktion die die symmetrie mit berücksichtigt. wenn man sich das bei dem multi-wave osc anschaut sieht man das zb bei dem saw osc eigentlich nur das aliasing drin ist da die ramp funktion direkt von der phase kommt. braucht ja nicht geformt zu werden. das funktioniert dann auch mit dem triangel osc den ich hier gepostet hab wenn width=1 oder -1. bei width=0 geht wieder die aliasing funktion aus dem triangel von dem multiwave osc. jetz brauch ich halt die passende funktion für die schritte zwischen sägezahn und triangel und das selbe nochmal für den sinus.
das ganze funktioniert zwar auch ohne aliasing aber das klingt doch ganz schön rau
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

sellotape hat geschrieben:nkay da war ich gedanklich noch zur sehr mit der interpolation von dem distributor beschäftigt. :oops:
was ich eigentlich meinte ist das aliasing. da brauch ich dann auch eine funktion die die symmetrie mit berücksichtigt. wenn man sich das bei dem multi-wave osc anschaut sieht man das zb bei dem saw osc eigentlich nur das aliasing drin ist da die ramp funktion direkt von der phase kommt. braucht ja nicht geformt zu werden. das funktioniert dann auch mit dem triangel osc den ich hier gepostet hab wenn width=1 oder -1. bei width=0 geht wieder die aliasing funktion aus dem triangel von dem multiwave osc. jetz brauch ich halt die passende funktion für die schritte zwischen sägezahn und triangel und das selbe nochmal für den sinus.
das ganze funktioniert zwar auch ohne aliasing aber das klingt doch ganz schön rau
sorry, aber ich muss noch mal nachfragen wegen "klingt". Du willst doch einen LFO, der in der "Pulsweite" des Dreiecks einstellbar ist, also von Dreieck zu Sägezahn morphen soll? Wieso hast Du bei so niedrigen Frequenzen alaising-Probleme? Rau klingt es nur beim Sägezahn (normal); nahe des Dreiecks wird es weich.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

so ich habe jetzt mal selbst einen LFO aufgebaut; es kam fast dasselbe heraus wie bei deinem, ich bilde nur den morphing-Punkt etwas anders.
Der CPU-Verbrauch ist bei deinem Konstrukt mit externem Phasen-Generator höher (auf meinem betagten Laptop 0,5+0,5, bei meiner Lösung 0,5, primary 0,4).
Ich habe daraufhin den Phasen-Generator mit in den Dreiecks-LFO übernommen: cpu 0,8, also kleine Änderung.
Dann fiel mir der wrapper vor dem Dreiecksbilder auf. Er schränkt auf -0,5 bis +0,5 ein. Die Eingangsschwingung ist aber eh schon darauf eingegrenzt, wozu also nochmals der wrapper?
Ich habe ihn entfernt (keine Änderung der Wellenform, aber cpu nur noch 0,5).
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

nochma von vorn: die beiden oscillatoren hab ich aus meinem lfo und ich will nun die beiden in der symmetrie verstellbare wellen (sinus & triangel) in einen richtigen oscillator einbauen und dafür brauch ich nun das aliasing weil das sonst sau schlecht klingt.

zu meinem lfo:
im freerun und gate modus kommt die phase von dem phasen osc. wenn ich zur songpos synce nem den 96a ausgang vom songpos modul und errechne mir die phase mit einem modulo ähnlich wie bei einem sequenzer.
das ist der grund für die externe phase

wenn ich nun das ganze in der phase verschieben will muss ich mit einem regler den entsprechenden wert dazu addieren und verlasse damit den wertebereich von -0.5...0.5 und brauch deshalb den wrapper
sellotape
synthesist
Beiträge: 59
Registriert: 2. September 2007, 10:48
Wohnort: Leipzig

Beitrag von sellotape »

mit anderen worten ich will den "tri/par symm" osc nachbauen und dem ganzen sync und fm spendieren. also nix mit lfo. da kommen nur die wellen her weil ich nicht so ne leuchte bin das mit der symmetrie zu realisieren. und da ein osc nun mal im hörbaren berich oszilliert brauch ich aliasing. du kannst dir das ja ma an hören und mit einem osc aus der core cell library vergleichen dann weißt du was ich mit rau meine.
Antworten