Je souhaite créer un nouveau tableau cinétique chorégraphique musical

Bonsoir terwal

J'en étais resté aux signaux audio mis sur le canal libre comme suggéré au post #17 mais pas cantonné à 1 Hz mais en profitant des 7 spectres de l'analyseur.

Bonne soirée
jpbbricole

Bonsoir JPB
J'ai pris le 1Hz comme exemple pour avoir le signal de base copie/collable, mais tu peux faire au plus simple uniquement le nombre d'alternance ou aller plus loin refaire un mini protocole série, puisque le signal carré est ni plus, ni moins qu'un signal binaire.
Avec Audacity, il est très simple de faire des copier/insérer.

Parce que j'ai lu qu'il y avait une dizaine de servo et j'ai aussi précisé "Il faut d'abord connaitre le genre de commandes nécessaires."
Donc on s'assoit et on attend d'en savoir plus, pour savoir s'il y a beaucoup de commandes à coder ou juste 2 ou 3 valeurs différentes.

On peut commencer par ne pas donner d'ordre car je n'ai pas forcément envie de m'assoire.
Après on peut se détendre, c'est juste une question :slight_smile:
Par contre on peut voir les précisions que donnera @nonjef, car effectivement j'avais compris qu'il y avait beaucoup de servos, mais pas forcément beaucoup de commande, voir même aucune commande, mais des top de synchronisation, mais ce n'ai peut être pas le cas.

merci pour vos réflexions! Donc, oui une dizaine de servos qui devraient exécuter des mouvements absolument calibrés sur la musique mais d'une façon totalement créative et libre. En prenant des pics sonores ça ne le ferait pas, c'est trop aléatoire. Voyez dans cette chorégraphie géniale de "Murmuration"comment le chorégraphe attribue des mouvements aux danseurs: https://www.youtube.com/watch?v=OHgUeNoZ72A , en fait on dirait des robots! Ma démarche est identique et à l'inverse, je prends des robots et je cherche à en faire des danseurs vivants!
Dans le style qui s'en rapproche, j'ai aussi fait ces tableaux (avec Arduino) avec une démarche empirique (et trop approximative) consistant à déclencher des mouvements au plus près de l'instant souhaité, avec un chrono en main et bcp d'essais-erreurs: https://www.youtube.com/watch?v=fXTLHAJAdhE&list=PL119D3A8859D14B4B&index=18 https://www.youtube.com/watch?v=rGFosih198k&list=PL119D3A8859D14B4B&index=21 https://www.youtube.com/watch?v=bg13sJAPzqY&list=PL119D3A8859D14B4B&index=22

beaucoup de commandes différentes! parfois les 10 servos synchro, parfois décalés, parfois en plusieurs groupes, parfois avec un solitaire, à des vitesses et des angles de rotatios variables, des saccades, etc.

J'avais songé éventuellement à utiliser les protocoles MIDI, et au lieu de prendre ma musique sur du MP3, je la prendrai à partir d'un logiciel genre Garageband avec un instrument dédié aux mouvements. Mais l'Arduino est-il capable de discriminer les instruments afin de sélectionner celui qui est dédié aux servos?...

La question est surtout as tu besoin d'insérer des commandes pour chaque servos dans ta musique, ou comme c'est une chorégraphie prévus à l'avance, uniquement des top de synchronisation.

Le MIDI, se résume grossiérement à des commandes normés, donc il n'y a pas de discriminiation à faire reelement.
Soit l'Arduino décode la trame midi, soit il ne peut pas la décoder.
A priori beaucoup de projet sur des interfaces MIDI, donc un Arduino peut décoder une trame MIDI, donc tu peux effectivement en faire ce que tu veux en plus d'être capable de faire joueur le son.
Après je ne m'y connais pas beaucoup en midi, mais la restitution du son sera-t-il à la hauteur de tes attentes ?

des top de synchronisations pourraient-ils déclencher des routines du prog Arduino afin de faire exécuter des ordres vers les servomoteurs!?

Bonjour nonjef

Peut-être une approche différente, dans un éditeur de MP3 tu repère tes moments d'événements, tu te fait un tableau des temps.
ce qui donnera, temps en millisecondes, les temps sont "jusqu`à":

Rien 500
tout les servo à 90 1200
servo 2 à 75 servo 6 40 servo 12 0 2000
tout les servo à 70 3000

Dans l'Arduino on crée un langage qui dit:
RI,500|ST,90,1200|S2,75,0|S6,40,0|S12,0,2000|ST70,3000

