Wie entwickelt man Softsynths

A

Anonymous

Guest
Gibt es hier Software Synthesizer Entwickler?
Wenn ja, wie habt ihr angefangen?
Was muss man können?
 
Dies hier sollte ein guter Startpunkt sein: https://www.steinberg.net/de/company/developer.html

C bzw. C++ Programmierung beherrscht Du aus dem ff nehme ich mal an? DSP Algorithmen sind für Dich auch kein Fremdwort?

Dann mal los. Bei Steinberg registrieren, Lizenzvertrag ausfüllen, Developerkit runterladen und auf Basis der Templates loslegen.
 
Davon abgesehen, dass die Welt imo nicht noch mehr Softsynths braucht (gibt ja schon alles 100-fach), kannst Du ja auch erstmal mit Reaktor oder Synthedit anfangen als Entwicklungsumgebung, ohne dass man C++ können muss.
 
Zwei Dinge musst du können:
1. Theorie
2. Praxis

Theorie ist: Grundwissen in digitaler Signalverarbeitung, Systemtheorie und, wenn du gut bist, numerischer Mathematik. Ein Studium der Elektrotechnik / Informations- oder Kommunikationstechnik schadet nicht.
Praxis ist, die Theorie in Software zu schmieden. Und zwar auf eine elegante, robuste und effiziente Art und Weise. Dafür solltest du C/C++ beherrschen und dich in die gängigen APIs und Programmbibliotheken einarbeiten (JUCE, VST).
Jedes einzelne davon ist eine Wissenschaft für sich. Die Kunst ist, in beidem gut genug zu sein.

Ein guter Test für die Theorie ist, Vadim Zavalishin's "The Art of VA Filter Design" zu lesen. (afaik arbeitet der seit ein paar Jahren bei Native Instruments).
Ein guter Test für die Praxis ist dieser höchst unterhaltsame Vortrag von Pete Goodliffe (Software Architekt bei InMusic, also Akai, Alesis, Numark etc.) auf der letzten Audio Developer Conference
 
ich hab viel meines programmierwissens über vst nach dem learning by doing prinzip erlernt.
die VST SDK ist schonmal ein guter anfang, da ist das "AGain" demo plugin dabei.
Das ist ein simpler lautstärke knopf als plugin von dem an man anfangen kann simple algos zu testen.
Ebenfalls gut ist das JUCE framework weil es einem viel langweiligen kram und das ganze framework abnimmt.

aber im grunde läuft es schon darauf hinaus nach und nach signalverarbeitung zu lernen.
Geht aber wie gesagt auch schön schritt für schritt.
muss ja nicht gleich der riesen VA synth werden. Für den anfang sind auch mal simple Filter plugins oder ähnliches spaßig zu basteln.

schöner überblick -> http://musicdsp.org/
solange man nicht nur copy pasted sondern dann auch versucht zu verstehen was man da macht.
 
Von meiner allgemeinen Auslassung oben mal abgesehen, hier mein persönlicher Tipp zum Signalverarbeitung lernen:
Ein spannender Startpunkt ist Curtis Roads' Computer Music Tutorial. Das ist ein teurer, alter und ziemlich dicker Schinken, aber er enthält einen Abriss über rund 30 Jahre Computer Music Geschichte. Das schöne dabei ist, dass einige der Entwicklungen Recht genau erläutert werden, mit Quellenangaben zum weiteren Nachforschen. Das blöde dabei ist, dass das Buch von 1996 ist, also so ziemlich alles seit der Verbreitung von VA Synthesizern fehlt.

Warum ich das trotzdem spannend finde?
Weil es nicht schadet, jene Schritte nachzuvollziehen, die zu unserem Jetzt geführt haben, zu der Technik, die wir heute haben und benutzen. Viele der Beispiele dort lassen sich z. B. in Matlab oder Python relativ einfach programmieren. Das ist unglaublich lehrreich. Vor 15 Jahren hat das sogar mal jemand für den Nord Modular gemacht.

Dieses Buch ist ein ganz guter, einfach nachzuvollziehender Einstieg in Signalverarbeitung mit Python.
 
Danke für die Tipps. Als Frührentner mit 45 habe ich bis an mein Lebensende Urlaub, also Zeit genug. C++ ist mir nicht fremd, auch wenn ich jetzt kein Experte bin. DSP Kenntnisse sind nur sehr rudimentär, daher werde ich hier wohl am meisten lernen müssen. Wer noch weitere Ratschläge, Link usw. hat, immer her damit.

Zum Thema, es gibt ja schon genug Softsynths. Es gibt auch genug Analogsynths und trotzdem werden neue entwickelt und die DIY Szene ist auch gut vertreten. Mich interessiert das Thema Synthesizer Entwicklung nun einmal.
 
Ich habe mich auch schon mit dem Thema befasst, schau mal hier:

viewtopic.php?f=44&t=118622

