Ableton Live8 + (PureData/Processing/?) + APC40

Vše co se týka MIDI (mimo keyboardů)
Odpovědět
fkho
Příspěvky: 25
Registrován: 12 lis 2006 16:49

Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od fkho » 12 dub 2010 19:16

Cavte,

snazim sa trosku upgradnut apc aby sa dalo sucasne pouzit v standardnom mode scrollovania+spustania klipov a zaroven ako step sequencer. Cely koncept mam premysleny a step sekvencer v podstate poskladany v abletone, problem ale nastava s prekladom MIDI.

Ako si to predtavujem:

Stlacim button na APC (prepinac medzi normanlnym modom a mojim sekvencerom), cim poviem medzivrstve medzi nim a Abletonom, ze kazdy button z matice ma napr. posunut o 8 kanalov vyssie (kedze jednotlive stlpce tlacidiel su odosielane v kanaloch 1-8, pripocitanim 8 kanalov dostanem najjednoduchsiu novu sadu tlacidiel). To je vlastne cele a po dalsom stlaceni sa to prepne do povodneho modu.

Moje nefunkcne riesenie:

Mam medzi Ableton a APC strceny Processing a MIDI Yoke. V Proceesingu odchytavam z APC MIDI IN vsetky spravy a automaticky ich preposielam na MIDI Yoke OUT #2 a vsetky spravy z MIDI Yoke IN #1 preposielam na APC MIDI OUT (svetielka). V Abletone mam nastaveny ako control surface APC40, ako jeho vstupny kanal mam MIDI Yoke IN #2 a vystupny MIDI Yoke OUT #1. Toto samotne by malo iba premostit komunikaciu medzi Live a APC (hlavne tie ich sysexove handshaky aby sedeli), no z nejakeho dovodu mi to fungovalo asi 10 min a teraz ani bohovi. Pri starte Abletonu zisti, ze ma pripojene apc a vykresli cerveny ramik okolo 5 riadkov (scrollovaci pohlad) ale nereaguje dalej na nic...

Skusal som aj Bome's MIDI Translator, ale ten moze mat len 1 vstup / 1 vystup, co je dost naprd na obojsmernu komunikaciu. Puredata som nejak presvedcil na multi MIDI i/o ale vobec nic som z neho nedostal, resp. mi to hadzalo nejake divne errory ze nie je dost pamate.

