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 630 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
51
Ok, merci
52

Citation : Comment fait-on pour ouvrir python dans Mac puisqu'il est déjà installer, je ne le trouve pas

applications/(utilitaires ou pas)/macpython/idle.app pour ouvrir l'éditeur python
53
Salut camus2,

Merci, je t'ai envoyé un mail hier, concernant une surface de contrôle que j'ai fabriqué avec 8 faders motorisés, 32 encodeurs rotatif ALPS, 64 boutons et 64 LEDs
Pour les intéressés http://www.ucapps.de

J'arrive à la faire fonctionner en mode Mackie Control dans Live 7.0.16

Les faders motorisés, les boutons et les statuts des LEDs fonctionnent très bien, mais le soucis et au niveau des encodeurs rotatifs en mode Mackie, ils ne répondent pas ???

Si j'assigne un paramètre dans Live en mode MIDI, là ils fonctionnent.

J'ai déjà entendu parlé de L'API mais j'y comprend rien et encore moins l'anglais;
Je suppose qu'il est possible de modifier le mode Mackie control.

Est-il possible d'avoir un coups de main, j'aimerai que mes 32 encodeurs réagissent à tous les périfériques et plugins, ...ect

J'ai 8 colonnes de 4 encodeurs rotatif.
Par défaut j'aimerais que les 4 premiers contrôlent les Send A, B , C et le pan de la piste 1
les 4 suivant contôlent les Send A, B , C et le pan de la piste 2
et ainsi de suite pour les 8 premières pistes.

Merci .
54
Camus, j'ai essayé ton tuto avec les touches Arrangement et session.
j'ai toujours des erreurs dans PhotonX25BankController.
Pour consts ok,Live a créé le fichier consts.pyc

Quand j'appuie les touches de mon contrôleur (104 et 105), dans Live j'ai bien les led midi en au a droit qui clignotent, mais les page arrangement et session ne change pas.
je ne sais pas d'où vient l'erreur.

quand tu dit:

Citation : ATTENTION , python est sensible à l'indentation ( tabulations ) si elles ne sont pas correct , le
script ne fonctionnera pas)


tu veux dire quoi par là ?

Merci.
55

Citation : Merci, je t'ai envoyé un mail hier, concernant une surface de contrôle que j'ai fabriqué avec 8 faders motorisés, 32 encodeurs rotatif ALPS, 64 boutons et 64 LEDs
Pour les intéressés http://www.ucapps.de


ta surface je ne l'ai pas donc difficile de savoir comment faire quoi. mais tout est faisable, si tu en détailles l'implémentation midi ici.

Pour les erreurs fait déja un check module comme décrit plus haut pour savoir s'il y a un problème de syntaxe dans ton code.

il y a une fonction trace pour les logs dans les scripts fournis

pour gérer un paramètre il faut trouver la methode (ou adresse) correspondante dans la doc l'API.

il est bien sur possible de gérer les banks de volume,pan ,send,etc... de 8 en 8 je l'ai fait sur mon mpd32.

ou d'utiliser sa surface pour gérer tout les paramètres d'une piste, en permettant le changement de piste via 2 boutons par exemple.
56
Pour le tuto voici le message d'erreur

There's en error in your programm:
unident does not match any outer indentation level.

Qu'est ce que ça veut dire tout ça ????
57
Yo ,j'ai trouvé l'erreur et ça marche :bravo:

La fenêtre de Live passe bien de session à arrangement
58
Dans Live il faut préciser les encoderMapMode .
voici les différent encoderMapMode:

# - Absolute
# - Absolute14Bit
# - LinearSignedBit
# - LinearSignedBit2
# - LinearTwoCompliment
# - LinearBinaryOffset
# - AccelSignedBit
# - AccelSignedBit2
# - AccelTwoCompliment
# - AccelBinaryOffset

Pour mes encodeurs ALPS l' encoderMapMode est LinearBinaryOffset

Où trouver encoderMapMode dans l'API ?
59
Une partie de l'api est spécifiée ici.

http://www.assembla.com/spaces/live-api/documents/cLla_S1V4r3zamab7jnrAJ/download/LivePyDoc.zip

la classe concernée est MapMode , il faut par contre maitriser la notion de dictionnaires en python



Citation : class MapMode(Boost.Python.enum)



Method resolution order:
MapMode
Boost.Python.enum
__builtin__.int
__builtin__.object

Data and non-method functions defined here:

__doc__ = None

__getstate__ = <built-in function __getstate__>

__slots__ = ()
tuple() -> an empty tuple
tuple(sequence) -> tuple initialized from sequence's items

If the argument is a tuple, the return value is the same object.

absolute = MidiMap.MapMode.absolute

absolute_14_bit = MidiMap.MapMode.absolute_14_bit

relative_binary_offset = MidiMap.MapMode.relative_binary_offset

relative_signed_bit = MidiMap.MapMode.relative_signed_bit

relative_signed_bit2 = MidiMap.MapMode.relative_signed_bit2

relative_smooth_binary_offset = MidiMap.MapMode.relative_smooth_binary_offset

relative_smooth_signed_bit = MidiMap.MapMode.relative_smooth_signed_bit

relative_smooth_signed_bit2 = MidiMap.MapMode.relative_smooth_signed_bit2

relative_smooth_two_compliment = MidiMap.MapMode.relative_smooth_two_compliment

relative_two_compliment = MidiMap.MapMode.relative_two_compliment

values = {0: MidiMap.MapMode.absolute, 1: MidiMap.MapMode.relative_signed_bit, 2: MidiMap.MapMode.relative_binary_offset, 3: MidiMap.MapMode.relative_two_compliment, 4: MidiMap.MapMode.relative_signed_bit2, 5: MidiMap.MapMode.absolute_14_bit, 6: MidiMap.MapMode.relative_smooth_signed_bit, 7: MidiMap.MapMode.relative_smooth_binary_offset, 8: MidiMap.MapMode.relative_smooth_two_compliment, 9: MidiMap.MapMode.relative_smooth_signed_bit2}
dict() -> new empty dictionary.
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs.
dict(seq) -> new dictionary initialized as if via:
d = {}
for k, v in seq:
d[k] = v

60
Camus,

Serais-tu capable de faire un tuto avec un encodeur rotatif qui pilote le PAN de la piste 1, pour essayer
de voir un peut plus claire dans ce charabia.
Merci.