Neuer OpenSource Sysex Librarian - The KnobKraft Orm

kris_

kris_

|
Moin Leute,

Lock-down sei Dank habe ich tatsächlich Zeit gefunden, meinen für mich selbst gebauten Sysex Librarian soweit fertig zu stellen und auf Github hochzuladen (für Windows). Mac OS Version könnte angefertig werden mit Hilfe von jemandem, der einen Mac hat, gerne Kontakt aufnehmen!

Die allererste Version unterstützt erstmal den Prophet Rev2, aber MKS80, Matrix1000 und OB-6 kommen demnächst, und weitere Synths sind in Arbeit inklusive Virus Access, Korg DW8000, Yamaha Reface DX... Da es Open Source ist, ist natürlich jeder zur Mitarbeit eingeladen ;-)

Ich habe sogar mein allererstes eigenes YouTube Video zugestöpselt, in dem ich die Basis-Funktion vorführe:
https://www.youtube.com/watch?v=lPoFOVpTANM


Ausgangspunkt meiner Überlegungen für die Software:
+ Ich benutze die Synths ausschließlich im Home Studio, daher ist für mich Bank Management nicht wichtig, ich schicke die Patches vom Computer in den Synth
+ Live-tauglichkeit - tatsächlich jamme ich live und benutze dabei die Software. Die UI zielt mittelfristig auf eine Touch Bedienung, und soll mal auf einem Android tablet bzw. iPad laufen, dass ich mir an den Keyboard-Ständer schraube. Daher auch die Idee, die Daten lokal zu halten und nicht im Internet
+ Maximale Unterstützung der Synth-Funktionen, im Gegensatz zu einem generischen Sysex-Tool. So unterstützt bspw. die MKS80 Variante vollen Handshake für schnellen Transfer, und Upper/Lower Tones, beim Rev2 die Layer-Funktion.

Die Features von Version 1.0 im Einzelnen:
+ Unterstützung des Sequential Prophet Rev2
+ Patch download und upload vom Synth, Banks oder Edit Buffer. Speicherung in einer lokalen SQlite Datenbank
+ Patches können als Favorite oder als Hidden markiert werden (analog zu Lightrooms "Pick" und "Hide")
+ Man kann Patches einer oder mehreren Kategorien zuweisen (Pad, Lead, Bass, ...), und schnell nach Patches eines bestimmten Typs filtern
+ Makro-Definitionen, um Funktionen wie next patch, previous patch, hide und favorite mittels vordefinierter Akkorde auf dem Keyboard durchzufürhren - man muss also den Computer nicht anfassen, um sich durch einen Stapel Patches zu hören
+ Auto-Klassifikation der Patches aufgrund von Nameskonventionen - man kann eine Regelmenge (Regex) für die Patchnamen pro Kategorie angeben, dann wird das automatisch gemacht. Z.B. wird alles Lead was mit "LD:" beginnt und so weiter.

Ich habe noch viel mehr Ideen, aber Prio haben erst mal die weiteren Synths, und ich dachte, ich frage mal in die Runde, was ihr davon haltet und ob ihr weitere Ideen habt, was ihr gerne umgesetzt sehen wollt?

Bleibt gesund!
 
noir

noir

( ͡° ͜ʖ ͡°)
Pioneer Toraiz AS-1 wäre fein. Kannst Du Dir zum Testen gerne leihen. Prophet P12 wäre der Nächste auf der Liste.

Bin nicht so krass mit C++ aber ich schau die Tage mal ob ichs für Linux gebaut kriege.
 
kris_

kris_

|
Pioneer Toraiz AS-1 wäre fein. Kannst Du Dir zum Testen gerne leihen. Prophet P12 wäre der Nächste auf der Liste.

Bin nicht so krass mit C++ aber ich schau die Tage mal ob ichs für Linux gebaut kriege.
Der Toraiz AS-1 war irgendwie mit dem Prophet 6 verwandt? Ich erinnere was aus dem Laser Mammoth thread. Da ich schon den OB6 fertig habe neben dem Rev2, sollte alles von DSI/Sequential eigentlich kein großer Aufwand sein. Hab mir gerade das Handbuch runtergeladen, das sieht ja sehr ähnlich aus wie der OB6/Prophet 6, das sollte gehen.

Linux build ist vorbereitet, aber hat sicher noch ein paar Macken. Ich habe ein anderes Projekt mit vollständigen Linux CMake Files, da würde ich nachsehen, wenn was klemmt: https://github.com/christofmuc/JammerNetz
 
  • Daumen hoch
Reaktionen: khz
kris_

kris_

|
Pioneer Toraiz AS-1 wäre fein. Kannst Du Dir zum Testen gerne leihen. Prophet P12 wäre der Nächste auf der Liste.

