Outils pour utilisateurs

Outils du site


issue124:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue124:python [2017/08/29 08:11] d52frissue124:python [2017/08/30 11:42] (Version actuelle) auntiee
Ligne 3: Ligne 3:
 Michael’s project includes a case, amplifier and speaker, but I’m not going to deal with those, since this is a discussion on using the RPi.  I’ll leave those items to you to figure out.  I’m using the HDMI audio out and it works just fine, with the exception of being tethered to the monitor by the HDMI cable.** Michael’s project includes a case, amplifier and speaker, but I’m not going to deal with those, since this is a discussion on using the RPi.  I’ll leave those items to you to figure out.  I’m using the HDMI audio out and it works just fine, with the exception of being tethered to the monitor by the HDMI cable.**
  
-Le mois dernier, je vous ai donné des informations de base sur la bibliothèque GPIOZERO en préparation du programme de boîte à musique qui utilise le RPi, le MCP3008 du mois dernier, trois potentiomètres et un certain nombre d'interrupteurs pour faire un instrument de musique simple. Le cœur du projet est le programme Fluidsynth. Michaël Horne a été très aimable de me laisser parler de son projet. Le projet original peut être trouvé à http://www.recantha.co.uk/blog/?p=14818 et son code est sur https://github.com/recantha/musicbox.+Le mois dernier, je vous ai donné des informations de base sur la bibliothèque GPIOZERO en préparation du programme de boîte à musique qui utilise le RPi, le MCP3008 du mois dernier, trois potentiomètres et un certain nombre d'interrupteurs pour faire un instrument de musique simple. Le cœur du projet est le programme Fluidsynth. Michaël Horne a eu la grande amabilité de me laisser parler de son projet. Le projet original peut être trouvé à http://www.recantha.co.uk/blog/?p=14818 et son code est sur https://github.com/recantha/musicbox.
  
-Le projet de Michaël comprend un boîtier, un amplificateur et un haut-parleur, mais je ne m'en suis pas préoccupé, car il s'agit d'un présentation du RPi. Je vous laisserai traiter ces sujets. J'utilise la sortie audio HDMI et tout marche bien, sauf qu'elle est attachée à l'écran par le câble HDMI.+Le projet de Michaël comprend un boîtier, un amplificateur et un haut-parleur, mais je ne m'en suis pas préoccupé, car il s'agit ici de l'utilisation du RPi. Je vous laisserai ces sujets-là. J'utilise la sortie audio HDMI et tout marche bien, sauf qu'elle est attachée à l'écran par le câble HDMI.
  
 **The first thing you need to do is install Fluidsynth from the Add/Remove program on the RPi.  Next, you need to add the pyfluidsynth python library.  You can do this using pip in a terminal. **The first thing you need to do is install Fluidsynth from the Add/Remove program on the RPi.  Next, you need to add the pyfluidsynth python library.  You can do this using pip in a terminal.
Ligne 15: Ligne 15:
 Hopefully, you still have the MCP3008 Analogue to Digital converter wired up from last month’s potentiometer project.  If not, all is not lost.  You can use the Fritzing diagram below.** Hopefully, you still have the MCP3008 Analogue to Digital converter wired up from last month’s potentiometer project.  If not, all is not lost.  You can use the Fritzing diagram below.**
  
-La première chose que vous devez faire est d'installer Fluidsynth à partir du programme Ajouter/Supprimer du RPi. Ensuite, vous avez besoin d'ajouter la bibliothèque Python pyfluidsynth. Vous pouvez le faire en utilisant pip dans un terminal.+La première chose à faire est d'installer Fluidsynth à partir du programme Ajouter/Supprimer du RPi. Ensuite, vous devez ajouter la bibliothèque Python pyfluidsynth. Vous pouvez le faire en utilisant pip dans un terminal.
  
 pip install pyfluidsynth pip install pyfluidsynth
Ligne 42: Ligne 42:
 Pour ce projet, vous avez besoin : Pour ce projet, vous avez besoin :
  
-• du Raspberry Pi +• du Raspberry Pi, 
-• d'une plaque d'essai +• d'une plaque d'essai, 
-• de cavaliers +• de cavaliers, 
-• du MCP3008 +• du MCP3008, 
-• d'une LED +• d'une LED, 
-• d'une résistance de 220 Ω +• d'une résistance de 220 Ω, 
-• de 3 potentiomètres de 10 kΩ +• de 3 potentiomètres de 10 kΩ, 
-• de 9 boutons-poussoirs+• de 9 boutons-poussoirs.
  