Prosim o radu, akokolvek je mozne realizovat to co chcem, ak ste sa s niecim podobnym stretli... Ako idealny pripad sa mi zda ten Processing, akurat nechapem preco to nechce komunikovat :(

//EDIT: este som zabudol napisat, ze vlastne do Abletonu normalne prichadzaju noty aj CC cez tento moj "filter". Na druhej strane mi proces Live vzdy po vypnuti zostava visiet na pozadi a zere 50%CPU... Bude v tom nejaka kuleha skryta urcite...

//EDIT2: po zufalom skusani zapinania a vypinania to zrazu zacalo fungovat v smere apc > ableton...bo dalsom nahodnom vypinani zapinani to zacalo fungovat kompletne. Zacinam mat pocit ze chyba je bud v Processingovej kniznici RWMidi alebo virualnych kabloch MIDI Yoke (bezim na Win7). Vie niekto o lepsich ekvivalentoch?



Este zdrojak toho nefunkcneho mala co mam:

Kód: Vybrat vše

import rwmidi.*;

//vstup z apc
MidiInput apcIn = null;

//vstup z abletonu
MidiInput abletonIn = null;

//kam posielam spravy do apc
MidiOutput apcOut = null;

//kam posielam spravy abletonu
MidiOutput abletonOut = null;


//zistenie vstupov / vystupov
void setup() {
  
  MidiInputDevice[] ins = RWMidi.getInputDevices();
  for(int i=0; i<ins.length; i++) {
    if(ins[i].toString().indexOf("APC40") >= 0) {
      apcIn = ins[i].createInput();
      for(int c=0; c<16; c++) {
        apcIn.plug(new APCInputCallback(c), c);
      }
      println("APC In: " + ins[i].toString());
    }
   
    if(ins[i].toString().indexOf("Yoke") >= 0 && ins[i].toString().indexOf("1") >= 0) {
      abletonIn = ins[i].createInput();
      for(int c=0; c<16; c++) {
        abletonIn.plug(new AbletonInputCallback(c), c);
      }
      println("Live In: " + ins[i].toString());
    }
   
  }
  
  MidiOutputDevice[] outs = RWMidi.getOutputDevices();
  for(int i=0; i<outs.length; i++) {
    if(outs[i].toString().indexOf("APC40") >= 0) {
      apcOut = outs[i].createOutput();
      println("APC Out: " + outs[i].toString());
    }
    
    if(outs[i].toString().indexOf("Yoke") >= 0 && outs[i].toString().indexOf("2") >= 0) {
      abletonOut = outs[i].createOutput();
      println("Live Out: " + outs[i].toString());
    }
  }
  
}


//nic :)
void draw() {
  
}


// pocuvam vstup z apc a posielam ho do abletonu
public class APCInputCallback {
  int channel = 0;
  
  public APCInputCallback(int channel) {
    this.channel = channel;
  }
  
  public void noteOnReceived(Note n) {
    println("Channel: " + channel + " " + n);
    abletonOut.sendNoteOn(channel, n.getPitch(), n.getVelocity());
  }
  
  public void noteOffReceived(Note n) {
    println("Channel: " + channel + " " + n);
    abletonOut.sendNoteOff(channel, n.getPitch(), n.getVelocity());
  }
  
  public void controllerChangeReceived(Controller c) {
    println("Channel: " + channel + " " + c);
    abletonOut.sendController(channel, c.getCC(), c.getValue());
  }
  
  public void programChangeReceived(ProgramChange p) {
    println(p);
    abletonOut.sendProgramChange(p.getNumber());
  }
  
  public void sysexReceived(SysexMessage s) {
    println(s);
    abletonOut.sendSysex(s.getMessage());
  }
  
}


// pocuvam vstup a abletonu a posielam ho do apc
public class AbletonInputCallback {
  int channel = 0;
  
  public AbletonInputCallback(int channel) {
    this.channel = channel;
  }
  
  public void noteOnReceived(Note n) {
    println("Channel: " + channel + " " + n);
    apcOut.sendNoteOn(channel, n.getPitch(), n.getVelocity());
  }
  
  public void noteOffReceived(Note n) {
    println("Channel: " + channel + " " + n);
    apcOut.sendNoteOff(channel, n.getPitch(), n.getVelocity());
  }
  
  public void controllerChangeReceived(Controller c) {
    println("Channel: " + channel + " " + c);
    apcOut.sendController(channel, c.getCC(), c.getValue());
  }
  
  public void programChangeReceived(ProgramChange p) {
    println(p);
    apcOut.sendProgramChange(p.getNumber());
  }
  
  public void sysexReceived(SysexMessage s) {
    println(s);
    apcOut.sendSysex(s.getMessage());
  }
}

f'kho: // Obe Uši Ľavé // http://soundcloud.com/obe-usi-lave

monoque
Příspěvky: 598
Registrován: 04 lis 2009 10:46

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od monoque » 12 dub 2010 22:06

Cau,
chces teda zkombinovat instat mapovani + filtrovani zkrz PD..prvne si myslim, ze na win muze byt konflikt midi zarizeni, kdy je pouzivaji dve aplikace. Pokud muzes uploadni nekde svuj PD patch...nemam APC k dispozici,ale myslim, ze by to mohlo fungovat pri uplnem odfiltrovani APC z krz PD...otazka je jak dobre bude fungovat intreakce s Ledkami v APC. LED-ky v kontrolerech jsou spinany pres sysex a PD modifikovat sysex neumi, takze by se to muselo resit notama a asi s ruznou velocity(3barevne led)...zkusil by jednu vec, jestli bez problemu funguje instant mapovani, kdyz kompletne odfiltrujes APC....Tzn. V PD spoj objekty midiin a midiout(levy i/o) a v prefenecich PD nastav IN APC a OUT Yoke 1...v Abletonu nastav track+remote u Yoke in a ACP out, stejne tak v control surface vyber APC a jako in Yoke/out APC.....pokud bude fungovat instat mapping bez probemu mohlo by to fungovat, kdyby jsi treba vyslanu notou z apc rozpojil midiin/midiout a zaroven spojil midiin s treba midiparse....pak by jsi mohl veskery vstup premapovat libovolne...netusim jestli to bude fungovat, pac jak rikam APC nepouzivam,ale zkusil bych neco podobneho....

fkho
Příspěvky: 25
Registrován: 12 lis 2006 16:49

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od fkho » 12 dub 2010 22:31

monoque píše:prvne si myslim, ze na win muze byt konflikt midi zarizeni, kdy je pouzivaji dve aplikace.
V podstate nie, prave preto tam je ten Yoke... len filtrovacia aplikacia pouziva priamo porty APC a tie Yoke porty, ktore pouziva ako vstupne pouziva Ableton ako vystupne a naopak, takze ziadny port nepotrebuje byt otvoreny 2x.
monoque píše:LED-ky v kontrolerech jsou spinany pres sysex a PD modifikovat sysex neumi
Tie ledky su spinane poslanim noty, resp CC do APC, sysex pouzivaju iba na pociatocny handshake, aby zistili aky soft s akym controllerom komunikuje. Takze sysex spravy potrebujem vzdy predavat bez modifikacie.
monoque píše:akze by se to muselo resit notama a asi s ruznou velocity(3barevne led)
ano, takto to funguje, ale pokial viem, maju len 2 farby (oranzova/zelena)
monoque píše:zkusil by jednu vec, jestli bez problemu funguje instant mapovani, kdyz kompletne odfiltrujes APC
presne o to som sa snazil teraz v Processingu, ale na pocudovanie to fungovalo po nahodnom restartovani a vypinani/zapinani midi yoke portov :mrgreen:
monoque píše:Tzn. V PD spoj objekty midiin a midiout(levy i/o) a v prefenecich PD nastav IN APC a OUT Yoke 1...v Abletonu nastav track+remote u Yoke in a ACP out, stejne tak v control surface vyber APC a jako in Yoke/out APC.....pokud bude fungovat instat mapping bez probemu mohlo by to fungovat, kdyby jsi treba vyslanu notou z apc rozpojil midiin/midiout a zaroven spojil midiin s treba midiparse....pak by jsi mohl veskery vstup premapovat libovolne...netusim jestli to bude fungovat, pac jak rikam APC nepouzivam,ale zkusil bych neco podobneho....
Diky, presne tymto smerom som potreboval nakopnut. Inac pochopil som spravne ze ked v pd chcem pouzit viac midi vstupov/vystupov sucasne, pouzivam cisla kanalov +16 ?
f'kho: // Obe Uši Ľavé // http://soundcloud.com/obe-usi-lave

monoque
Příspěvky: 598
Registrován: 04 lis 2009 10:46

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od monoque » 13 dub 2010 00:18

V podstate nie, prave preto tam je ten Yoke... len filtrovacia aplikacia pouziva priamo porty APC a tie Yoke porty, ktore pouziva ako vstupne pouziva Ableton ako vystupne a naopak, takze ziadny port nepotrebuje byt otvoreny 2x.
Sry, spatne sem to pochopil....
Inac pochopil som spravne ze ked v pd chcem pouzit viac midi vstupov/vystupov sucasne, pouzivam cisla kanalov +16 ?
Yoke Midi1 je 1-16, Yoke Midi2 je 1-16,ale jiny virtualni port, nebo taky 0-15, 16-32..kdyz treba menis plynule midi kanal int 1-32 atd...jeden projekt mam premapovany tak, ze trigerovani scen je stejnou notou na jinem midi kanale...bylo to jednodussi nez premapovavat vsechny prijimane "nn".....nad mch 16 sem to uz musel synchonizovat pres dalsi Yoke midi2

ano, takto to funguje, ale pokial viem, maju len 2 farby (oranzova/zelena)
myslim, ze tam je jeste cervenena pri record[/quote]

fkho
Příspěvky: 25
Registrován: 12 lis 2006 16:49

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od fkho » 13 dub 2010 03:09

Zapojil som midiin > midiout, a sysexin > number(s)
damned

error: midiin: windows: not supported
error: sysexin: windows: not supported

Warning: midi input is dangerous in Microsoft Windows\; see Pd manual)
...

