Utilisation de la Fonction Modulo dans un Step Sequencer

Créer une boucle de valeurs pour le contrôle du step sequencer
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre à programmer dans Max For Live
Revoir le teaser Je m'abonne
Transcription


49,00€ Je commande

À partir de
27€ /mois
Je m'abonne à Elephorm

Description Programme Avis


49,00€ Je commande

À partir de
27€ /mois
Je m'abonne à Elephorm

Les objectifs de cette leçon sont les suivants :

Comprendre l'utilisation de la fonction modulo dans la programmation.

Implémenter un step sequencer avec une boucle de valeurs répétitives.

Prévenir les répétitions de valeurs avec l'objet Change.

Découvrez comment utiliser la fonction modulo pour gérer un step sequencer. Défilement de valeurs en boucle facilité!

Dans cette leçon, nous expliquons comment utiliser la fonction modulo pour gérer le défilement des valeurs dans un step sequencer. Nous commençons par une explication de base de la division entière et flottante, et comment la fonction modulo permet d'obtenir le reste de la division. Ce reste est essentiel pour créer une boucle de valeurs qui se répètent après un certain nombre d'étapes.

Ensuite, nous montrons comment ajuster le nombre de steps dans un step sequencer en utilisant une entrée LiveNumBox. En plus de la configuration de l'horloge, nous abordons également la manière d'utiliser LiveGrid pour afficher le bon nombre de colonnes correspondant aux steps définis.

Un point crucial que nous abordons est l'utilisation de l'objet Change afin d'éviter des répétitions non désirées de valeurs, ce qui permet d'éviter les déclenchements répétés des mêmes notes. Cette étape garantit que chaque note est jouée de manière unique et précise, même avec le défilement rapide des ticks.