-Les potentiomètres ont tous une patte reliée à la masse, une au 3,3 Vdc et le curseur connecté aux bornes 1, 2, 3 du MCP3008. Les poussoirs ont tous une sortie branchée à la masse, et les autres connectées aux picots 5, 23, 13, 6, 12, 16, 19, 20 et 21 du GPIO (bornes physiques 29, 16, 33, 31, 32, 36, 35, 38 et 40). La cathode de la LED est connectée à la masse et l'anode à une des extrémités de la résistance de 220 Ω, tandis que l'autre bout de la résistance est relié à la borne 24 du GPIO (picot physique 18).+Les potentiomètres ont tous une patte reliée à la masse, une au 3,3 vDC et le curseur connecté aux bornes 1, 2, 3 du MCP3008. Les poussoirs ont tous une sortie branchée à la masse, et les autres connectées aux picots 5, 23, 13, 6, 12, 16, 19, 20 et 21 du GPIO (bornes physiques 29, 16, 33, 31, 32, 36, 35, 38 et 40). La cathode de la LED est connectée à la masse et l'anode à une des extrémités de la résistance de 220 Ω, tandis que l'autre bout de la résistance est relié à la borne 24 du GPIO (picot physique 18).
  
 **The Code **The Code
Ligne 72: Ligne 72:
 Le code Le code
  
-Le code est assez long ; aussi, je ne vais pas l'inclure ici. Cependant, je mettrai divers extraits pour présenter certains des segments les moins usuels. Je  me baladerai aussi dans le code pour mettre en avant certains points. Je suggère fortement que vous récupériez le code de la page github de Michaël. Il comprend aussi des polices sonores pour le tester.+Le code est assez long ; aussi, je ne vais pas tout inclure ici. Cependant, j'en montrerai divers extraits pour présenter certains des segments les moins usuels. Je  me baladerai aussi dans le code pour mettre en avant certains points. Je suggère fortement que vous récupériez le code de la page github de Michaël. Il comprend aussi des polices sonores pour le tester.
  
-Bien sûr, la première chose que fait Michaël, ce sont les imports ...+Bien sûr, la première chose que fait Michaël, ce sont les imports :
  
 from __future__ import division from __future__ import division
Ligne 121: Ligne 121:
 fs.start(driver='alsa') fs.start(driver='alsa')
  
-Maintenant, voici la section de définition du poussoir. Souvenez-vous que les numéros de picots correspondent aux picots du GPIO, et pas aux numéros des picots physiques.+Maintenant, voici la section de définition des poussoirs. Souvenez-vous que les numéros de picot correspondent aux picots du GPIO, et pas aux numéros des picots physiques.
  
 # Paramétrage des poussoirs pour la remise à zéro et l'arrêt # Paramétrage des poussoirs pour la remise à zéro et l'arrêt
Ligne 154: Ligne 154:
 # Définition des potentiomètres # Définition des potentiomètres
  
-pot0 = MCP3008(channel=2) # Contrôle du volume+pot0 = MCP3008(channel=2) # Contrôle du volume.
  
-pot1 = MCP3008(channel=1) # Sélection de l'instrument+pot1 = MCP3008(channel=1) # Sélection de l'instrument.
  
-pot2 = MCP3008(channel=0) # Changement d'octave (« Additor »)+pot2 = MCP3008(channel=0) # Changement d'octave (« Additor »).
  
-La routine load_soundfonts() (en haut à droite) va traverser la bibliothèque soundfonts, en récupérant les noms des fichiers de polices sonores dans un liste utilisable. Les fichiers source de Michaël comprennent 15 échantillons de polices sonores.+La routine load_soundfonts() (en haut à droite) va parcourir la bibliothèque soundfonts, en récupérant les noms des fichiers de polices sonores dans une liste utilisable. Les fichiers sources de Michaël comprennent 15 échantillons de polices sonores.
  
-La routine suivante (page précédente, en bas à droite) paramétrera l'instrument pour la synthèse sur la base de la valeur du potentiomètre n°1 qui, comme nous le voyons plus haut, est le canal n°1 du MCP3008.+La routine suivante (page précédente, en bas à droite) paramétrera l'instrument pour la synthèse sur la base de la valeur du potentiomètre n° 1 qui, comme nous le voyons plus haut, est le canal n° 1 du MCP3008.
  
