Qui utilise Live API
- 96 réponses
- 17 participants
- 16 588 vues
- 8 followers
Anonyme
qui utilise Live API et Python ici?
je me suis mis à Python il y a 2 jours pour réaliser une set up perso de mon controleur MPD32 , je cherche à utiliser les control change mais j'ai un peu de mal.
Pour les pads pas de probleme il suffit de modifier le fichier const.py
J'utilise la classe TRACE fournie pour reperer les bugs et autres , est ce que quelqu'un a déja écrit un script perso pour son controleur , en partant du script python pour le MPD16 dispo merci.
Si ça fonctionne , plus besoin d'acheter une APC lol...
Je suis sur live 7 pour le moment.
Merci
Anonyme
session.
je télécharge et installe pyhton
https://www.python.org/ftp/python/2.6.2/python-2.6.2.msi
je télécharge ce fichier :
http://motscousus.com/stuff/2007-09_ALESIS_Photon_X25_Ableton_LIVE_Scripts/Photon_X25_Mixer.zip
je dézippe et renomme le dossier custom
je place le dossier dans
C:/Program Files/Ableton/Live 8.0.1/Resources/MIDI/Remote Scripts
clique droit sur const.py dans le dossier custom "edit with idle"
ajoutons une variable dans const.py
Citation : SWAP_ARRANGEMENT = 104
SWAP_SESSION = 105
104 et 105 sont des numéros de controleur
déclarons une midimap, qui est une liste d'assignation de controleur
Citation : MYMIDIMAP_CC = [SWAP_ARRANGEMENT,SWAP_SESSION]
déclarons les canaux midi utilisés dans une liste
Citation : MYMIDIMAP_CHANNELS =[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
il vaut mieux séparer CC et notes dans 2 listes
enregistrer et dans l'idle cliquer sur menu RUN->CHECK MODULE pour verifier si il n'y a pas d'erreurs dans le script. Si rien ne se passe c'est bon, sinon lire le message d'erreur pour savoir ce qui ne va pas.
maintenant il s'agit de savoir comment acceder à la fonction désirée dans live , c'est ça le principe d'une API.
Chaque fonction a une sorte d'adresse à laquelle il faut acceder
Selon Assembla
http://www.assembla.com/wiki/show/live-api/How_to_Manipulate_Views
pour manipuler les vues on a 2 méthodes ou fonctions :
self.application().view.show_view("Session" ) #sets view to session
self.application().view.show_view("Arranger" ) #sets view to arranger
il faut donc relier les controleurs déclarés dans const.py à ces fonctions
premièrement il nous faut déclarer la midimap qu'on a crée (MYMIDIMAP_CC)
on peut prendre le fichier PhotonX25BankController.py
ATTENTION , python est sensible à l'indentation ( tabulations ) si elles ne sont pas correct , le script ne fonctionnera pas)
chercher la fonction build_midi_map dans PhotonX25BankController.py
regarder le code suivant , on va le reproduire avec le nom des maps crées précedemment
Citation : for channel in BTN_CHANNELS:
for cc_no in BANK_BTNS:
forward_cc(channel, cc_no)
devient donc ( à ajouter sous le code précedant en respectant les tabulations précedantes
!!!! )
Citation : for channel in MYMIDIMAP_CHANNELS:
for cc_no in MYMIDIMAP_CC:
forward_cc(channel, cc_no)
on va maintenant relier les CC déclarés aux fonctions que l'on veut modifier
cherche la fonction ou méthode receive_midi_cc dans PhotonX25BankController.py
on va comme tout à l'heure reproduire le code déja écrit tout en l'adaptant à ce qu'on veut
faire :
voici le code à trouver :
Citation : if(channel in BTN_CHANNELS and cc_no in BANK_BTNS):
if(cc_no == BANK_NEXT and cc_value == BTN_ON):
self.select_right_bank()
elif(cc_no == BANK_PREV and cc_value == BTN_ON):
self.select_left_bank()
on va ajouter notre propre code , attention aux tabulations encore une fois , sinon ça ne
marche pas.
Citation : if(channel in MYMIDIMAP_CHANNELS and cc_no in MYMIDIMAP_CC):
if(cc_no == SWAP_ARRANGEMENT ):
self.view_arrangement()
elif(cc_no == SWAP_SESSION ):
self.view_session()
remarquez j'ai enlevé une condition , cc_value == BTN_ON , qui correspond au fait que le
controleur envoie une valeur de 127 ou non.
BTN_ON est déclaré dans const.py
ok , il nous reste maintenant à créer 2 fonctions view_arrangement() et view_session() qui vont appeler l'API de live. juste avant la fonction disconnect en bas de page, inserer ce code en respectant encore une fois les tabulations comme dans le reste du code sinon ça ne
marchera pas !!!
Citation : def view_arrangement(self):
self.application().view.show_view("Arranger" )
def view_session(self):
self.application().view.show_view("Session" )
enregistrer et faire un CHECK MODULE comme pour const.py
si pas d'erreur ouvrir live/
A l'ouverture de live si les fichiers py sont tous compilés en pyc ( des fichiers pyc sont crées pour chaque py ) , cela veut dire pas d'erreur de syntaxe ( mais peut être d'autres erreurs de code !!!)
dans option preference midi choisir "custom" dans la liste des surfaces de controle ( c'est comme ça qu'on a nommé le dossier qui contient les fichiers py et placé dans le dossier remote script).
choisir les ports midi in et out correspondants.
déja si votre midimap est correctement implémentée , vous devez voir que live réagit ( carrés en haut à droite à l'appui des controleur 104 et 105).
si tout va bien , live change sa vue en session à l'appui du CC 105 et en arrangement à l'appui du CC 104.
maintenant comment savoir quel fonction commande quoi dans live API? ableton n'a pas divulgué l'API complete donc seul des API incomplètes sont dispo , ici par exemple :
http://www.assembla.com/spaces/live-api/documents/cLla_S1V4r3zamab7jnrAJ/download/LivePyDoc.zip
il n'existe pas de doc de l'api en français à priori.
dragus
J'ai pas mal fouillé sur le net et j'ai trouvé cette vidéo ou on voit un peu jusqu'ou on peut programmer un mpd32. ça peut peut être donner des idées à quelqu'un qui gère déjà pas mal.
cette config est en vente sur le site de native kontrol. Personellement, j'aimerais bien construire quelque chose qui ne limiterait pas l'utilisation des pads (ou il pourrait servir comme pour l'apc). donc il faut trouver l'api qui permet cela. en attendant, je vais déjà essayer de faire quelque chose de simple uniquement pour le live (je compose avec un autre soft).
encore merci pour avoir pris du temps pour nous expliquer tout ça!
http://soundcloud.com/tipsy-sub
http://www.jamendo.com/fr/album/74123
Silicon Machine Extended
terrapeutr
Je viens de lire le forum, très intéressant.
J'aurais une question, j'ai DL liveapi a cette adresse http://code.google.com/p/liveapi/
dans le fichier text INSTALL.TXT il est écrit
"If you are up to date with your Ableton version, it will probably be:
C:\Program Files\Ableton\Live 6.0.7\Resources\MIDI Remote\Scripts"
Je suppose donc que cela marche seulement sous windows, y as t il une version pour MAC?
flanger13
SI tu veux aller au chemin équivalent sous Mac
click droit sur ton Live.app puis Show Package Contents
Ensuite App-Ressources et enfin MIDI Remote scripts
N.B.: Python est déjà installé sous Mac (vérifie qd même dans un terminal)
Good Luck
terrapeutr
Pour ce qui est de liveapi, si je comprend bien il n'y as qu'une seul version (pour mac et PC)?
Car c'est Live qui se charge de l'exécuter?
En cherchant sur internet j'ai trouvé à cette adresse :
http://post.monome.org/comments.php?DiscussionID=4607
une version de LiveOSC live 8 only.
En ouvrant le fichier avec l'éditeur de texte, je trouve des différences avec l'autre.
Au début du script il n'y as pas les même imports????
Si quelqu'un qui connaît peut regarder, moi je n'y connaît que dalle et j'ai un peu peur de me bugger live.
Ouai je sais je suis frileux.........
THX
flanger13
terrapeutr
Merki.
RG4
terrapeutr
si tu tape "python" dans "terminal" il te donne les commande pour avoir accés à l'aide ect...
Je suppose donc que tu dois écrire t ligne de code là.
A vérifier.
t'as un tutorial à cette adresse.
https://www.python.org/doc/tut/
- < Liste des sujets
- Charte