Voir plus
Questions réponses
Qu'est-ce que la fonction modulo ?
La fonction modulo donne le reste de la division d'un nombre par un autre.
Pourquoi utilise-t-on la fonction Change ?
Change est utilisé pour filtrer les répétitions de valeurs et éviter les déclenchements répétés des mêmes notes.
Comment ajuster le nombre de steps dans un step sequencer ?
On peut utiliser une entrée LiveNumBox pour définir le nombre de steps entre 2 et 64.
Nous allons devoir maintenant faire une boucle de valeurs à partir du flux des ticks. Donc ici, on a le défilement des ticks à une certaine vitesse, mais ces ticks s'incrément tout au long du morceau. Nous, dans notre cas, on a un step sequencer et on voit bien qu'en fonction du nombre de steps, il faudra avoir un défilement de valeur en boucle sur le nombre de steps. Alors comment faire cela ? On va utiliser pour cette opération assez courante quand on fait de la programmation qui est la fonction modulo. L'objet modulo, qu'est-ce qu'il fait ? L'objet modulo, son signe, c'est le pourcentage. Alors qu'est-ce que le modulo ? Le modulo va nous donner le reste d'une division. L'idée, c'est que si on prend une division, on va prendre une division et faire des comparaisons entre une division en nombre entier, une division en nombre flottant et le modulo, ce que fait le modulo. Ici, on va diviser les mêmes valeurs à chaque fois et on va regarder le résultat pour bien comprendre le rôle de cet objet. Donc ici, le résultat, je vais le prendre en nombre entier ici, ensuite je vais prendre une boîte flottante ici, et ensuite là, peu importe, je vais prendre en nombre entier. Ok alors là, la première division fait une division en nombre entier, ça veut dire que si j'ai, donc on va dire par exemple, je vais mettre 5, donc si je fais une division, quand le nombre, là je fais un arrondi, c'est-à-dire qu'ici le résultat, il est donc 1 divisé par 5, alors je vais démarrer à 5 ici, donc 5 divisé par 5, 1, là on est d'accord, ensuite 6 divisé par 5, ici le résultat au milieu est juste, le résultat du milieu donc nous donne la vraie valeur de la division, par contre le premier résultat, c'est simplement l'entier de la division, c'est-à-dire que 6 divisé par 5, l'entier c'est 1, ici le reste, on a 1, pourquoi ? Parce que ce qui nous, pour aller de, donc de 5 fois 1 à 6, on va rajouter 1. Si je continue, 7 c'est divisé par 5, l'entier c'est 1, ce qui nous manque ici, 1 divisé par 5, plus 2, 7, etc. Et à chaque fois que j'aurai un multiple de 5, je vais repasser par 0, bien sûr, puisqu'il n'y aura plus de reste. Alors, donc on voit ici que, donc là c'est l'entier, là c'est le reste, et là c'est le résultat, avec donc la virgule. Bien, voilà, donc ça c'est pour comprendre ce qu'est le reste d'une division, et un peu mieux comprendre pourquoi l'objet modulo, ici, on va l'appeler modulo, nous fait une boucle de valeurs qui va être, donc qui va dépendre ici de la valeur qu'on envoie en entrée froide, là, ça va être, ça va être toujours entre 0 et n-1. Donc ça c'est pratique, dans notre cas, c'est-à-dire que si on met ici une valeur 8, par exemple, qu'on regarde le résultat, et bien on va avoir une boucle entre 0 et 7. Alors, il se trouve que notre step séquenceur, lui, il démarre à 1. Le premier step, c'est pas 0, c'est 1. Bon, bien dans ce cas-là, c'est pas un problème, on va rajouter 1, on va faire un sort d'offset, donc on fait plus 1, et donc on a maintenant nos valeurs entre 1 et 8. Voilà, donc là, on va pouvoir régler le nombre de steps. Alors, là, on a le défilement des steps, mais il faudrait aussi configurer LiveGrid pour avoir le bon nombre de steps. Alors, LiveGrid, si on avait regardé un petit peu, en introduction, les différentes possibilités dans l'aide, on voit que là, si on envoie le message columns suivi d'une valeur, donc ici, on a dans l'aide l'usage de variables, on va pouvoir faire varier le nombre de colonnes. On peut faire un copier-coller éventuellement de ce qu'on a ici, et donc on voit qu'ici, on peut faire varier le nombre de colonnes. Donc ça, ça pourrait être la même commande, c'est-à-dire manipuler ici à la fois la mécanique de l'horloge et en même temps le nombre de colonnes dans notre step séquenceur. Donc on peut prendre ici un LiveNumBox, donc peut-être que le nombre de pas, ça pourrait être minimum 2. Entre 2 et 64 pas, ça va être assez large comme ça. Et donc ça, on va l'utiliser pour déterminer le nombre de steps. Ici, voilà, donc on voit qu'en effet, quand je bouge ici, le nombre de steps ne reste plus maintenant qu'à relier ici le décompte des steps. Juste avant cela, on va d'abord regarder une petite chose qui n'apparaît pas au premier regard ici. Si j'envoie le défilement dans l'objet print, ici, on risque d'avoir une petite surprise. Voilà, donc en fait, ce que ne montre pas la boîte Nour ici, parce que là on a un défilement qui est ici, si on le met à la noire comme ça, donc à la noire. Mais ce qu'on ne voit pas, c'est qu'on a une répétition de valeurs. Pourquoi ? Parce qu'en fait, la division opère ici à chaque tic. En fait, on a les valeurs sur la vitesse des tics, mais qui vont se répéter. Et la seule façon de le voir, c'est d'avoir un historique comme on a dans print. Alors pour éviter ça, parce que ça va nous faire des déclenchements du coup des notes en répétition sur chaque tic, on va passer par un objet qui est absolument indispensable, qui va filtrer les répétitions. Change, Filter, donc filtre les répétitions d'un nom, c'est à dire que tant que la valeur ne change pas, rien ne sortira de Change. Donc ça, ça permettra d'éviter de redéclencher sur chaque tic la même note. Voilà, donc là on est prêt à relier maintenant ici la sortie de Change aux steps, ici.

Programme détaillé de la formation