und hier habe ich auch noch was dazu geschrieben:

http://pueski.de/?cat=24

Wenn Dich das Thema weiterhin interessiert kannst Du mir gerne ne PM schicken.

Grundwissen in digitaler Signalverarbeitung, Systemtheorie und, wenn du gut bist, numerischer Mathematik. Ein Studium der Elektrotechnik / Informations- oder Kommunikationstechnik schadet nicht.

Schadet nicht, aber für den Anfang brauchst Du das alles nicht.

Ich habe den Synthesizer mit JUCE in C++ realisiert, da hat man schon ein paar fertige digitale Filter. Code für Oszillatoren gibt es zuhauf im Netz. Und ein einfacher Sägezahn ist schnell implementiert. Eigene Filter kann man später immer noch entwickeln, ist aber auch kein Hexenwerk.

Ausserdem würde ich definitiv davon abraten, als Anfänger einen Synth nur mit dem VST SDK zu entwickeln. Nimm JUCE, für Open Source Projekte ist das kostenlos und man kommt ziemlich schnell zu ersten Ergebnissen.

Davon abgesehen, dass die Welt imo nicht noch mehr Softsynths braucht (gibt ja schon alles 100-fach)

Wenn wir so denken würden, würden wir aufhören uns weiterzuentwickeln. Ich freue mich immer, wenn ich einen neuen genialen Softsynth entdecke, der ein innovatives Konzept verfolgt.
 
@ mpue:
Danke für die Hilfe und das Angebot per PN. Ich komme bestimmt darauf zurück. Jetzt werde ich erst einmal recherchieren, Werkzeug besorgen und dann die ersten Gehversuche machen.
 
darsho schrieb:
Davon abgesehen, dass die Welt imo nicht noch mehr Softsynths braucht (gibt ja schon alles 100-fach).
Quatsch. Denkst du nur weil es deine Vorstellungskraft sprengt, gibt es keine neuen interessanten Entwicklungen mehr?
 
Vor allem klingen ja nicht alle Softsynths gleich und lassen sich auch nicht gleich gut bedienen und so weiter. Richtig gute Softsynths zum akzeptablen Preis sind immer noch Mangelware.
 
man braucht einen computer mit software (compiler/ide) ;-)
was anderes als c(pp) benutzen dabei nur komplett verrueckte. nicht das es nicht auch ginge...

"dsp and plugin development" bei kvr ist vielleicht auch noch lesenswert. ansonsten kann man mit dem vst-sdk direkt loslegen, so kompliziert ist das nicht.
mit mathematik sollte man nicht auf kriegsfuss stehen, aber das noetige kann (und wird/muss) man dann auch 'unterwegs' lernen.
allerdings scheint mir "juce" recht empfehlenswert, weil es einem viel nervigen routinekram abnimmt. aber als das rauskam war
ich gerade dabei die 'plugin-welt' wieder zu verlassen, und hab somit keine praktischen erfahrungen damit...
 