Bin nicht so krass mit C++ aber ich schau die Tage mal ob ichs für Linux gebaut kriege.
So, ich habe Version 1.1.0 hochgeladen auf github - dieses bietet Support für Matrix 1000, Virus B, Reface DX, OB-6 und Rev2, und - tadaa - ein generisches Modul, in dem man mit einem kleinen Python Skript einen neuen Synth definieren kann. Ich habe als Beispiel mal den Matrix 1000 noch auf diese generische Art implementiert (das konnte ich so testen), das Skript liegt bei. Und ich habe mal ein Skript angelegt für die Toraiz AS-1, das konnte ich aber in Ermangelung des Synths nicht testen, ich bitte um Freiwillige! Linux geht jetzt auch, da muss man nur noch rausfinden, wohin er denn die Python Files gerne hätte (habe keinen Installer gemacht für Linux).

a

Danke dafür! Ich habe den Linux build fertig gemacht und ab jetzt auch einen Appveyor Continuous Integration build dafür, da bleibt er dann hoffentlich auch heil.

Getestet habe ich nur ganz kurz, da ich hier nur eine virtuelle Debian 10 Maschine hatte, aber augenscheinlich startet das Programm und legt auch eine SQLite Datenbank an. Feedback wäre gut, ich habe kein Midi Interface mit Linux-Treibern.
 
  • Daumen hoch
Reaktionen: khz
kris_

kris_

|
Cool, geht damit auch der Virus Indigo (v1)?
Glaube schon, das war doch einfach ein hübscher Virus B mit Tastatur, so wie der Virus kb nur kleiner? Ich kann auf der Access Seite gar kein spezifisches Handbuch für den Indigo finden, und das MIDI Kapitel unterscheidet da nicht. Könnte höchstens sein, dass der Indigo 1 wie ein Virus A ist, aber das sind kleine Anpassungen, die sollte ich hinbekommen. Probier doch mal aus und geb Bescheid!
 
harry-tuttle

harry-tuttle

...
Werde ich testen! Auf jeden Fall ne super Idee mit dem Opensource, da koennte wirklich was groesseres draus werden, wenn man sich so den Bedarf anschaut nach Librarians fuer diverse Synths.
 
verstaerker

verstaerker

*****
ich hab n Mac, Xcode ist schnell installiert .. würde gern mal versuchen das zu compilen. N Bisschen support währe vermutlich gut.

Nachtrag, ach gibt ja schon ne macOs Beta.
 
Zuletzt bearbeitet:
kris_

kris_

|
ich hab n Mac, Xcode ist schnell installiert .. würde gern mal versuchen das zu compilen. N Bisschen support währe vermutlich gut.

Nachtrag, ach gibt ja schon ne macOs Beta.
Ja, ich habs hier auf einem geliehenen MBP mit 10.15 zum Laufen bekommen, und versuche gerade rauszufinden, wie ich vorherige Versionen auch unterstützen kann - derzeit braucht man wohl mindestens 10.14. Teste auch 10.13 gerade, das ist alles ziemlich verwirrend auf dem Mac ;-)
 
kris_

kris_

|
Ich dachte ich gebe mal ein Update, da ich die Arbeit nach dem Sommer wieder aufgenommen habe. Es gibt eine neue Version 1.8.0, und die Liste der unterstüzten Synths wächst auch stetig. Kommentare/Wünsche/Anregungen jederzeit willkommen!

Hier der Link zu der neuesten Version, und meine Release Notes dazu in Englisch:

This is a major update with a month full of changes accumulated. The most importnant ones:


  • New synths (untested, please give feedback)
    • Sequential Prophet 5 Rev 4
    • Korg MS2000
    • Behringer Deepmind 12
    • Waldorf Blofeld
  • Now supporting multiple database files - the File menu has open/save and recent file list. Makes testing much easier, and can be used to sort patches by projects
  • Allowing to permanently delete all currently listed patches from the database. This is important for an undo of an import.
  • MIDI USB device plug'n'play support, at least on Windows. Now you can connect or disconnect devices while the software is running, and it tries to do the right thing
  • New and better layout of Setup tab, now that the synth list grows that fast
  • Many bugfixes in Setup tab around manually assigning channels and interfaces, and better unboxing experience to start in the SetupView when no synth has been selected yet
  • Added a quick check for MIDI loop (echo) detection into the Setup tab. The Kawai K3M and the Roland MKS-80 in my setup tend to create those loops, if the filtering in the interface is not setup correctly.
  • Added missing user consent for the Sentry based crash reporting (Windows only). If you build yourself, this is disabled anyway, but the installer files I upload to Github contain crash reporting for me to make better quality software
  • Storing last used synth and opening its library again on startup
  • Switched to JUCE 6
 
einseinsnull

einseinsnull

[nur noch PN]
Ja, ich habs hier auf einem geliehenen MBP mit 10.15 zum Laufen bekommen, und versuche gerade rauszufinden, wie ich vorherige Versionen auch unterstützen kann - derzeit braucht man wohl mindestens 10.14. Teste auch 10.13 gerade, das ist alles ziemlich verwirrend auf dem Mac ;-)
am rande.

