Qui utilise Live API
- 96 réponses
- 17 participants
- 17 059 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
dragus
ça c'est super cool, ça pourrait permettre un contrôle super intuitif sans me ruiner pour un apc (de toute façon je n'ai pas les moyens)
Est ce que tu as des liens pour apprendre à programmer (je veux bien essayer mais je commence vraiment à 0). je me débrouille en anglais mais je sais pas si je peux gérer le vocabulaire de programmation.
moi je voyais par exemple la banque A qui contrôle 4 scènes des pistes 1 à 4, la banque B qui controle 4 scènes des pistes 5 à 8 par exemple.
Tu peux me contacter par MP pour les liens et si t'a des tutos sous la main...
merci
http://soundcloud.com/tipsy-sub
http://www.jamendo.com/fr/album/74123
Silicon Machine Extended
Anonyme
Anonyme
Max for live c'est pour développer des plugins audios ou midi interne à live , l'api python gère la communication entre live et des applications et protocoles externes
Cyclyk
Citation : En fait max for live n'a rien à voir en terme de fonctionnalités avec l'api python de live.
Max for live c'est pour développer des plugins audios ou midi interne à live , l'api python gère la communication entre live et des applications et protocoles externes
ben M4L comme tu le dis va entres autres permettre de créer des plugins midi, donc dans un sens aider à interragir avec tes controleurs.
Non surtout M4L va normalement enfin permettre d'utiliser la norme OSC (ok peu de contrôleur l'utilise pour le moment) dans Live et j'attend ça avec impatience.
J'ai testé LiveAPI avec Live et le Lemur, amusant mais pas toujours stable (bug incompréhensible) pour le moment.
Anonyme
Citation : ben M4L comme tu le dis va entres autres permettre de créer des plugins midi, donc dans un sens aider à interragir avec tes controleurs.
Non surtout M4L va normalement enfin permettre d'utiliser la norme OSC (ok peu de contrôleur l'utilise pour le moment) dans Live et j'attend ça avec impatience.
J'ai testé LiveAPI avec Live et le Lemur, amusant mais pas toujours stable (bug incompréhensible) pour le moment.
pour ce qui est des bugs, si ton script est buggé, c'est normal , à toi d'écrire un script sans bugs. Mais python fonctionne très bien chez moi et tout les scripts remote ainsi que celui de l'APC sont écrits en python.
Cyclyk
Citation : non ça n'a rien à voir, et live va gerer OSC nativement sans avoir besoin de MAX et MAX4Live.
Source? Jusqu'à preuve du contraire l'introduction de l'OSC se fera par le biais de M4L.
Citation : pour ce qui est des bugs, si ton script est buggé, c'est normal , à toi d'écrire un script sans bugs. Mais python fonctionne très bien chez moi et tout les scripts remote ainsi que celui de l'APC sont écrits en python.
...
je sais très bien que le python fonctionne très bien puisque effectivement la plupart l'utilise je te dis juste que le script que l'on utilise (pas le mien en particulier, d'autres savent programmer 100 fois mieux que moi) est sympa mais parfois bug de façon étrange, c'est tout (note: le passage sous Live 8 n'a pas arrangé les choses d'ailleurs). Et c'est pas juste moi dans mon coin qui le constate ok?
Pour le script APC il nous tarde pas mal de voir ce qu'il se passe derrière d'ailleurs...
dragus
Citation : Pour le script APC il nous tarde pas mal de voir ce qu'il se passe derrière d'ailleurs...
Donc si je comprends bien, il faut attendre de savoir cela pour écrire le même pour un mpd32 (par exemple).
a part ça, votre débat c'est comme si je vous disais vbghinjlkgbtùrjziù*$hb!^nfzemoiughjreim uibjgmre iojhgtmzea jgomirea5985 gragrea...
mais ça a l'air interessant quand même. en tout cas, si c'est possible, j'aimerais bien que quelqu'un poste des liens pour moi et tout ceux que ça interesse (j'ai utilisé mon ami google mais rien trouvé de spécial ou alors je me perds vite).
http://soundcloud.com/tipsy-sub
http://www.jamendo.com/fr/album/74123
Xno
bon jveux vraiment pas faire de jaloux, mais j'ai l'APC, et pour l'instant je trouve l'utilisation assez limité, j'attend M4L pour le configurer
est ce que je peux aussi modifier le comportement de l'APC via script Python ?
j'ai vus des vidéos sur le net ou le gars utilisait la rangée de boutons "stop clips" comme un indiquateur de mesure, d'aprés toi ya moyen de faire ce genre de truc ?
dragus
A quand les néons???
Citation : bon jveux vraiment pas faire de jaloux, mais j'ai l'APC
même pas jaloux
Désolé j'ai fait baissé le niveau du topic d'un niveau..
http://soundcloud.com/tipsy-sub
http://www.jamendo.com/fr/album/74123
Cyclyk
https://www.youtube.com/watch?v=D4YIGfhbCtw
le gars te montre que déjà, sans entrer dans le langage python, on peut commencer à customizer son APC. Après tout dépend de ce que tu veux faire of course!!
dragus
0. Place dumpObj.py in your LiveTelnet directory
1. Telnet into LiveTelnet, and in the CLI type 'import dumpObj'
2. Then you can dump an object into XML by typing 'dumpObj.dumpXML(OBJECT, "C:\path\to\save.xml")'
Ou se trouve le LiveTelnet directory?
Et une fois que j'ai réalisé tout ça, comment je fais pour essayer de programmer mon controlleur avec des fonctions qui n'existe pas dans live (notamment celle dont j'ai parlé précédemment).
Je suis aussi à la recherche de tuto pour comprendre ce qu'il est possible de réaliser et comment le réaliser. en français de préférence mais si ils n'existent pas je ne suis pas complètement anglophobe.
merci
http://soundcloud.com/tipsy-sub
http://www.jamendo.com/fr/album/74123
Cyclyk
http://www.assembla.com/wiki/show/live-api/cD0bua8Dqr3ixOabIlDkbG
Anonyme
http://motscousus.com/stuff/2007-09_ALESIS_Photon_X25_Ableton_LIVE_Scripts/#config
tu dezippes, et tu places les fichiers *.py dans le répertoire des scripts remote script de live(tu crées un repertoire "custom" par exemple)
ya un fichier qui s'appelle const.py , la tu peux commencer par changer les numéros de notes et CC préconfigurés
quand tu vas ouvrir live , live va compiler les fichiers py en pyc
il faut ouvrir les points py avec l'IDLE python , en téléchargeant python pour windows
python n'est pas très compliqué comme language, un bouquin gratuit pour les 6e 5e (niveau collège donc) en français traine sur le net à ce propos ( google taper apprendre python)
maintenant en gros ça fonctionne de cette manière.
le fichier const.py regroupe les assignations de CC et notes
tu as après d'autres fichiers qui sont des classes et appellent le fichier const.py
chaque action dans live correspond à une fonction
si tu modifies les autres fichiers.
tu dois d'abord déclarer chaque action dans la fonction buildmidimap
puis déclarer quel control appelle quel action dans la fonction receivemidicc ou la fonction receivemidinote
enfin tu dois écrire une fonction qui va réaliser concrètement l'action demandée.
mais il est possible de s'en sortir en éditant uniquement le fichier const.py
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