max4live: midi to cv, wie klappts?

Dieses Thema im Forum "Controller & MIDI, CV…" wurde erstellt von sushiluv, 12. Februar 2014.

  1. sushiluv

    sushiluv bin angekommen

    Hallo,

    hat jemand eine ahnung wie ich die midiausgabe eines m4l so umbauen kann, dass die jeweilige information in cv umgewandelt ausgegebn wird?

    im prinzip funktioniert es für mich mit den expert sleepers externals, aber die spreizung einer oktave ist nicht korrekt, vielleicht ein scale problem?

    ich häng mal einen screenshot an, bin für jedwede hilfe echt dankbar!
     

    Anhänge:

  2. atol

    atol Tach

  3. sushiluv

    sushiluv bin angekommen

    danke, aber da komm ich nicht wirklich weiter, ich hab dieses scaling der pitch-daten gemacht, also die zwei num-boxen einmal mit -36 und dann * 10, aber trotzdem stimmt die spreizung nicht :roll:
     
  4. atol

    atol Tach

    Also so wie ich das sehe musst du halt aufpassen das die Werte richtig skaliert in den ES-Objekten ankommen. Die CV-encoder brauchen -2047 bis +2047, die encoder brauchen 0-255. Mittels der scale und clip Objekte sollte das einfach sein.
     
  5. sushiluv

    sushiluv bin angekommen

    Hallo atol,

    danke, da hast du sicher recht. aber wie skaliere ich das dann auf 1v/oktave? also wie funktioniert da die mathematik?
    abgesehen davon, es werben ja mit "calibrated outputs", wieso muss ich es erst recht kalibrieren dann? :)

    danke, falls du es nicht bemerkt hast, ich bin ein m4l anfänger und dankbar für jede hilfe.
     
  6. sushiluv

    sushiluv bin angekommen

    ah, jetzt klappt es endlich.

    Man muss nach dem unpack zwei numboxen, einmal mit -32 und einmal mit *32 anbringen, dann in den esx 8cv und schon stimmt das timing perfekt.

    aber atol, eine frage noch, warum? ich würd das gerne verstehen, denn wenn ich, z.b. CCs skalieren möchte muss ich es wohl anders angehen.

    danke!
     
  7. atol

    atol Tach

    naja, ich kenne wie gesagt diese encoder/decoder Objekte nicht aber dein Pitch Wertebereich aus dem live.step Objekt geht von 0 bis 155. (0 = G-2, 155=F:cool:. Diese Werte müssen halt so skaliert werden (entweder multipliziert, mit scale oder zmap) das die Encoder Objekte das wiederum richtig interpretieren.
    CC Daten haben bekanntermaßen den Wertebereich 0-127 - dieser müsste wiederum skaliert werden...schau Dir mal die Help patches zu zmap und scale an.
     
  8. sushiluv

    sushiluv bin angekommen

    ich versuch mich da rein zu fuchsen, ist aber nicht so einfach :)

    jetzt scheitere ich grad schwer am gate, hab mir diese logik vom beispiel patch des es4 genommen und pitch und velocity funktionieren aber.

    meine idee war, die duration als input für den triger zu nehmen, so wie ich das verstehe, würde dann das gate eben für diesen zeitraum offenbleiben.

    tatsächlich tut sich aber gar nix.

    wär genial, wenn du diesbezüglich noch einen tipp parat hättest, danke!
     

    Anhänge:

  9. atol

    atol Tach

    ist doch in dem patch schon so: wenn solange Velocity > 0 ist, bleibt das Gate offen. Gleichzeitig wird der Trigger betätigt wenn das Gate offen ist...
    Sollte das nicht so sein, ist etwas vor dem noteintoES patch nicht richtig. Tip: Überprüfe Werte immer mit print (ins Message window) oder mit einer message box (rechtes inlet).
     
  10. sushiluv

    sushiluv bin angekommen

    ok, langsam verteh ich, warum es nicht funktionert. live.step hat ja immer velocity werte per step, deswegen hat das gate auch nicht zugemacht. ich hab das jetzt auf duration umgestrickt und es scheint halbwegs zu funktioneren, werde das am abend nochmal testen.

    p.s.: danke auch für den messagebox tipp
     
  11. sushiluv

    sushiluv bin angekommen

    Vielleicht ist das für den anfang auch noch etwas zu komplex.

    hab jetzt mein erstes device gebaut, frei nach makenoise analog memory.

    man kann zur zeit 4 steuerspannungen an drei ausgänge schicken und umschalten.

    kleines erfolgserlebnis :)
     

    Anhänge:

  12. atol

    atol Tach

    Bravo! Weiter so.... :supi:
    Ach ja: Wenn Du die Send und Receive Objekte nutzt, solltest du drei --- verwenden, um zu verhindern das die Objekte "durcheinander kommen".
     

Diese Seite empfehlen