Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Ajouter ce produit à
  • Mon ancien matos
  • Mon matos actuel
  • Mon futur matos
Ableton Live 8
Photos
1/80
Ableton Live 8

Séquenceur généraliste de la marque Ableton appartenant à la série Live 8

Qui utilise Live API

  • 96 réponses
  • 17 participants
  • 16 588 vues
  • 8 followers
Sujet de la discussion Qui utilise Live API
Hello,
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
Afficher le sujet de la discussion
41
par exemple , je veux assigner 2 controleurs au changement de vue arrangement

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.
42
Merci beaucoup pour ce tutoriel, j'étudierai ça après mes exams et la fête de fin d'exam, donc la semaine prochaine.

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! :D: :clin:

http://soundcloud.com/tipsy-sub

http://www.jamendo.com/fr/album/74123

 

 

43
Merci beaucoup pour les details, je vais essayer de voir les intereactions entre les differents fichiers, mais tu m'as vraiment aidé avec ton post!
44
Salut,
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?
La panique, elle montait le long de ma colone vertébrale comme les premières vibrations d'une frénésie d'acide. #anti-bush#anarchi can help
45
Salut,

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
46
Python est bien installé (2.5 sur OSX), c'est déjas ça.
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
La panique, elle montait le long de ma colone vertébrale comme les premières vibrations d'une frénésie d'acide. #anti-bush#anarchi can help
47
Si t'as peur de te bugger Live, installe toi 2 versions (genre 8.0.3 et 8.0.4). 1 que tu utiliseras avec Live API (histoire d'apprendre au début), et une autre pour l'utiliser normalement.
48
Ha ben j'y avais pas pensé, je v tester ça et je vous tient au jus.
Merki.
La panique, elle montait le long de ma colone vertébrale comme les premières vibrations d'une frénésie d'acide. #anti-bush#anarchi can help
49
Comment fait-on pour ouvrir python dans Mac puisqu'il est déjà installer, je ne le trouve pas
50
Je suis un vrai newby mais d'aprés le post de flanger13 tu peut avoir accés à Python depuis "terminal" dans Application/utiliaires, je me suis pas encore vraiment penché sur la question mais
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/
La panique, elle montait le long de ma colone vertébrale comme les premières vibrations d'une frénésie d'acide. #anti-bush#anarchi can help