Mit [CSound](https://de.wikipedia.org/wiki/Csound) werden auch iOS-Apps und VST-Plugins entwickelt.
Allerdings braucht man schon einige Zeit um CSound zu lernen und richtig warm wurde ich nicht mit der Syntax von CSound (SuperCollider hat eine moderne Syntax), hörte aber schon von erfolgreichen Plug-Ins die "nebenher" entwickelt wurden.
Wobei eigene Module/Extensions schreibt man in C (wie auch in PD).

JUCE wird auch genutzt von MAX/MSP, Mackie uvm.

OpenFrameworks (Processing-like in C++, ) ist auch sehr nett um mal ein Standalone-Prototyp zu erstellen,
z.B. mit http://maximilian.strangeloop.co.uk/

Protrekkr (Fork: https://github.com/falkTX/protrekkr) ist der Vorgänger von Renoise und Open-Source.
 
darsho schrieb:
[...] dass die Welt imo nicht noch mehr Softsynths braucht[...]

Naja, das ist schon sehr demotivierend ausgedrückt. Dieser Logik zufolge braucht die Welt auch keine weitere Musik mehr. Soll doch jeder erst mal - womit auch immer - seinen Spaß haben und wenn dabei (ggf. wider Erwarten) was Innovatives rauskommt, ist das doch ein schöner Bonus.
 
Genau, mir geht es in der Regel darum einen Traum zu verwirklichen, nämlich meinen eigenen Synthesizer zu bauen.
 
TrackerA-3 schrieb:
Als Frührentner mit 45 habe ich bis an mein Lebensende Urlaub, also Zeit genug.
Also dann hast du denk ich mal die Grundvorraussetzung schon mal erfüllt. Vielleicht wäre ja auch Reaktor Core was für dich? Man sollte nicht vergessen das so Sachen wie Monark auf Reaktor basieren....
 
TrackerA-3 schrieb:
Genau, mir geht es in der Regel darum einen Traum zu verwirklichen, nämlich meinen eigenen Synthesizer zu bauen.

Kann ich gut verstehen. Ich bastel selbst seit einigen Jahren an etwas, was eigentlich keiner außer mir braucht. Mittlerweile bieten Leute dafür Geld - es scheint also doch nicht ganz uninteressant zu sein, aber das ist nun mal nicht die Motivation. :D

Ein Experte würde das vielleicht in ein paar Wochen zusammenschrauben, aber ich gönne mir den einen oder anderen Exkurs (SIMD, Approximationen der hungrigsten Mathematikfunktionen, Multithreading, Interprocess Communication... ). Das bringt mir am Ende mehr, als von Anfang an vetrauensvoll ein paar fertige Libraries und Container in C++ zusammenzuschmeißen und damit ggf. anderer Leute Bugs einzupflegen. Aber "best practice" im Sinne effizienter und zielgerichteter Entwicklung ist das sicher nicht.
 
Ist doch toll wenn du so viel Grundlagen lernst. Annäherungsverfahren zum Lösen von analogen Schaltungssimulationen sind schon die Königsdisziplin würde ich mal sagen. Ich bastle erst mit vorhandenen Schnipseln rum und versuche sie zu verstehen. Von der Pike auf interessiert mich das Thema aber auch. Ach na und Zeit habe ich auch genug, das kann alles ruhig ein paar Jahre dauern.
 
Übrigens an dieser Stelle noch ein Tip: Wenn Du Dein Projekt mit JUCE umsetzen willst, verzichte unter allen Umständen auf ScopedPointer Objekte!

Die sind ganz großer Käse, insbesondere wenn man Sie mit regulären Zeigern vermischt gibt's richtig großen Ärger und du bekommst den Synth niemals stabil.
 
mpue schrieb:
Übrigens an dieser Stelle noch ein Tip: Wenn Du Dein Projekt mit JUCE umsetzen willst, verzichte unter allen Umständen auf ScopedPointer Objekte!

Die sind ganz großer Käse, insbesondere wenn man Sie mit regulären Zeigern vermischt gibt's richtig großen Ärger und du bekommst den Synth niemals stabil.
+1 Ausserdem ist der Umgang von Juce mit Pointern generell etwas gewöhnungsbedürftig. Man muss sich wirklich merken, welche Klassenmethoden die Lebensdauer eines übergebenen Pointers von nun an selber verwalten und welche nicht. Sprich welche Objekte man selber deleteen muss und welche man nicht darf. Ein Update von juce auf C++11 wäre mMn angebracht.
 
# Audio Programming Language
# C++
# dsp
# Developer's Section
 
Ich finde es immer wieder spannend, wenn div. Laute sich als Software- oder Hardware Architekten bezeichnen und dies sogar in einigen Fällen auf die eigene Visitenkarte schreiben. Naja..

Sorry für das etwas Off-Topic.
 
rauschwerk schrieb:
Ich finde es immer wieder spannend, wenn div. Laute sich als Software- oder Hardware Architekten bezeichnen und dies sogar in einigen Fällen auf die eigene Visitenkarte schreiben. Naja..


Was ist daran falsch? Es geht um die Architektur von Hard- und Software Infrastrukturen. Ist in der IT-Branche gang und gäbe solch eine Bezeichnung. Kann daran nichts lustiges finden.
 
Mr. Roboto schrieb:
Was ist daran falsch? Es geht um die Architektur von Hard- und Software Infrastrukturen. Ist in der IT-Branche gang und gäbe solch eine Bezeichnung. Kann daran nichts lustiges finden.

Weil es sich hierbei um eine geschützte Berufsbezeichnung handelt, die NUR jemand führen darf, der von einer Architektenkammer aufgenommen (unter best. Voraussetzungen natürlich) und mit entspr. Listen-Nr. geführt wird. Durch die Aufnahme in die Architektenkammer erhält der Architekt eine Urkunde aus der hervorgeht, dess dieser sich ab dann (erst) Architekt nennen darf. Hinzu kommt eine Jahresgebühr, welche abhängig vom Umsatz (bei freischaffenden) abhängig ist. Angestellte Architekten zahlen andere Beträge.

Wer sich als Architekt bezeichnet (eMail-Signatur, Visitenkarten, o.s.) ohne Kammermitgliedsschaft, riskiert eine Unterlassungsklage. Hierbei ist es völlig egal, ab man sich als Software-/Hardware Architekt, Landschaftsarchitekt, IT-Architekt oder sonst was ...Architekt nennt.

Das nur so zu allgem, Info.
 
mpue schrieb:
Wie kommt Ihr jetzt eigentlich von Softsynths auf Software-Architekten?


Keine Ahnung, musst Du "rauschwerk" fragen. Wollte das nur nicht als so eine abschätzige Bemerkung stehen lassen.
 


Neueste Beiträge

Zurück
Oben