Les macro commandes sont séparés par | et se terminent par le temps "jusqu'à" d'exécution qui est le temps pris depuis le départ du show.

On parle se servo mais ça peut aussi être un moteur qui donnerai M3,175, 2300|M3,0,0 par exemple. Qui donnerai le moteur 3 tourne à 175 jusqu'au temps 2300.

Pour assurer la synchronisation, le show démarrera sur ordre de l'Arduino

A+
Cordialement
jpbbricole

Oui, c'est l'idée le top 1, déclenche une sequence de mouvement des différents servo-moteur, un top 2 déclenche la même ou une autre séquence, un top 3 encore autre chose, ....
Voire même pour une même séquence, tu pourrais avoir plus top, pour resynchroniser tes servos-moteur, si il est compliqué de maitriser la vitesse des mouvements.

C'est sûrement une bonne approche, moins empirique que la mienne jusqu'alors, mais qui me semble trop contraignante, trop mathématique. Je pense que la proposition de différents tops dans la musique déclenchant des évènements de servos, me donne plus de liberté!
Reste à savoir comment inclure ces tops à la musique et comment les décoder avec l'arduino?
Je viens de regarder un peu les possibilités sur Audacity qui possède une fonction très intéressante de piste marqueur. Avec ça, très facilement je peux définir des positionnement de lettres dans un temps chronologique hyper-précis. La piste marqueur est sauvée sous forme de texte tel que:

|14.093098|15.811768|B|
|20.452179|20.452179|c|
|22.858317|22.858317|a|
|31.709470|35.920213|a|
|39.099753|41.763692|d|
|49.669576|51.302313|e|

la première colonne indique le début de l'événement B, la 2ème colonne la fin de B
Reste à faire "manger" ça à l'Arduino

Si tu as un exemple de fichier son avec ces top à me transmettre, je peux étudier ça.

A+
Cordialement
jpbbricole

pas encore mais je m'y attelle incessamment!

J'ai peut-être lu un peu vite mais de ce que j'ai compris de la doc d'Audacity, les marqueurs ne sont pas dans une voie audio. Mais on peut exporter un fichier texte avec les informations donc on ne peut pas garantir la synchronisation entre le son et les marqueurs en dehors d'Audacity.

Bonsoir fdufnews

C'est peut être possible de se faire une collection de beep de divers fréquences et ou longueurs et de les coller aux endroits nécessaires?

Cordialement
jpbbricole

Je n'utilise pas les marqueurs et je ne vois pas comment cela serait intégré dans une piste audio.
A la limite cela peut être sauvé dans le format propriétaire de Audacity ou un codec contenant des sous-titre.

Cela reste à vérifier que je ne l'ai jamais fait, comme je t'ai t'indiqué une façon de le faire dans un précédent post.
Dans Audicity une fois la stéréo transformé en mono et la seconde piste remis à blanc.
Tu peux via le menu "Generer" insérer différent element dont une tonalité dont tu peux déterminer la fréquence et l'amplitude.
Je peux faire un exemple à @jpbbricole, avec plusieurs top, si il veut tester.
L'idée est qu'avec la générération d'une tonalité à 1Hz et une amplitude de 1 sur quelque amplitude, voir qu'une, une broche numérique de l'Arduino en input, pourra detecter un ou plusiuers HIGH, pour detecter un top de stnchronisation.

Bien que dans mon idée, je ne cherchais pas à devoir detecter des fréquences, mais uniquement les états HIGH ou LOW d'une broche numérique.
Audacity fait cela simplement en ajoutant une tonalité à la fréquence que tu veux.
Tu peux biensûre aussi combiner plusiuers tonalité si tu veux utiliser ton module de plage de fréquence pour avoir un mot de 7bits.
Ou faire du DTMF, si tu peux analyser la fréquence avec une assez bonne précision.

effectivement c'est indépendant de la musique et ça va être compliqué de synchroniser... je cherche d'autres moyens. Il y a des logiciels de video, comme Adobe Première, qui possède aussi des fonctions de marqueurs. J'étudie les possibilités actuellement, je vous tiens au courant!

Le soucis avec ce genre de system, c'est surtout de decoder le fichier, pour le mp3 par exemple, il faut pas mal de ressource CPU, c'est pour ça qu'en générale c'est une carte dédié qui fait ça.
Je ne crois pas que tu as donné la précision dont tu as besoin?
Sinon un fichier texte de soutitrage ne te suffit pas ?
@jpbbricole les cartes DFPlayer ou équivalent qui décode le MP3, peut te donne un retour sur les temps de lectures en temps réel ?