Midi input is not dangerous, it actualy does not work :cry:

Toto je ovsem nemile, kedze nemam vobec ako posielat sysex spravy... teda nativne pouzitie APC by neslo

notein>noteout inac funguje 100%, ctlin>ctlout obcas pri zmene controlleru sa vracia na povodnu poziciu... to by sa dalo prezit, otazkou zostava, ako zabezpecit tok sysex sprav medzi kanalmi...
f'kho: // Obe Uši Ľavé // http://soundcloud.com/obe-usi-lave

monoque
Příspěvky: 598
Registrován: 04 lis 2009 10:46

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od monoque » 13 dub 2010 09:46

nj sysexin ten na win nejde..,tak v tom pripade doporucuji max/msp i v trial verzi(30dni) lze udelat spoustu uzitecneho, po 30dnech lze uzivat runtime..treba prave zminny prepinac.......vstup max(APC) a dva vystupy z max(yoke1 a 2) mezi kteryma se bude prepinat, v PD pak bude vstup yoke2 a vystup yoke3(na yoke1 bude APC instant mapp)..v abletonu pak track a remote yoke1,2,3....je to sice trochu neprakticke,ale proc ne...PD neumi sysex, sync, rewire atp...tak treba pro synchronizaci PD patche(treba sequenceru) s DAW nic jineho nepomuze, nez pres maxe vyfiltrovat transportni informace prijimane z DAW a trigerovat PD a audio posilat pres virtualni audio porty zpet do DAW...fungujemi to dodnes(ikdyz ne idealne)..pro ten midi in/out prepinac by to fungovat mohlo bez problemu......