was für den hobbydeveloper hier immer geil ist, sind die diversen angebote auf ebay mit bootfähigen USB sticks, die gleich 8 verschiedene MacOS versionen enthalten. gibt es ab 10 euro, hongkong style.

am besten ist es einen älteren rechner zu haben, der noch kein 64 bit boot EFI kann (ca. OSX 10.9 zeiten), und zu schauen, dass man einen stick bekommt, der neuen macos versionen mit entsprechend gehacktem boot room beinhaltet. damit deckst du circa 15 jahre ab (10.4.11 - 10.14.x)!
 
Zuletzt bearbeitet:
kris_

kris_

|
am rande.

was für den hobbydeveloper hier immer geil ist, sind die diversen angebote auf ebay mit bootfähigen USB sticks, die gleich 8 verschiedene MacOS versionen enthalten. gibt es ab 10 euro, hongkong style.

am besten ist es einen älteren rechner zu haben, der noch kein 64 bit boot EFI kann (ca. OSX 10.9 zeiten), und zu schauen, dass man einen stick bekommt, der neuen macos versionen mit entsprechend gehacktem boot room beinhaltet. damit deckst du circa 15 jahre ab (10.4.11 - 10.14.x)!
Danke, wieder was gelernt. Was das alles gibt! Eine schnelle Suche hat nur single Version boot sticks gefunden, vielleicht haben die Verkäufer gemerkt, dass man damit mehr Geld verdienen kann. Leider habe ich keine passende Hardware, hier nur einen MacBook von 2008, das läuft glaube ich mit 10.11. Für den gibt das aber keine aktuellen Compiler, der meinen Code schlucken würde. Das könnte man also mit einem forced Upgrade beheben.

Ich kann ja mit der Apple Welt nicht so viel anfangen, unter Windows und Linux hat man halt die entsprechenden virtuellen Maschinen und fertig.
 
einseinsnull

einseinsnull

[nur noch PN]
hm, ich wollt dir eins zeigen aber finds jetzt auch nicht mehr, das andere laptop mit dem bookmark von neulich ist leider kaputt. war ebay.de

das war ein 128 gb stick mit 8 betriebssystemen für 23 euro, was dem normalpreis eines leeren sticks entsprach.

man kann wohl so ganz grob sagen, dass es für kleine/nichtkommerzielle projekte auslangt 10.9, 10.11 und 10.14 zu testen.

das, was du unter 10.11 baust, einfach mal unter 10.9 mavericks testen, müsste bei dir noch laufen.

für ganz frische OSe, die ja weiter verbreitet sind, einfach andere leute testen lassen. :)
 
darkstar679

darkstar679

||||||||||
echt cool!
ich hab zwar keinen obigen synths, aber deine leistung ist wirklich lobenswert!
 
Zuletzt bearbeitet:
darkstar679

darkstar679

||||||||||
kann man sowas für den jupiter X basteln?
der hat ja so scene, tones, partials usw. ähnlich wie der JDxi damals
 
kris_

kris_

|
kann man sowas für den jupiter X basteln?
der hat ja so scene, tones, partials usw. ähnlich wie der JDxi damals
Noch nicht, würde ich sagen. Es gibt zwei Wege - in C++, da geht eigentlich alles, und in Python mit den Adaptionen, das ist von den Möglichkeiten noch eingeschränkt. Bspw. ist der Code für den MKS80 in C++, da das Gerät Handshaking braucht bei der Übertragung und auch mit Upper/Lower Tone und so arbeitet. Einfachere Geräte wie ein Matrix 1000 oder jetzt ein Korg MS2000 sind schnell in Python gebaut.

Aber die Schnittstelle für die Adaptionen wächst mit der Zeit, und immer mehr Möglichkeiten aus der Basis-Software stehen dann auch der Adaption zur Verfügung.

Ich denke gerade für mich selber mal nach... zur Zeit nur in C++ implementiert sind:

* Verschiedene Typen von Daten, wie Tones/Partials/Layers/Scales
* Globale Settings Editieren
* Implementation von Handshake Kommunikation
* Verarbeiten von Bankdumps, Python arbeitet immer mit Einzelpatches
* Verarbeiten von Streamdumps, also viele MIDI messages für einen Patch wie bei Yamaha
* Fingerprinting der Patches unter Berücksichtigung von "irrelevanten" Bytes, also z.B. erkennen, dass zwei Patches bei unterschiedlichem Namen trotzdem gleich sind
* Default-Namen Erkennung, damit bei Import eines "besseren" Namens der Defaultname überschrieben wird. Speziell gut für dem Matrix 1000, der die Patchnamen immer löscht
* Hübsche Bank Namen, die den Namen des Synths entsprechen
* Support für Editierung durch BCR2000

Ich kopiere das gerade mal in meine ToDo Liste ;-)
 
darkstar679

darkstar679

||||||||||
wow, C++.
das habe ich vor 20 jahren mal programmiert.....meine compiler sind sicherlich nicht mehr mit win10 kompatibel.

wünsche viel glück.
 
 


Neueste Beiträge

News

Oben