-Voici là où Michaël paramètre les actions pour chacun des poussoirs musicaux. De base, il y a les actions « when-pressed » (si appuyé) et « when-released » (si relâché) qui appellent une routine quand l'action est effectuée.+C'est ici que Michaël paramètre les actions pour chacun des poussoirs musicaux. De base, il y a les actions « when_pressed » (si appuyé) et « when_released » (si relâché) qui appellent une routine quand l'action est effectuée.
  
 **# Assign actions to when_pressed for each button **# Assign actions to when_pressed for each button
Ligne 201: Ligne 201:
 pinky_finger.when_released = pinky_finger_stop pinky_finger.when_released = pinky_finger_stop
  
-En examinant ce que fait la routine d'action du poussoir de l'index, nous voyons ce qui est montré en haut à droite+En examinant ce que fait la routine d'action du poussoir de l'index, nous voyons ce qui est montré en haut à droite.
  
 **The way things work on a synth is that when a note key is pressed a noteon event is called and when it is released, a noteoff event is then called.  (That is why sometimes when playing a midi file on a computer you get notes that seem to be accidentally left on, playing forever.  The noteoff event is never read by the soft synth.)  By doing this, you could play chords.  These are mostly repeated for each of the buttons that control the notes to be played.  Also notice that the value of the additor is added to the note itself.  This allows you to do various octaves of the seven notes. **The way things work on a synth is that when a note key is pressed a noteon event is called and when it is released, a noteoff event is then called.  (That is why sometimes when playing a midi file on a computer you get notes that seem to be accidentally left on, playing forever.  The noteoff event is never read by the soft synth.)  By doing this, you could play chords.  These are mostly repeated for each of the buttons that control the notes to be played.  Also notice that the value of the additor is added to the note itself.  This allows you to do various octaves of the seven notes.
Ligne 207: Ligne 207:
 In the following lines, Michael sets the note definitions for each button.** In the following lines, Michael sets the note definitions for each button.**
  
-La façon dont les choses fonctionnent sur un synthétiseur est que, quand une touche est appuyée, un événement noteon est appelé et quand elle est relâchée, un événement noteoff est appelé. (C'est pourquoi, parfois, quand vous écoutez un fichier midi sur un ordinateur, vous avez des notes qui semblent être accidentellement en appui permanent, les laissant jouer sans fin. L'événement noteoff n'est jamais lu par le synthétiseur logiciel.) En faisant cela, vous pouvez jouer des cordes. Elles sont généralement répétées pour chacun des poussoirs qui contrôlent les notes à jouer. Notez aussi que la valeur de l'« additor » est ajoutée à la note elle-même. Ceci vous permet de disposer des sept notes sur plusieurs octaves.+La façon dont les choses fonctionnent sur un synthétiseur est que, quand on appuie sur une touche, un événement noteon est appelé et quand elle est relâchée, un événement noteoff est appelé. (C'est pourquoi, parfois, quand vous écoutez un fichier midi sur un ordinateur, vous avez des notes qui semblent être accidentellement en appui permanent, les laissant jouer sans fin. L'événement noteoff n'est jamais lu par le synthétiseur logiciel.) En faisant cela, vous pouvez jouer des cordes. Elles sont généralement répétées pour chacun des poussoirs qui contrôlent les notes à jouer. Notez aussi que la valeur de l'« additor » est ajoutée à la note elle-même. Ceci vous permet de disposer des sept notes sur plusieurs octaves.
  
 Dans les lignes suivantes, Michaël définit la note de chaque poussoir. Dans les lignes suivantes, Michaël définit la note de chaque poussoir.
Ligne 236: Ligne 236:
 Je pense que ceci vous donne une compréhension de base de ce que fait le code ; aussi, vous pouvez poursuivre et jouer avec le projet. Je pense que ceci vous donne une compréhension de base de ce que fait le code ; aussi, vous pouvez poursuivre et jouer avec le projet.
  
-Une fois encore, merci à Michaël pour ce projet.+Une fois encore, un grand merci à Michaël pour ce projet.
  
 Jusqu'à la prochaine fois, amusez-vous bien. Jusqu'à la prochaine fois, amusez-vous bien.
issue124/python.1503987115.txt.gz · Dernière modification : 2017/08/29 08:11 de d52fr