fkho
Příspěvky: 25
Registrován: 12 lis 2006 16:49

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od fkho » 13 dub 2010 09:52

fuuu no ked to citam, zacinam mat chut trochu si oprasit c++

http://www.music.mcgill.ca/~gary/rtmidi

posiela a prijma to raw integery takze asi aj midi budem musiet trosku oprasit, ale myslim ze by som to mohol dat dokopy rychlejsie a s lepsim vysledkom ako max+pd :?
f'kho: // Obe Uši Ľavé // http://soundcloud.com/obe-usi-lave

monoque
Příspěvky: 598
Registrován: 04 lis 2009 10:46

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od monoque » 13 dub 2010 09:54

fkho píše:fuuu no ked to citam, zacinam mat chut trochu si oprasit c++

http://www.music.mcgill.ca/~gary/rtmidi

posiela a prijma to raw integery takze asi aj midi budem musiet trosku oprasit, ale myslim ze by som to mohol dat dokopy rychlejsie a s lepsim vysledkom ako max+pd :?
Ja presel na max4live a je to bez problemu...s m4l jdou tyhle veci resit rychleji a efektivneji..U PD se musi spoustu veci obchazet, neco je jen extra pro linux(treba ten sysexin,midiin) atp...MAX/MSP,MAX4Live je pro tyhle ucely idealni a covek si s tim muze delat co se mu zamane...

fkho
Příspěvky: 25
Registrován: 12 lis 2006 16:49

Re: Ableton Live8 + (PureData/Processing/?) + APC40

Příspěvek od fkho » 13 dub 2010 17:03

njn, na max4live momentalne nemam a asi ani chvilu mat nebudem... ved aj ten step sequencer v nom mohol byt jednoduchsie zmontovany ako z nativnych Live efektov a instrumentov :(

vecer sa pustim do toho rtMidi, ak sa podari nieco zlepit, pacnem zdrojak
f'kho: // Obe Uši Ľavé // http://soundcloud.com/obe-usi-lave

Odpovědět