Alyseum / copperlan per sysex Konfigurieren

Dieses Thema im Forum "Controller, Kabel, MIDI / CV" wurde erstellt von mink99, 31. Dezember 2015.

  1. mink99

    mink99 ..

    Ok, die Diskussion , ist das alyseum 88c eine patchbay oder nicht in jeder Frage zu einer patchbay zu wiederholen, ist doof.

    Fakt ist, im standalone betrieb gibt es genau eine Konfiguration, die man nutzen kann.
    Doch ist das wirklich so ?

    Könnte mal jemand prüfen, ob eine copperlan Device sich auch per sysex über die normalen Midi Ports konfigurieren lässt, (so wie die amt:cool: oder ob der copperlan Manager eventuell sogar selber sysex, nur eben über netz, versendet ?

    Und wenn ja, ist dieses sysex irgendwo dokumentiert ?

    Weil, dann könnte man ne kleine arduino oder oder embedded Linux box oder ne ctrlr App oder ne iPad App bauen, und wer wirklich unabhängig vom pc. Man könne mehrere Boxen über eine grössere studiofläche verteilen und hätte trotzdem übergreifendes Routing...
     
  2. Drumfix

    Drumfix ....

    Nee, da ist nix mit Sysex oder ähnlichem. Das Protokoll ist vollkommen proprietär und da wird weit mehr als nur Midi übertragen.
    Meines Wissens wird zur Zeit an einer Android/iOS App für die Konfiguration gearbeitet, so dass man die Konfiguration per
    Wlan durchführen kann. (Die Copperlan Geräte müssen dann eben an einen Wlanrouter angeschlossen sein).
    Bringt mir persönlich allerdings alles nix, da die Linux nicht unterstützen wollen. :sad:
     
  3. Max

    Max ||

    Ein kleines Kästchen mit dem man Konfigurationen laden kann wär wirklich top :supi:

    Man könnte ja mal bei Alyseum nachfragen, ich würds auf jeden Fall auch kaufen...

    Die iOS-App vom CopperLan Manager gibt es übrigens schon.
     
  4. mink99

    mink99 ..

    Müsste aber sysex über Midi und nicht CHI sein, sonst kann man keine standardcontroller oder arduino nutzen.
     
  5. Max

    Max ||

  6. mink99

    mink99 ..

    Das copperlan sdk hab ich mir schon angeschaut . Ich bin doch nicht bekloppt, wenn ich mit 12 Zeilen Code auf arduino was bauen kann, was auf dem sdk nur 31.942 braucht, da braucht man sich doch nix zu beweisen.

    Nee, da haben die Jungs Mist gebaut. Das hätte einfacher gehen können. Saubere Software -Architektur und api-Design ist anders.

    Zur Erklärung :

    Die Funktionalität der api erfüllt zwei Anforderungen :

    Discovery, configuration & Routing
    Messaging

    Während der erste Teil durchaus in plain c (nicht c++) als lib zur Verfügung hätte gestellt werden können, ist für das Messaging (im Bereich Midi ) keine Notwendigkeit , das Midi - Protokoll nicht zu nehmen. Tunneling ist keine Rocket Science.

    Das chai Interface ist massiv overengineerd , löst Probleme, die man nicht hat, macht komplizierte Dinge kompliziert und einfache auch.

    .......

    Auch der vnm leidet an Übergewicht . Hier hätte ein ldap Interface Sinn gemacht, aber auch hier musste man das Rad neu erfinden.
     
  7. Max

    Max ||

    Ja, is recht - völliger Mist alles... Wie lang hast du gebraucht um dir deine qualifizierte Meinung zu bilden? 5 Minuten?

    CopperLan ist voll abwärtskompatibel zu MIDI. Willst du ein Arduino über MIDI anstecken, kauf dir für ein paar € ein AL88C.

    Und natürlich gibt es KEINE SysEx-Api für die Konfiguration, wie soll das auch funktionieren? Das macht auch ÜBERHAUPT keinen Sinn, das komplette Routing fürs gesamte Netzwerk und alle CopperLan-Devices über SysEx zu machen.

    Und auch ein LDAP macht wenig Sinn in einem dezentralen Netzwerk ohne Server...
     
  8. mink99

    mink99 ..

    Pseudocode arduino :

    Code:
    void setup()
    {
        
        LDAPClient client;
        Object o = null, 
        client.connect(.....); // copperlan Access Point 
        if (client.connected()) {
      //.  do more LDAP calls now 
             o = client.read("......."); // copperlan tree entry
        }
        If (!o) fail();
        MIDI_CREATE_INSTANCE(o,o,COPPERLAN):
        COPPERLAN.begin(4);        // Open Port and listen to channel 4
    }
    
    
    void loop()
    {
        if (MIDI.read())                // If we have received a message
        {
            MIDI.sendNoteOn(42,127,1);  // Send a Note (pitch 42, velo 127 on channel 1)
            delay(1000);                // Wait for a second
            MIDI.sendNoteOff(42,0,1);   // Stop the note
        }
    }
    
    Schade, dass die copperlan Leute hierfür zu "schlau" waren.
    
    
    
    
     
  9. Max

    Max ||

    Pseudocode ist halt eben nur Pseudocode...

    Und was soll hier überhaupt die Semantik sein? "Verbinde dich mit irgendwas über LDAP, und wenn irgendwas reinkommt sende Note 42"?

    Worauf willst du eigentlich hinaus?

    - Du willst ein Arduino ins CopperLan hängen und nur MIDI/SysEx nutzen? -> nimm ein AL88c oder ein ALeX

    - Du willst einen CopperLan-Editor über SysEx bauen? -> selbst wenn es da eine API gäbe, kann ich dir versprechen, dass sie mindestens (!) so kompliziert wäre wie das CopperLan SDK
     
  10. mink99

    mink99 ..

    Ich weiss jetzt nicht ob du (auch) professionell oder kommerziell programmierst oder programmierst hast.
    Wenn ja, könntest du ja mal (auch gerne in pseudocode, arduino) die gleiche Funktionalität in native chai / lvm zur Verfügung stellen.

    Ich hab das arduino Midi lib "hello world" (MIDI_Basic_IO.ino) nach "copperlan" angepasst.


    Zur Erklärung :
    1.) der lvm ist ein Directory und wird auch so angesprochen. Über den ldap Aufruf read () wird eine copperlan Device gefunden. Dabei kann der Query String nicht nur den Namen (in copperlan Hardware Name oder vom Benutzer gesetzter Name + ggf laufende Nummer) , sondern auch capabilities, Locations, ip-Nummern enthalten, die im copperlan repository enthalten sind.

    Wie der Query String aufgebaut ist, müsste man noch definieren, ebenso ob ein Login notwendig ist etc...

    2.) Der Midi lib Aufruf CREATE_instance erzeugt dann (intern) eine ICHAI Instanz ,

    3.) auf der ein Note-On ausgegeben wird.

    ..............

    Um sysex an eine Device zu schicken, wäre der Query String "finde mir ein Gerät , das an die genannte Device sysex senden kann", und statt Note On / off wäre dann ein sysex Kommando die Message .

    Ich kann so in der Loop den gleichen Code verwenden, egal ob ich im copperlan oder auf eine direkt mit dem arduino verbundene Device schreibe oder lese. Lediglich die init - Routine wäre eine andere. Genauso würde RTP eingebunden werden können.


    ..............

    Pseudocode bedeutet hier, dass die libs nicht zur Verfügung stehen, der Code also weder kompiliert noch (bei angepassten headern) linkt.
     
  11. Max

    Max ||

    Ja, ich bin auch Software-Entwickler :) (beruflich Microsoft / .NET / C#, privat C / C++ und auch viel Arduino)

    Ich hab mich bis jetzt ungefähr so viel mit der API befasst wie du (mal drübergeschaut). Eigentlich zu wenig, um kompetent darüber zu reden, aber mein erster Eindruck war doch, dass sehr viel Funktionalität mit halbwegs überschaubarem Code geboten wird. Man darf nicht vergessen, dass das Ganze auch ein selbst-organisierendes dezentrales System ist und die "Abwärtskompatibilität zu MIDI" nur eines der Features ist. So ist es z.B. auch möglich, Daten in viel höherer Auflösung als MIDI zu schicken - z.B. an ein MS-812. Bis jetzt gibt es halt noch kaum Geräte, aber die Infrastruktur wäre da...

    Über die genannten MIDI-IO Geräte kannst du ohne Probleme auch SysEx versenden - verbinde die serielle Schnittstelle von deinem Arduino mit einem ALeX und dein Board ist ohne eine Zeile Code im CopperLan.

    Und nochmal: die gesamte API über SysEx anzubieten wäre keine gute Idee. Du stellst dir das glaub ich zu leicht vor. Mit einem Befehl "finde mir ein Gerät" ist es halt nicht getan... Du müsstest erstmal rausfinden, welche Devices aktuell im CopperLan sind (und das auch immer neu updaten), dann auslesen welche Ports vorhanden sind. Und wenn du dann noch Verbindungen herstellen willst, brauchst du auch ein relativ komplexes UI. Ich behaupte, da wird's schwer etwas zu bauen, was mit einem PC oder iPad mithalten kann!

    ---------------

    Um mal zum ursprünglichen Thema zurückzukommen: was wirklich der Hit wäre, wäre eine Box mit einem Ethernet-Anschluss und 10 Buttons über die man Presets laden kann. Ich glaub, ich werd da einfach mal bei Alyseum anfragen, ob so was möglich wäre... Für mich wäre es eine große Hilfe, weil es wirklich etwas nervt, wenn man jedesmal den PC / Pad anschalten muss. Und den Stimmen hier im Forum nach ist das ja auch der Grund No. 1 wieso sich manche kein CopperLan zulegen.
     
  12. mink99

    mink99 ..

    Es geht nich darum, die gesamte api anzubieten, sondern nur ein dynamisches Routing einer Device . Das wäre das funktionsgleiche sysex-Interface wie bei einer Amt-8.


    Das was ich hier erwarte, ist ein ldap Interface auf den copperlan Manager. Dieser hat das Directory in einer stets aktuellen version zur Verfügung . Und ohne den laufenden Manager ist das system ja nicht selbstkonfigurierend .
     
  13. Max

    Max ||

    Ok, wäre für mich komplett uninteressant mit nur einem Device...

    Ein LDAP Interface über SysEx/MIDI, alles klar :supi:
     
  14. mink99

    mink99 ..

    Ok, nicht verstanden....


    Der Code diente dazu, zu zeigen, dass die direkte lvm/chai Programmierung unnötig kompliziert ist, und das nicht sein müsste. Das habe ich damit zeigen können.

    Dass ich erwarte, einem 88c direkt sysex über einen Port schicken zu können, war die ursprüngliche Fragestellung . Da die Entwickler hier "nicht vom Fach " waren, hab ich den Vorschlag aufgenommen, dies über die copperlan bordmitteln zu lösen.

    Die Akzeptanz und Verbreitung einer "neuen" Schnittstelle , Hardware und Software , ist nicht abhängig von der technical sweetness, sondern von der Einfachheit und Robustheit der APIs . Wenn die Entwicklungskosten zu hoch sind, setzt sich das neue nicht durch. Und APIs wie chai und lvm sind "zu teuer".

    Eines der Qualitätsmerkmale von solchen APIs und programmierumgebungen ist die Signal - Noise Ratio . Wieviel Code muss ich schreiben, und wieviel Code tut wirklich etwas. Jedes Factory pattern , jede Abstraktion (IMidiMessage) verschlechtert diese. Übersteigt die Ratio das vernünftige Mass, das es braucht, um Code wartbar zu halten, wird es keine breite Akzeptanz geben.
     
  15. Max

    Max ||

    sorry, aber es ist nicht cool, dass du nachträglich deinen Beitrag von "reine Beleidigung" in "(halbwegs) sachliche Argumentation" änderst...

    --- bin raus
     
  16. microbug

    microbug |||||||||

    Nur so als Ergänzung, auch wenn die Diskussion sicher beendet ist: die MOTU MTP-Modelle werden ebenfalls über MIDI Sysex programmiert, wozu es allerdings keine offizielle Doku gibt (wohl aber Reverse Engineering). Da hier die Emagics erwähnt werden: diese haben das MTP nicht nur als Vorbild, sondern können es sogar soweit emulieren, daß die Sysex-Kommandos verstanden werden (und dazu gibt's eine Doku).

    Hier mal die Seite mit dem Reverse Engineering:
    http://www.adrstudio.com/MTPAV-Sysex
     
  17. microbug

    microbug |||||||||

    Und noch eine Ergänzung: Alyseum hat sich mit den Copperlan-Leuten wohl überworfen und somit die entsprechenden Geräte eingestellt. Damit dürfte nicht nur Copperlan endgültig gestorben sein, sondern es auch keinen Grund mehr geben, sich so ein Alyseum-Dingens überhaupt noch anzutun, zumal es bessere Alternativen gibt.
     
  18. verstaerker

    verstaerker ||||||||||

    ich hab mir schnell noch 2 Al-88c dazu gekauft

    ich bin zufrieden. Ein paar Kleinigkeiten könnten besser sein an der Software - aber insgesamt das beste Setup das ich jemals hatte

    Alternativen? MOTU Treiber sind verbuggt ohne Ende und der Support ist eine Beleidigung meiner Intelligenz. Von diesen mio 10 hört man nichts gutes über die Software
     
  19. Klangzaun

    Klangzaun !!!11!111

    Ich würde es mir auch wieder neu beschaffen, wenn es 'mal defekt ist. Ist bisher das beste, was ich in Sachen Midi hier hatte. Die besseren Alternativen würde ich gerne auch kennen - für den Fall der Fälle.
     
  20. Drumfix

    Drumfix ....

    Zu MIO/MIDI+. Zum Ersten kann man die Devices komplett per Sysex konfigurieren.
    Zum Zweiten ist gerade ein Open Source Configtool in Arbeit https://github.com/dehnhardt/mioconfig
    und es gibt einen Ethernet Linuxtreiber https://github.com/Drumfix/mio-rtpdriver

    Zum Dritten überarbeitet iConnectivity zur Zeit komplett die Config Software und schreibt auch eigene Windowstreiber, verlässt sich also nicht mehr auf die Windows eigenen USB Treiber und auch für die Anbindung per Ethernet soll es bald eine bessere (sprich nicht veraltete rtpmidi driver) Lösung geben.
     
  21. Klangzaun

    Klangzaun !!!11!111

    Gibt es noch größere Versionen als die mit 4 Ein-/Ausgängen?
     
  22. verstaerker

    verstaerker ||||||||||

  23. microbug

    microbug |||||||||

    MIO10, aber wenn man nur die Ports braucht und nicht die 16 Kanäle, die pro Port bereitgestellt werden (wird in der DAW nämlich unübersichtlich), ist man mit einer MIDITemp MP88 (8In/out)besser bedient, das ist dann halt eine echte MIDI Patchbay und kein Interface, dafür hat sie Speicher für Routings und Filter, sodaß man zB pro Song sich verschiedene Setups bauen kann, incl Program Changes und kurzen Sysex Sequenzen senden, die man dann entweder am Gerät, per Fußschalter oder gar per Program Change umschalten kann.
    Diese Dinger gibts halt nur noch gebraucht auf dem freien Markt im manchmal fragwürdigen Zustand oder bei mir, dann sind sie aufgearbeitet und können nochmal 20 Jahre halten.

    Wenn es nur um ein bissl mehr als 4 Ports geht, kann man die MIOs auch kaskadieren, zB über den USB Host Port des MIO4 oder MIDI4+. Hab ich schon gemacht und funktioniert gut, hatte ich auch im Thread zu den MIOs beschrieben.
     
  24. Drumfix

    Drumfix ....

    Und man kann, wie bei den AL88Cs, per Ethernet beliebig viele Interfaces parallel betreiben.
    Hängt man dann noch einen Minirechner (bei mir z.B. EEE PC 704) mit ins Netz hat man auch noch eine komfortable Fernbedienung
     
  25. microbug

    microbug |||||||||

    Leider nicht standalone, braucht immer einen Host für RTP MIDI - oder geht das doch Ohne?

    Können wir vielleicht besser im MIO-Thread weiterdiskutieren.
     
  26. verstaerker

    verstaerker ||||||||||

    die AL-88s laufen auch standalone
     
  27. microbug

    microbug |||||||||

    Das hast Du falsch verstanden. Die ALs laufen mit ihrer einen Konfiguration genauso standalone wie die iconnectivity-Dinger, darum gings aber nicht, sondern um RTP MIDI, was bei den iconnectivities nicht standalone zu gehen scheint, sondern immer einen Host benötigt. RTP MIDI ist nur, nachdem was ich bisher probieren konnte, höchstens für Controllerzwecke brauchbar, nicht aber für Notenübertragung - hatten wir schon im Thread zum ICM4+, wo es ein Kollege mal probierte.
     
  28. verstaerker

    verstaerker ||||||||||

    ich gebe zu .. ich hab noch nie was von RTP Midi gehört
     
  29. mink99

    mink99 ..

    Nur mal nachtreten. Nach so langer Zeit. Ayseum hat inzwischen die copperlan serie eingestellt. Was machen jetzt die ganzen fanbots und ldap experten ?:schaf:
     
  30. Max

    Max ||

    Also ich mach jetzt seit vielen Jahren problemlos *Musik* mit meinen 3 Alyseum Boxen und hoffe, sie tun noch lange ihren Dienst :)

    Damals gab es mMn wenig Alternativen zu CopperLan/Alyseum wenn man ein skalierbares System wollte. Den Anwendungsfall "per Sysex konfigurieren" hab ich nie vermisst. Heute würde ich mir wohl eins von diesen MIO's holen, wobei ich da leider von gelegentlichen Problemen gelesen hab...

    Der LDAP-Experte bist doch du dachte ich? Also alles gut, danke der Nachfrage - ich hoffe ebenfalls auch.