Orchestre de lecteurs de disquette : Différence entre versions

De L'abscisse - FabLab et Hackerspace de Dijon
Aller à : navigation, rechercher
m (Prérequis:)
m
Ligne 1 : Ligne 1 :
{{redac}}  
+
{{redac}}  
 +
 
 +
Le projet '''Floppy Orchestra''' développé par [[Utilisateur:Pilatomic|Pila]], permet de faire jouer de la musique à un ou plusieurs lecteurs de disquettes.<br />
 +
 
 
[[Fichier:Cube-Orchestra.jpg|400px|thumb|Photo de l'orchestre]]
 
[[Fichier:Cube-Orchestra.jpg|400px|thumb|Photo de l'orchestre]]
 
[[Fichier:Floppy-conductor-2.png|400px|thumb|Une capture d'écran du programe Floppy Conductor]]
 
[[Fichier:Floppy-conductor-2.png|400px|thumb|Une capture d'écran du programe Floppy Conductor]]
  
 
==Présentation==
 
==Présentation==
Le projet '''Floppy Orchestra''' développé par [[Utilisateur:Pilatomic|Pila]], permet de faire jouer de la musique à un ou plusieurs lecteurs de disquettes.<br />
+
 
Il est composé de 2 logiciels :  
+
Ce projet est composé de 2 logiciels :
 
* Le programme pour Arduino qui contrôle les lecteurs disquettes est un fork de [https://github.com/SammyIAm/Moppy Moppy].
 
* Le programme pour Arduino qui contrôle les lecteurs disquettes est un fork de [https://github.com/SammyIAm/Moppy Moppy].
 
* Le programme Floppy Conductor 2, lit des fichier musicaux en format MIDI et transmet les commandes à l'Arduino. L'avantage de ce programme est qu'il possède plusieurs fonctionnalités adaptées au contrôle de lecteurs disquettes, et qu'il offre une interface simple à utiliser. (si si)  
 
* Le programme Floppy Conductor 2, lit des fichier musicaux en format MIDI et transmet les commandes à l'Arduino. L'avantage de ce programme est qu'il possède plusieurs fonctionnalités adaptées au contrôle de lecteurs disquettes, et qu'il offre une interface simple à utiliser. (si si)  
Ligne 18 : Ligne 21 :
  
 
[[Fichier:vert.png]]
 
[[Fichier:vert.png]]
 
  
 
==Prérequis:==  
 
==Prérequis:==  
Ligne 29 : Ligne 31 :
 
* une alimentation de PC modifiée [[https://fablab.coagul.org/index.php/D%C3%A9tournement_d%27un_bloc_d%27alimentation_de_PC]]
 
* une alimentation de PC modifiée [[https://fablab.coagul.org/index.php/D%C3%A9tournement_d%27un_bloc_d%27alimentation_de_PC]]
  
====Option:====  
+
====Option====  
 +
 
 +
* connecteurs deux fils femelle comme sur carte mère ...
  
connecteurs deux fils femelle comme sur carte mère ...
+
Ils permettent de connecter plus simplement les lecteurs.<br />
Ils permettent de connecter plus simplement les lecteurs.
 
 
Si vous n'avez pas accès à un Fablab, il vous faudra démonter un grand nombre de PC tout seul ;)
 
Si vous n'avez pas accès à un Fablab, il vous faudra démonter un grand nombre de PC tout seul ;)
  
 
==Câblage==
 
==Câblage==
  
https://github.com/SammyIAm/Moppy/blob/moppy-advanced/README.md
+
https://github.com/SammyIAm/Moppy/blob/moppy-advanced/README.md<br />
 
http://pinouts.ru/Storage/InternalDisk_pinout.shtml
 
http://pinouts.ru/Storage/InternalDisk_pinout.shtml
 +
 
[photo]
 
[photo]
  
6ème pin en partant de la gauche en haut: jumper avec celui du bas
+
* 6ème pin en partant de la gauche en haut: jumper avec celui du bas
9ème et 10ème pin en partant de la gauche en haut: à connecter avec l'arduino 10 en premier 9 en suivant.
+
* 9ème et 10ème pin en partant de la gauche en haut: à connecter avec l'Arduino 10 en premier 9 en suivant.
N'importe quelle pin de la rangée du bas: à interconnecter avec la masse de l'arduino  
+
* N'importe quelle pin de la rangée du bas: à interconnecter avec la masse de l'Arduino  
le premier lecteur devrait donc être branché en 2/3 sur l'arduino.
+
* le premier lecteur devrait donc être branché en 2/3 sur l'Arduino.
  
 
===Limite du nombre de lecteurs===
 
===Limite du nombre de lecteurs===
  
Le nombre maximum absolu de lecteurs contrôlables par Floppy Conductor est de 64, cette valeur étant fixée par le protocole de communication utilisé entre Floppy Conductor et l'Arduino.
+
Le nombre maximum absolu de lecteurs contrôlables par Floppy Conductor est de 64, cette valeur est fixée par le protocole de communication utilisé entre Floppy Conductor et l'Arduino.
  
 
Le nombre maximum de lecteurs contrôlables par un Arduino standard (Duemilanove, Uno, Nano, etc... ) est limité à 8 par le nombre de broches I/O disponibles.
 
Le nombre maximum de lecteurs contrôlables par un Arduino standard (Duemilanove, Uno, Nano, etc... ) est limité à 8 par le nombre de broches I/O disponibles.
Ligne 60 : Ligne 64 :
 
Exemple : une alimentation capable de fournir 10A en 5V est théoriquement capable d'alimenter 20 lecteurs disquettes.
 
Exemple : une alimentation capable de fournir 10A en 5V est théoriquement capable d'alimenter 20 lecteurs disquettes.
  
Il est toutefois conseiller de conserver une marge d'au moins 25%, surtout avec des alimentations bas de gamme. Ainsi, sur l'alimentation de l'exemple précedent, il est plus sage de se limiter à 15 lecteurs.
+
Il est toutefois conseiller de conserver une marge d'au moins 25%, surtout avec des alimentations bas de gamme. Ainsi, sur l'alimentation de l'exemple précèdent, il est plus sage de se limiter à 15 lecteurs.
  
 
==Programmation de l'Arduino==
 
==Programmation de l'Arduino==
Ligne 68 : Ligne 72 :
 
Elle ajoute visiblement des fonctions de gestion du temps supplémentaires au langage Arduino.   
 
Elle ajoute visiblement des fonctions de gestion du temps supplémentaires au langage Arduino.   
  
site web: http://playground.arduino.cc/Code/Timer1
+
Site de la bibliothèque Timer1 : http://playground.arduino.cc/Code/Timer1<br />
 
+
Téléchargement : http://code.google.com/p/arduino-timerone/downloads/list<br />
Téléchargement: http://code.google.com/p/arduino-timerone/downloads/list
+
Lien direct : http://code.google.com/p/arduino-timerone/downloads/detail?name=TimerOne-r11.zip&can=2&q=
 
 
lien direct: http://code.google.com/p/arduino-timerone/downloads/detail?name=TimerOne-r11.zip&can=2&q=
 
  
 
Renommer le fichier en TimerOne.zip
 
Renommer le fichier en TimerOne.zip
  
dans l'IDE arduino -> Croquis -> Importer bibliothèque -> add library
+
Dans l'IDE arduino -> Croquis -> Importer bibliothèque -> add library
  
sélection du fichier TimerOne.zip et ok (pas de message d'erreur)
+
Sélection du fichier TimerOne.zip et ok (pas de message d'erreur)
  
 
===Transfert du programme===
 
===Transfert du programme===
  
Programme Arduino : https://gitorious.org/floppy-orchestra/moppy-for-floppy-orchestra/
+
Programme Arduino : https://gitorious.org/floppy-orchestra/moppy-for-floppy-orchestra/<br />
Cliquez sur le bouton "Download". Décompresser l'archive dans le répertoire de votre choix.
+
Cliquez sur le bouton "Download". <br />
 +
Décompresser l'archive dans le répertoire de votre choix.
  
dans l'EDI arduino charger le programme moppy_for_FloppyOrchestra.ino et le téléverser dans l'arduino.
+
Dans l'EDI arduino charger le programme moppy_for_FloppyOrchestra.ino et le téléverser dans l'arduino.
  
 
==Compilation de Floppy Conductor==
 
==Compilation de Floppy Conductor==
 +
 
===Récupération des sources===
 
===Récupération des sources===
 
Floppy Conductor : https://gitorious.org/floppy-orchestra/floppy-conductor/  
 
Floppy Conductor : https://gitorious.org/floppy-orchestra/floppy-conductor/  
Ligne 96 : Ligne 100 :
  
 
installation des paquets de développement QT4
 
installation des paquets de développement QT4
sudo apt-get install qt4-dev-tools libqt4-gui
+
    $ sudo apt-get install qt4-dev-tools libqt4-gui
  
- dans le répertoire des sources exécuter la commande "qmake-qt4 floppyconductor2.pro"   
+
* dans le répertoire des sources exécuter la commande "qmake-qt4 floppyconductor2.pro"   
 
+
* ensuite un simple "make" devrait construire le binaire
- ensuite un simple "make" devrait construire le binaire
+
* problème de compilation QT4 : si le compilateur ne trouve pas QApplication
 
 
 
 
- problème de compilation QT4 : si le compilateur ne trouve pas QApplication
 
  
 
dans le fichier main.cpp changer  
 
dans le fichier main.cpp changer  
Ligne 127 : Ligne 128 :
 
==Chargement d'un fichier MIDI avec Floppy Conductor==
 
==Chargement d'un fichier MIDI avec Floppy Conductor==
  
-Avec le bouton "eject" choisir un fichier Midi à jouer
+
* Avec le bouton "eject" choisir un fichier Midi à jouer
 
+
* Dans la colonne "Drive" sélectionner quelle lecteur doit jouer la piste de partition.
-Dans la colonne "Drive" sélectionner quelle lecteur doit jouer la piste de partition.
 
 
 
 
Vous pouvez vous aider avec le nombre de notes pour repérer les pistes importantes.
 
Vous pouvez vous aider avec le nombre de notes pour repérer les pistes importantes.
  
 
Les numéros le lecteurs commencent à zéro.
 
Les numéros le lecteurs commencent à zéro.
  
-La partie "Transpose" permet d'ajuster les notes trop hautes ou trop basses.
+
* La partie "Transpose" permet d'ajuster les notes trop hautes ou trop basses.
  
 
L'auto transpose marche très bien dans 80% des cas, il faut régler la fréquence max jouable par les lecteurs dans le champ "Floppy drives cut-off frequency". Une valeur de 500Hz correspond à la majorité des cas. Lorsque cette valeur est verte, cela signifie que la piste a bien été transposée dans la gamme jouable par les lecteurs. Si elle est rouge, c'est que la transposition n'a pas pu être réalisée.
 
L'auto transpose marche très bien dans 80% des cas, il faut régler la fréquence max jouable par les lecteurs dans le champ "Floppy drives cut-off frequency". Une valeur de 500Hz correspond à la majorité des cas. Lorsque cette valeur est verte, cela signifie que la piste a bien été transposée dans la gamme jouable par les lecteurs. Si elle est rouge, c'est que la transposition n'a pas pu être réalisée.
  
-Il est possible d'activer / désactiver la lecture de certaines pistes en cliquant sur l’icône verte en forme de note de musique de la piste correspondante. Floppy Conductor arrête alors la lecture pour calculer le nombre de lecteurs requis. Décocher la case "Auto-update..." permet d'activer / désactiver des pistes sans arrêter la lecture, mais le calcul du nombre de lecteurs nécessaires ne se fera qu'une fois la lecture terminée.
+
* Il est possible d'activer / désactiver la lecture de certaines pistes en cliquant sur l’icône verte en forme de note de musique de la piste correspondante. Floppy Conductor arrête alors la lecture pour calculer le nombre de lecteurs requis. Décocher la case "Auto-update..." permet d'activer / désactiver des pistes sans arrêter la lecture, mais le calcul du nombre de lecteurs nécessaires ne se fera qu'une fois la lecture terminée.
  
 
===Lecture===
 
===Lecture===
Ligne 150 : Ligne 149 :
 
Astuce: numérotez vos lecteurs, surtout s'il ne sont pas physiquement dans l'ordre des entrées de l'Arduino.
 
Astuce: numérotez vos lecteurs, surtout s'il ne sont pas physiquement dans l'ordre des entrées de l'Arduino.
  
     
 
 
Certaines pistes indiquent qu'elles ont besoin de plusieurs lecteurs. Dans la plupart des cas ce n'est pas obligatoire pour avoir un bon rendu quand même.
 
Certaines pistes indiquent qu'elles ont besoin de plusieurs lecteurs. Dans la plupart des cas ce n'est pas obligatoire pour avoir un bon rendu quand même.
  
 
===Sauvegarde des paramètres de la musique===
 
===Sauvegarde des paramètres de la musique===
 +
 
Une fois la bonne configuration trouvée pour une musique, il est possible de la sauvegarder en cliquant sur le menu "File" puis "Save song related settings". Cela provoque la création d'un fichier .flop, dans le dossier songs_settings, nommé comme le fichier MIDI auquel il correspond, contenant tous les paramètre liés à cette musique. Lors de l'ouverture d'un fichier MIDI avec Floppy Conductor, celui-ci recherche un fichier .flop correspond, et l'utilise pour charger tous les paramètres liés à cette musique.
 
Une fois la bonne configuration trouvée pour une musique, il est possible de la sauvegarder en cliquant sur le menu "File" puis "Save song related settings". Cela provoque la création d'un fichier .flop, dans le dossier songs_settings, nommé comme le fichier MIDI auquel il correspond, contenant tous les paramètre liés à cette musique. Lors de l'ouverture d'un fichier MIDI avec Floppy Conductor, celui-ci recherche un fichier .flop correspond, et l'utilise pour charger tous les paramètres liés à cette musique.
  

Version du 31 mars 2015 à 12:09

Dialog-warning.png Article en cours de rédaction Dialog-warning.png


Le projet Floppy Orchestra développé par Pila, permet de faire jouer de la musique à un ou plusieurs lecteurs de disquettes.

Photo de l'orchestre
Une capture d'écran du programe Floppy Conductor

Présentation

Ce projet est composé de 2 logiciels :

  • Le programme pour Arduino qui contrôle les lecteurs disquettes est un fork de Moppy.
  • Le programme Floppy Conductor 2, lit des fichier musicaux en format MIDI et transmet les commandes à l'Arduino. L'avantage de ce programme est qu'il possède plusieurs fonctionnalités adaptées au contrôle de lecteurs disquettes, et qu'il offre une interface simple à utiliser. (si si)

Je vais tenter d'expliquer ici, comment créer simplement votre orchestre de lecteurs de disquettes.

Coût

0€

Niveau de difficulté

Vert.png

Prérequis:

Composants

  • un arduino
  • logiciel IDE arduino
  • des lecteurs disquettes
  • une alimentation de PC modifiée [[1]]

Option

  • connecteurs deux fils femelle comme sur carte mère ...

Ils permettent de connecter plus simplement les lecteurs.
Si vous n'avez pas accès à un Fablab, il vous faudra démonter un grand nombre de PC tout seul ;)

Câblage

https://github.com/SammyIAm/Moppy/blob/moppy-advanced/README.md
http://pinouts.ru/Storage/InternalDisk_pinout.shtml

[photo]

  • 6ème pin en partant de la gauche en haut: jumper avec celui du bas
  • 9ème et 10ème pin en partant de la gauche en haut: à connecter avec l'Arduino 10 en premier 9 en suivant.
  • N'importe quelle pin de la rangée du bas: à interconnecter avec la masse de l'Arduino
  • le premier lecteur devrait donc être branché en 2/3 sur l'Arduino.

Limite du nombre de lecteurs

Le nombre maximum absolu de lecteurs contrôlables par Floppy Conductor est de 64, cette valeur est fixée par le protocole de communication utilisé entre Floppy Conductor et l'Arduino.

Le nombre maximum de lecteurs contrôlables par un Arduino standard (Duemilanove, Uno, Nano, etc... ) est limité à 8 par le nombre de broches I/O disponibles.

Cependant, il y a une autre limite : le nombre de lecteurs maximum que vous pouvez brancher est fonction de la puissance de votre alimentation.

Un lecteur disquette utilisé avec Floppy Conductor consomme environ 500mA sur le rail 5V (déplacement de la tête de lecture, plateau de rotation à l'arrêt).

Dès lors, une alimentation peut fournir du courant à un nombre de lecteur égal au double du nombre d'ampères qu'elle peut délivrer sur le rail 5V.

Exemple : une alimentation capable de fournir 10A en 5V est théoriquement capable d'alimenter 20 lecteurs disquettes.

Il est toutefois conseiller de conserver une marge d'au moins 25%, surtout avec des alimentations bas de gamme. Ainsi, sur l'alimentation de l'exemple précèdent, il est plus sage de se limiter à 15 lecteurs.

Programmation de l'Arduino

Ajout de la bibliothèque timer1

Le programme utilisé dans l'Arduino a besoin d'une bibliothèque supplémentaire nommé Timer1. Elle ajoute visiblement des fonctions de gestion du temps supplémentaires au langage Arduino.

Site de la bibliothèque Timer1 : http://playground.arduino.cc/Code/Timer1
Téléchargement : http://code.google.com/p/arduino-timerone/downloads/list
Lien direct : http://code.google.com/p/arduino-timerone/downloads/detail?name=TimerOne-r11.zip&can=2&q=

Renommer le fichier en TimerOne.zip

Dans l'IDE arduino -> Croquis -> Importer bibliothèque -> add library

Sélection du fichier TimerOne.zip et ok (pas de message d'erreur)

Transfert du programme

Programme Arduino : https://gitorious.org/floppy-orchestra/moppy-for-floppy-orchestra/
Cliquez sur le bouton "Download".
Décompresser l'archive dans le répertoire de votre choix.

Dans l'EDI arduino charger le programme moppy_for_FloppyOrchestra.ino et le téléverser dans l'arduino.

Compilation de Floppy Conductor

Récupération des sources

Floppy Conductor : https://gitorious.org/floppy-orchestra/floppy-conductor/ Cliquez sur le bouton "Download". Décompresser l'archive dans le répertoire de votre choix.

Compilation

Nota: j'ai fait la compilation avec QT4 mais il devrait compiler sans problème avec QT5

installation des paquets de développement QT4

   $ sudo apt-get install qt4-dev-tools libqt4-gui
  • dans le répertoire des sources exécuter la commande "qmake-qt4 floppyconductor2.pro"
  • ensuite un simple "make" devrait construire le binaire
  • problème de compilation QT4 : si le compilateur ne trouve pas QApplication

dans le fichier main.cpp changer

#include <QtWidgets/QApplication>
en #include <QApplication>

source: http://stackoverflow.com/questions/8995399/error-qapplication-no-such-file-or-directory

Configuration de Floppy conductor

Lancer Floppy Conductor puis :

1. settings -> select COM port: choisir le port de l'arduino, puis OK.

2. vérifier que la vitesse de transmission est bien réglée sur 9600 bauds

3. Un clic sur le bouton de connexion pour activer la communication avec l'Arduino.

4. Saisir dans la partie "Drive management" le nombre de lecteurs dont on dispose pour jouer.

Ces réglages sont sauvegardés à la fermeture du Floppy Conductor, et rechargés automatiquement à son ouverture. La seul manipulation qu'il reste à faire est cliquer sur le bouton de connexion.


Chargement d'un fichier MIDI avec Floppy Conductor

  • Avec le bouton "eject" choisir un fichier Midi à jouer
  • Dans la colonne "Drive" sélectionner quelle lecteur doit jouer la piste de partition.

Vous pouvez vous aider avec le nombre de notes pour repérer les pistes importantes.

Les numéros le lecteurs commencent à zéro.

  • La partie "Transpose" permet d'ajuster les notes trop hautes ou trop basses.

L'auto transpose marche très bien dans 80% des cas, il faut régler la fréquence max jouable par les lecteurs dans le champ "Floppy drives cut-off frequency". Une valeur de 500Hz correspond à la majorité des cas. Lorsque cette valeur est verte, cela signifie que la piste a bien été transposée dans la gamme jouable par les lecteurs. Si elle est rouge, c'est que la transposition n'a pas pu être réalisée.

  • Il est possible d'activer / désactiver la lecture de certaines pistes en cliquant sur l’icône verte en forme de note de musique de la piste correspondante. Floppy Conductor arrête alors la lecture pour calculer le nombre de lecteurs requis. Décocher la case "Auto-update..." permet d'activer / désactiver des pistes sans arrêter la lecture, mais le calcul du nombre de lecteurs nécessaires ne se fera qu'une fois la lecture terminée.

Lecture

Une fois Floppy Conductor configuré et le fichier MIDI chargé il ne reste plus qu'à lancer la lecture ;)

Il faut parfois chercher un peu avant de trouver les bonnes pistes à jouer sur les bon lecteurs. Repérez bien qui joue le plus fort, qui joue le plus grave, et vous saurez rapidement comment affecter chaque lecteurs.

Astuce: numérotez vos lecteurs, surtout s'il ne sont pas physiquement dans l'ordre des entrées de l'Arduino.

Certaines pistes indiquent qu'elles ont besoin de plusieurs lecteurs. Dans la plupart des cas ce n'est pas obligatoire pour avoir un bon rendu quand même.

Sauvegarde des paramètres de la musique

Une fois la bonne configuration trouvée pour une musique, il est possible de la sauvegarder en cliquant sur le menu "File" puis "Save song related settings". Cela provoque la création d'un fichier .flop, dans le dossier songs_settings, nommé comme le fichier MIDI auquel il correspond, contenant tous les paramètre liés à cette musique. Lors de l'ouverture d'un fichier MIDI avec Floppy Conductor, celui-ci recherche un fichier .flop correspond, et l'utilise pour charger tous les paramètres liés à cette musique.

Rubrique Dépannage

Dialog-warning.png Fix Me !

Vous pouvez ajouter les informations manquantes !!!

Problème Cause Solution
Floppy Conductor ne veut pas se connecter à l'arduino Port COM utilisé par un autre processus Arreter l'autre processus
Sous Linux, l'utilisateur n'a pas les droits d'accès au port COM Ajouter l'utilisateur au groupe dialout :
$ sudo usermod -a -G dialout VOTRE_NOM_D_UTILISATEUR

Liens

le dépôt git du projet
https://gitorious.org/floppy-orchestra

Floppy Orchestra performing Mario Theme
https://www.youtube.com/watch?v=uscKE5Pp4hg

Auteurs