sysy

bei sysy handelt es sich um einen modularen synthesizer, der einem analogen modularen synthesizer nachempfunden ist. sysy ist komplett mit processing geschrieben. es ist damit möglich verschiedene ein und ausgabe module zu verbinden und den entstandenen sound mit hilfe einer fft anzusehen und auszugeben.

vor dem schreiben des programms habe ich mir einige gedanken über den aufbau und die einzelnen klassen gemacht. das hat auch sehr gut funktioniert, aber sobald fälle eingetreten sind, die nicht in diesem plan berücksichtigt wurden, kam es zum pfusch. leider ist das rel. häufig aufgetreten, sodass das programm einige unsaubere ecken hat. anfangs wurde es in der processing ide geschrieben, bis ich schließlich auf java-features zugreifen wollte, die mit der processing ide nicht möglich sind, da der preprocessor nur java 1.4 kann (hier der bug). deswegen bin ich mit dem ganzen projekt zu netbeans umgezogen, was es auch nich unbedingt einfacher machte, da nun der gesamte code, der vorher mit tabs struktruiert war unter einander in einer datei steht.

sysy screenshotsysy screenshot

ein modul (blau sind die module, die sound erzeugen, rot sind die anderen module) wird erzeugt, indem man auf die kurze beschreibung auf der linken seite drückt, und wenn man das modul an der gewünschten position hat, die maustaste los lässt.
ein modul kann dann mit hilfe von kabeln mit anderen modulen verbunden werden. dafür drück man auf die grauen quadrate neben den ein bzw. ausgängen und lässt die maustaste über den anschluss, mit dem es verbunden werden soll los. zum lösen klickt man wieder auf den anschluss, und lässt ihn einfach los.
die ausgänge befinden sich an der rechten seite, die eingänge auf der linken seite. leider ist die funktion die die kabel-verbindungen rendert nicht sehr schlau, sodass manchmal auch kable über module gerendert werden.
zum entfernen von modulen müssen alle kabel »abgemacht« werden und dann mit gedrückter shift-taste auf das X rechts oben geklickt werden.
es können prinzipiell unendlich viele module plaziert werden (irgendwann geht entwerder der platz auf dem bildschirm einen strich durch die rechnung, oder der prozessor macht nicht mehr mit)
die orangenen balken bei jedem ein/ausgang zeigen an wie groß der aktuelle wert gerade ist. der vertikale strich zeigt den nullpunkt an. es gibt werte, die zwischen 0 und 1 liegen, und welche die zwischen -1 und 1 liegen. die werte zwischen -1 und 1 können mit hilfe des map-moduls in werte zwischen 0 und 1 umgewandelt werden.

prinzipell kann sysy auch von midi-keyboards gesteuert werden. in der version in der ich sysy hier zur verfügung stelle sind die entsprechenden zeilen code allerdings auskommentiert, da ich mir nicht im klaren bin wie ich das am besten und einfachesten in der gui lösen kann, dass man den midi-port auswählen kann, den man auch haben will.

jetzt aber auch zum programm:
gezippte jar file mit notwendigen libraries
quellcode (bitte nicht zu genau ansehen)

wie immer ohne garantie, und so,.. ;-)

im prinzip ist das programm mein ganzer stolz, und gleichzeit müsste ich mich für einigen code auch ziemlich schämen. das ergebnis gefällt mir sehr gut, und dass es doch so gut funktioniert fasziniert mich immer wieder ;-) aber bevor man neue module hinzufügt, müsste man noch mal das ganze prinzip überdenken, und das programm von grund auf neu schreiben. aber es geht ja weniger um das endprodukt, sondern um das was man dabei gelernt hat ;-) denn simulatoren für modulare synthesizer gibt es einige gute, kostenlose, an die meiner niemals ran kommt.