Fragen zum JP-8000 / Programmierung

_thomas_

||||||||||
Hallo zusammen,

ich habe jetzt mal angefangen mit der DSP-Entwicklung in c (oder c++) und habe mir überlegt, eine vom JP-8000 inspirierte Stimme zu bauen. Prinzipiell wird das erstmal Plattformunabhängig sein. Aber um das alles testen zu können stelle ich das in einer Pure Data-Extension bereit.

Ich kenne den Synth nicht wirklich. Mir kam es hauptsächlich auf den Supersaw an. Der ist aber gar nicht so kompliziert und hört sich auch schon ganz gut an. Aber wenn ich den zweiten Oszillator als Modulator nutze, kommt da eher etwas heraus was einem Ring-Mod ähnelt. Also irgendwie ziemlich schmuddelig. Dem Carrier habe ich mal einen Sinus spendiert, den der JP-8000 aber nicht hat (glaube ich). Nur um das mal überprüfen zu können. Das hat eindeutig den Charakter eines Ring-Mod.

Wirklich harmonisch nutzbar ist das nicht mehr, aber vielleicht ist das beim Original ja auch so?

Vielleicht mache ich aber auch was falsch. Hat jemand einen simplen Beispiel-Sound oder kennt einen Track wo das genutzt wird?
 
Anhang anzeigen JP8000_X-Mod_Xample.wav


Hier mal ein schnelles Beispiel mit 3 Tönen.

OSC1= Triangle
Mix = 100% OSC1
X-Mod Depth = jeweils von 0-100% und zurück (der Parameter/das Poti ist recht grob im Verlauf)
OSC2 = gleiches Tuning wie OSC1, in der Reihenfolge Tri > Saw > Square

Sag Bescheid, wenn Du etwas Spezifisches brauchst.
 
Zuletzt bearbeitet:
Von deinem Beispiel bin ich klanglich sehr weit entfernt. Allerdings sind hier nur die nackten Oszillatoren zu hören. Ohne Modulationen, Filter, irgendwelche Sättigung oder was der JP-8000 sonst noch so veranstaltet hat.



Tja, das hört sich für mich alles ziemlich ähnlich an.

Ist das Linear FM? Bei Through Zero FM sollte der Grundton stabiler sein. In meinem Beispiel hört man auch "nur" die Oszillatoren. Filter war offen und keine Modulationen.
 
Zuletzt bearbeitet:
Ist das Linear FM?
Ja, ist es. Sobald FM modulation 0 ist kann schon rein rechnerisch kein FM mehr stattfinden und der Carrier wird unberührt ausgegeben. Wenn es das ist, was du meinst.

Also ich denke mal, ich lass das so.

Feature:
  • OSC1: Supersaw, Saw, Square, Triangle, Sine
  • OSC2: Saw, Square, Triangle, Sine
  • Noise: White, Pink
  • Mixer: OSC1, OSC2, Noise
  • OSC2: Pitch-Offset +-24 Halbtöne, Fine-Tune +-100 cent
  • Pulse width
  • OSC1 => OSC2 sync
  • FM: OSC2 Modulator, OSC1 Carrier
  • Saubere Parameterumschaltung ohne Knicksen und Knacksen
Ein Multimode-Filter werde ich wohl noch hinzufügen. Blöderweise habe ich davon so gar keine Ahnung. Für mich ein Buch mit sieben Siegeln bisher.

Alles andere hat mit Modulation zu tun. Das kann man dann mit Pure Data oder SupperCollider schnell erledigen.

Also ich wäre bestimmt Fan vom JP-8000 gewesen. Ich habe mal ein wenig herum gespielt. Mit wenig Aufwand bekommt man ein paar echt schöne Sounds. Und Supersaw ist echt fett.
 
Wenn es das ist, was du meinst.
Nein, ich meine dass Du statt Linear FM TZFM nutzen solltest, weil das musikalisch im JP-8000 Kontext besser einsetzbar ist. Hier mal ein Link dazu:
 
Verstehe. Ich benötige eine negative Frequenz....

War eigentlich nur eine Kleinigkeit. Schöner Effekt, dieser oft sehr harsche, bellende FM-Sound ist sehr viel softer geworden ohne den FM-Character zu verlieren. Cool. Danke für den Hinweis. Wieder was gelernt. 👍
 
Kleine Kostprobe Supersaw:

Anhang anzeigen pd_session_0.wav

Da das Zielsystem ein Raspi3 ist musste ich von Sample- auf Block-Verarbeitung gehen. Was ein Aufriss mit den Audio-Puffern. Und dauernd hin- und herkopieren will man ja auch nicht. Aber jetzt habe ich eine schöne Basis für zukünftige und Plattform-unabhängige Extensions (Pure Data, SuperCollider, VST, LV2, etc...).

Einziger Schmerz ist der/die/das Filter. 8 Stimmen Stereo (nur wegen des Supersaw) bedeutet 16 Filter. Während die Implementierung der Stimmen eigentlich profan ist, braucht man für die Filter-Komponente sehr viel mehr Gehirnschmalz. Er soll halbwegs performant sein und sich trotzdem gut anhören. Das Ziel habe ich bisher nicht erreichen könne. Ein 4-Pole Ladder ist eigentlich recht einfach aufgebaut. Hat aber auch so seine Eigenheiten die man nicht möchte. Wie z. B. Gain-Reduction beim Cutoff.

Wenn jemand eine Idee hat oder eine gute Implementierung kennt, die ich als Basis nutzen kann: ich bin interessiert.
 
Dry und Raw (etwas leise) Supersaw mit MS20-ähnlichem (Zweistufiger Tiefpass mit "Dioden"-Clamping, was in Wirklichkeit ein tanh ist) Filter:

Offen
Anhang anzeigen filter_open.wav

Cutoff 1800 Hz, 0% Reso
Anhang anzeigen filter_1800_hz_reso0.wav

Cutoff 1800 Hz, 25% Reso
Anhang anzeigen filter_1800hz_reso25.wav

Cutoff 1800 Hz, 100% Reso
Anhang anzeigen filter_1800hz_reso100.wav

Cutoff 1800 Hz, 100% Reso + Drive
Anhang anzeigen filter_1800hz_reso100+drive.wav

Das hat natürlich nicht wirklich etwas mit dem MS20 zu tun. Nur der Aufbau ist ähnlich. Reso lass eich nur bis zu einem gewissen Maß zu. Die Deeskalation ist total aufwendig, da lasse ich es lieber bei dezenteren Werten. Ich habe ihn Korgon getauft. Wenn jemand eine Meinung zum Klang hat, würde mich das als DSP-Noob freuen. Mit faulen Eiern werfen ist auch kein Problem.

Edit: Bug im Filter. Der macht die Supersaw mono. Aber für einen Klangeindruck spielt das keine Rolle denke ich.
 
Zuletzt bearbeitet:


News


Zurück
Oben