Synthetiseur : Différence entre versions
(→Synthétiseur (Lu XIA et Hidéo VINOT)) |
(→Matériel) |
||
(25 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | <include nopre noesc src="/home/pedago/pimasc/include/video-Synthetiseur-iframe.html" /> | ||
+ | __TOC__ | ||
<br style="clear: both;"/> | <br style="clear: both;"/> | ||
== Synthétiseur == | == Synthétiseur == | ||
− | + | [[Fichier:PROJET_Synthetiseur_2015.zip]] | |
==Dénomination du sujet par les encadrants== | ==Dénomination du sujet par les encadrants== | ||
Ligne 17 : | Ligne 19 : | ||
On souhaite réaliser un synthétiseur simple à partir d'une plate-forme microprocesseur de la gamme Cortex M3 de référence LPC1768. Les caractéristiques du micro P seront décrites plus loin. Retenons juste que celui-ci fonctionne à une vitesse CPU maximale de 100Mhz, qu'il possède un DAC et une liaison USB. Pour le commander, nous utiliserons une page web hébergée sur un serveur qui nous enverra les notes de musiques à transmettre vers l'instrument. On ajoutera une partie analogique au projet pour affiner et amplifier le signal final. | On souhaite réaliser un synthétiseur simple à partir d'une plate-forme microprocesseur de la gamme Cortex M3 de référence LPC1768. Les caractéristiques du micro P seront décrites plus loin. Retenons juste que celui-ci fonctionne à une vitesse CPU maximale de 100Mhz, qu'il possède un DAC et une liaison USB. Pour le commander, nous utiliserons une page web hébergée sur un serveur qui nous enverra les notes de musiques à transmettre vers l'instrument. On ajoutera une partie analogique au projet pour affiner et amplifier le signal final. | ||
Ce projet regroupe différents domaines de compétences, ce qui induit une conception simple et pouvant être optimisée. | Ce projet regroupe différents domaines de compétences, ce qui induit une conception simple et pouvant être optimisée. | ||
+ | |||
+ | [[Fichier:000.jpg|1000px|thumb|centre|Représentation du sujet]] | ||
+ | [[Fichier:Web.jpg|1000px|thumb|centre|Représentation de l'interface utilisateur]] | ||
==Segmentation du projet== | ==Segmentation du projet== | ||
Ligne 62 : | Ligne 67 : | ||
[[Fichier:00.jpg|200px|thumb|left|Cortex M3 mbed NXP LPC1768]] | [[Fichier:00.jpg|200px|thumb|left|Cortex M3 mbed NXP LPC1768]] | ||
[[Fichier:03.jpg |200px|thumb|centre|mbed Lab Board]] <br> | [[Fichier:03.jpg |200px|thumb|centre|mbed Lab Board]] <br> | ||
− | C'est l'élément | + | C'est l'élément principal du projet. Il devra assurer entièrement ces tâches: <br> |
*génération de formes d'ondes analogiques.<br> On doit pouvoir choisir quelques formes d'ondes dans une bibliothèque qui seront modulées au travers d'un LFO. La fréquence de ces ondes devra évidement correspondre précisément aux notes de musique de la gamme habituelle. | *génération de formes d'ondes analogiques.<br> On doit pouvoir choisir quelques formes d'ondes dans une bibliothèque qui seront modulées au travers d'un LFO. La fréquence de ces ondes devra évidement correspondre précisément aux notes de musique de la gamme habituelle. | ||
*lecture d'informations quant aux modifications pour le LFO et la forme d'onde | *lecture d'informations quant aux modifications pour le LFO et la forme d'onde | ||
*assurer la communication avec le PC par liaison série USB | *assurer la communication avec le PC par liaison série USB | ||
− | |||
===Partie réseau=== | ===Partie réseau=== | ||
Ligne 130 : | Ligne 134 : | ||
| [[Fichier:08.jpg |200px|thumb|left|]] | | [[Fichier:08.jpg |200px|thumb|left|]] | ||
| [[Fichier:09.jpg |200px|thumb|left|]] | | [[Fichier:09.jpg |200px|thumb|left|]] | ||
− | | | + | | ... |
|} | |} | ||
<br> | <br> | ||
+ | |||
===Semaine 4=== | ===Semaine 4=== | ||
====Partie Réseau==== | ====Partie Réseau==== | ||
Ligne 153 : | Ligne 158 : | ||
|+ Voltage Controlled Distorsion | |+ Voltage Controlled Distorsion | ||
|- | |- | ||
− | | [[Fichier:SchemaBm.png | | + | | [[Fichier:SchemaBm.png |600px|thumb|centre|Schéma]] |
− | | [[Fichier:PcbBM.png | | + | | [[Fichier:PcbBM.png |300px|thumb|centre|PCB]] |
|- | |- | ||
|} | |} | ||
Ligne 168 : | Ligne 173 : | ||
===Semaine 5=== | ===Semaine 5=== | ||
+ | Réalisation du typon du Voltage Controlled Filter: | ||
+ | {| class="wikitable centre" | ||
+ | |+ Voltage Controlled Filter | ||
+ | |- | ||
+ | | [[Fichier:VCFsch.png |400px|thumb|centre|Schéma]] | ||
+ | | [[Fichier:VCFpcb.png |300px|thumb|centre|PCB]] | ||
+ | |- | ||
+ | |} | ||
+ | Nous avons utilisé [http://www.kicad-pcb.org/display/KICAD/KiCad+EDA+Software+Suite Kicad] pour réaliser ce typon. C'est un logiciel facile à prendre en main pour faire ce genre de carte. | ||
+ | ===Semaine 6=== | ||
+ | ====Partie Électronique Analogique==== | ||
+ | *Collecte des composants électroniques. | ||
+ | *Prototypage du VCF sur plaque de test électronique. Le montage fonctionne bien, on voudrait modifier une valeur de condensateur pour changer le fréquence de coupure. On a testé ce montage avec une guitare en entrée, on a, outre un bruit de fond assez bas, un rendu sonore assez bon. On peut imaginer qu'une fois soudé, le circuit sera encore plus stable. | ||
+ | *Gravure du typon par le magasinier Thierry Flamen. | ||
+ | |||
+ | ====Partie Réseau==== | ||
+ | *On a put se connecter au serveur sur le MBED depuis un ordinateur distant. | ||
+ | *Allumage d'une led | ||
+ | |||
+ | ===Semaine 7=== | ||
+ | ====Partie Électronique Analogique==== | ||
+ | *Soudure de la carte. | ||
+ | *Dépannage. Il y a eu une erreur de connexion sur le schéma qui a provoqué une erreur de typon. | ||
+ | *Une fois l'erreur détecté, il a fallut gratter cette piste. | ||
+ | *Modification de quelques valeurs de résistance. La carte fonctionne à merveille. | ||
+ | *Test avec une tension analogique délivré par le mbed: résultat correcte. | ||
+ | |||
+ | ====Partie Réseau==== | ||
+ | *Petites avancées. | ||
+ | *Utilisation d'un script Ajax. | ||
+ | *Difficultés de compilation. | ||
+ | |||
+ | ===Semaine 8=== | ||
+ | ====Partie Électronique Analogique==== | ||
+ | *Avancé des typons de la carte support du mbed, de la carte du VCD et de l'amplificateur. | ||
+ | |||
+ | ====Partie Réseau/ Électronique Numérique==== | ||
+ | *Production d'une note au clic sur un bouton de l'interface web. | ||
+ | *Réalisation de la page web finale | ||
+ | *Debug de la compilation permettant d'utiliser le DAC | ||
+ | *Étude du programme final. | ||
+ | <br> | ||
+ | Nous avons besoin d'un oscilloscope! | ||
+ | |||
+ | ===Semaine 9=== | ||
+ | ====Partie Électronique Analogique==== | ||
+ | *Fin de la carte d'amplification. | ||
+ | ====Partie Réseau/ Électronique Numérique==== | ||
+ | *Obtention des formes d'ondes et des formes LFO (sauf sinus) | ||
+ | *déblocage des compteurs et de la PWM. | ||
+ | |||
+ | ===Semaine 10=== | ||
+ | ====Partie Électronique Analogique==== | ||
+ | *Tests sur la PWM | ||
+ | ====Partie Réseau/ Électronique Numérique==== | ||
+ | *fin de des tests pour l'architecture finale du programme | ||
+ | *Connections virtuelles entre la page web et le LPC1768 | ||
+ | *mise en place de l'enveloppe ADSR. | ||
+ | *On arrive à sortir les carrés LFO et ONDE modulée avec l'ADSR. | ||
+ | |||
+ | ===Semaine 11=== | ||
+ | ====Partie Électronique Analogique==== | ||
+ | *production de la carte support du LPC1768 | ||
+ | ====Partie Réseau/ Électronique Numérique==== | ||
+ | *Toutes les fonctions sont opérationnel il ne reste plus à faire un programme qui permet d'utiliser toute les fonctionnalités ensemble. | ||
+ | |||
+ | ===Semaine 12=== | ||
+ | * Tournage de la video | ||
+ | *Finalisation du projet: nous avons finit de concevoir le synthétiseur, toute les fonctions sont opérationnelle. Nous avons réussi à jouer toutes les notes de la gamme, à générer une sinusoïde PWM, les différentes formes de modulation, les différentes formes d'onde... | ||
+ | Il ne reste plus qu'à finir les cartes. | ||
+ | |||
+ | ==Conclusion du projet== | ||
+ | Nous avons trouvé que ce projet était enrichissant aussi bien sur le plan technique et | ||
+ | théorique que sur le plan relationnel. D'abord parce que le sujet était motivant et que nous | ||
+ | voulions entendre un résultat. Puis, parce que nous avons pu travailler ensemble et mettre en | ||
+ | avant nos compétences respectives. L'association que nous avons faite nous a permis de | ||
+ | progresser et de jouer du synthétiseur. <br> | ||
== Matériel == | == Matériel == | ||
* 2 mbed LPC1768 [<span style="color: green;">fourni le 28/01/2015</span>] | * 2 mbed LPC1768 [<span style="color: green;">fourni le 28/01/2015</span>] | ||
* 1 platine mbed Lab Board [<span style="color: green;">fin 2014</span>] | * 1 platine mbed Lab Board [<span style="color: green;">fin 2014</span>] | ||
− | * Connecteurs téléphoniques STEREO CHROME NOSE [<span style="color: | + | * Connecteurs téléphoniques STEREO CHROME NOSE [<span style="color: green;">reçu le 06/04/2015</span>] |
− | * Connecteurs téléphoniques Plug 3.5mm mono nickel/silver REAN [<span style="color: | + | * Connecteurs téléphoniques Plug 3.5mm mono nickel/silver REAN [<span style="color: green;">reçu le 06/04/2015</span>] |
− | * Connecteurs téléphoniques 3.5MM MONO JACK [<span style="color: | + | * Connecteurs téléphoniques 3.5MM MONO JACK [<span style="color: green;">reçu le 06/04/2015</span>] |
− | * Connecteurs modulaires / Connecteurs Ethernet 8 TRM NO FLTR LOWPRO [<span style="color: | + | * Connecteurs modulaires / Connecteurs Ethernet 8 TRM NO FLTR LOWPRO [<span style="color: green;">commandé le 18/2/2015 fourni le 09/03/2015</span>] |
− | * Mini usb [<span style="color: | + | * Mini usb [<span style="color: green;">commandé le 18/2/2015 fourni le 09/03/2015</span>] |
− | |||
− | |||
− | |||
− | |||
− | |||
== Sources == | == Sources == | ||
[http://www.geofex.com/Article_Folders/wahpedl/wahped.htm Article Wah] <br> | [http://www.geofex.com/Article_Folders/wahpedl/wahped.htm Article Wah] <br> | ||
− | [http://freestompboxes.org/ Freestompboxes.org] | + | [http://freestompboxes.org/ Freestompboxes.org]<br> |
+ | [http://basicsynth.com/ Basic Synth]<br> | ||
+ | [http://docs-europe.electrocomponents.com/webdocs/1183/0900766b81183061.pdf Lab Board Schematic]<br> | ||
+ | [http://html5drummachine.com/ Web Drum Machine]<br> | ||
+ | [https://www.amphenolcanada.com/ProductSearch/drawings/AC/RJHSE538X.pdf Connectique RJ45]<br> |
Version actuelle datée du 1 février 2016 à 15:36
Sommaire
- 1 Synthétiseur
- 2 Dénomination du sujet par les encadrants
- 3 Présentation du Projet Synthétiseur
- 4 Segmentation du projet
- 5 Journal de passerelle
- 6 Conclusion du projet
- 7 Matériel
- 8 Sources
Synthétiseur
Fichier:PROJET Synthetiseur 2015.zip
Dénomination du sujet par les encadrants
Objectif | Réaliser un synthétiseur "à la soundchip" via un MBED. |
---|---|
Description | La plate-forme MBED utilise un microcontrôleur de type ARM CORTEX-M3. Il possède notamment un DAC et des sorties audios. L'objectif du projet est de réaliser une bibliothèque de programmation permettant de configurer différents paramètres (signal en entrée, VCO, LFO, ...) afin de créer dynamiquement des sons. Une petite carte d'amplification sera éventuellement réalisée. Pour le paramétrage, il faudra réaliser des pages Web qui seront intégrées dans le MBED via SMEWS |
Présentation du Projet Synthétiseur
On souhaite réaliser un synthétiseur simple à partir d'une plate-forme microprocesseur de la gamme Cortex M3 de référence LPC1768. Les caractéristiques du micro P seront décrites plus loin. Retenons juste que celui-ci fonctionne à une vitesse CPU maximale de 100Mhz, qu'il possède un DAC et une liaison USB. Pour le commander, nous utiliserons une page web hébergée sur un serveur qui nous enverra les notes de musiques à transmettre vers l'instrument. On ajoutera une partie analogique au projet pour affiner et amplifier le signal final. Ce projet regroupe différents domaines de compétences, ce qui induit une conception simple et pouvant être optimisée.
Segmentation du projet
Cortex M3 mbed NXP LPC1768 et Lab Board
Type Number | Flash | SRAM in kB | Ethernet | USB | CAN | I² | DAC | Maximum CPU Opérating fequency | |||
---|---|---|---|---|---|---|---|---|---|---|---|
CPU | AHM SRAM0 | AHM SRAM1 | Total | ||||||||
LPC 1768***/*** | 512kB | 32 | 16 | 16 | 64 | yes | Device/host/OTG | 2 | yes | yes | 100Mhz |
source page 4
C'est l'élément principal du projet. Il devra assurer entièrement ces tâches:
- génération de formes d'ondes analogiques.
On doit pouvoir choisir quelques formes d'ondes dans une bibliothèque qui seront modulées au travers d'un LFO. La fréquence de ces ondes devra évidement correspondre précisément aux notes de musique de la gamme habituelle. - lecture d'informations quant aux modifications pour le LFO et la forme d'onde
- assurer la communication avec le PC par liaison série USB
Partie réseau
Nous devons générer un code php/ajax qui permet de jouer un clavier maître ou une matrice représentant les notes d'un instrument de musique via une page web.
Partie électronique analogique
Nous devons réaliser un amplificateur audio faible puissance. Nous étudierons quelles sont les caractéristiques de plusieurs montages en termes de qualité. Il est possible d'améliorer le son de ce synthétiseur en ajoutant entre le pré-amplificateur et l'amplificateur de puissance des étages particulier(filtrage, modulation...). On pensera à ajouter des potentiomètres permettant de faire varier la phase, la fréquence et la profondeur du LFO ainsi que des boutons pour choisir la forme de l'onde.
Programme informatique
Le code que nous allons développer devra assurer l'échange entre la page web et le microcontrôleur via la liaison série USB. On sait d'ores et déjà que l'utilisation d'un protocole MIDI serait une amélioration propice (on pourrait jouer avec n'importe quel clavier maître!)
Journal de passerelle
Semaine 1
Lors de la première semaine, nous élaborons le cahier des charges. Par ailleurs, nous travaillons sur la partie microprocesseur et la partie réseau qui nous paraissent être les parties les plus difficiles. Pour l'instant en pratique:
- nous obtenons différentes formes d'ondes
- nous arrivons à moduler le signal avec trois formes de LFO
- nous pouvons synthétiser un la 440Hz avec n'importe quelle forme d'onde périodique (on peut écrire la décomposition en série de Fourier d'un signal périodique).
Étude théorique:
- recherche d'une solution pour ordonnancement des taches
- ajax
- php
- html
- java
- MIDI
Semaine 2
Durant cette semaine 2, nous avons réfléchi à un schéma générale permettant de créer la liste du matériel à commander. Du point de vue technique, nous avons avancé sur la partie réseau. Un code java script nous permet de déclencher une ligne de commande via la technologie activeX. Nous sommes en train de travailler sur une communication série entre le PC et le Cortex M3.
Semaine 3
Nous revenons en arrière sur la partie réseau. Nous nous penchons sur la technologie SMEWS qui avait été utilisé pour le projet e-monotron l'an passé. Nous sommes en train d'installer Fedora21 sur nos machines pour travailler chez nous. On rencontre des problèmes par la suite pour installer l’environnement de développement.
Partie Électronique Numérique:
- Utilisation d'un oscilloscope analogique, d'un accordeur guitare, d'un ampli, de claviers MIDI pour travailler chez soi:
- Le LFO est effectif avec n'importe quelle forme lui aussi.
- Formes d'ondes : carré, sinus, dent de scie.
- Formes de LFO: triangle, carré sinus.
- On a une modulation AM stable et propre du LFO et de la note.
LFO = Sinus | LFO = Carré | LFO = Triangle | |
---|---|---|---|
Forme d'onde = Sinus | |||
Forme d'onde = Carré | |||
Forme d'onde = Dent de Scie | ... |
Semaine 4
Partie Réseau
- Installation de gcc et gcc-arm.
- Abandon de l'idée pour programmer chez soi la partie réseau.
- Installation des compilateurs et de l'environnement de développement sur une des machines de l'école grace à l'aide des professeurs encadrants.
Partie Électronique Numérique
- Installation de SciLab pour réaliser des courbes pour l'enveloppe ADSR du synthé.
- Utilisation de LibreOffice Calc dans un premier temps.
- Réalisation d'une enveloppe ADSR à l'aide de l'équation de réponse indicielle d'un système du second ordre.
- recherche de réglages agréables pour l'oreille.
- technique du second ordre est mise en suspend. On risque de choisir une méthode un peu plus simple...
Partie Électronique Analogique
Schéma voltage controlled filter
buffer spécial audio
Interface finale
On veut réaliser plusieurs cartes plugables entre elles.
Recherche bibliographique
Étude des noises generators du marché
Étude de "Algorithmique avec MATLAB et SCILAB" de Jean-Pierre GRENIER édition ellipses disponible à la BU
Semaine 5
Réalisation du typon du Voltage Controlled Filter:
Nous avons utilisé Kicad pour réaliser ce typon. C'est un logiciel facile à prendre en main pour faire ce genre de carte.
Semaine 6
Partie Électronique Analogique
- Collecte des composants électroniques.
- Prototypage du VCF sur plaque de test électronique. Le montage fonctionne bien, on voudrait modifier une valeur de condensateur pour changer le fréquence de coupure. On a testé ce montage avec une guitare en entrée, on a, outre un bruit de fond assez bas, un rendu sonore assez bon. On peut imaginer qu'une fois soudé, le circuit sera encore plus stable.
- Gravure du typon par le magasinier Thierry Flamen.
Partie Réseau
- On a put se connecter au serveur sur le MBED depuis un ordinateur distant.
- Allumage d'une led
Semaine 7
Partie Électronique Analogique
- Soudure de la carte.
- Dépannage. Il y a eu une erreur de connexion sur le schéma qui a provoqué une erreur de typon.
- Une fois l'erreur détecté, il a fallut gratter cette piste.
- Modification de quelques valeurs de résistance. La carte fonctionne à merveille.
- Test avec une tension analogique délivré par le mbed: résultat correcte.
Partie Réseau
- Petites avancées.
- Utilisation d'un script Ajax.
- Difficultés de compilation.
Semaine 8
Partie Électronique Analogique
- Avancé des typons de la carte support du mbed, de la carte du VCD et de l'amplificateur.
Partie Réseau/ Électronique Numérique
- Production d'une note au clic sur un bouton de l'interface web.
- Réalisation de la page web finale
- Debug de la compilation permettant d'utiliser le DAC
- Étude du programme final.
Nous avons besoin d'un oscilloscope!
Semaine 9
Partie Électronique Analogique
- Fin de la carte d'amplification.
Partie Réseau/ Électronique Numérique
- Obtention des formes d'ondes et des formes LFO (sauf sinus)
- déblocage des compteurs et de la PWM.
Semaine 10
Partie Électronique Analogique
- Tests sur la PWM
Partie Réseau/ Électronique Numérique
- fin de des tests pour l'architecture finale du programme
- Connections virtuelles entre la page web et le LPC1768
- mise en place de l'enveloppe ADSR.
- On arrive à sortir les carrés LFO et ONDE modulée avec l'ADSR.
Semaine 11
Partie Électronique Analogique
- production de la carte support du LPC1768
Partie Réseau/ Électronique Numérique
- Toutes les fonctions sont opérationnel il ne reste plus à faire un programme qui permet d'utiliser toute les fonctionnalités ensemble.
Semaine 12
- Tournage de la video
- Finalisation du projet: nous avons finit de concevoir le synthétiseur, toute les fonctions sont opérationnelle. Nous avons réussi à jouer toutes les notes de la gamme, à générer une sinusoïde PWM, les différentes formes de modulation, les différentes formes d'onde...
Il ne reste plus qu'à finir les cartes.
Conclusion du projet
Nous avons trouvé que ce projet était enrichissant aussi bien sur le plan technique et
théorique que sur le plan relationnel. D'abord parce que le sujet était motivant et que nous
voulions entendre un résultat. Puis, parce que nous avons pu travailler ensemble et mettre en
avant nos compétences respectives. L'association que nous avons faite nous a permis de
progresser et de jouer du synthétiseur.
Matériel
- 2 mbed LPC1768 [fourni le 28/01/2015]
- 1 platine mbed Lab Board [fin 2014]
- Connecteurs téléphoniques STEREO CHROME NOSE [reçu le 06/04/2015]
- Connecteurs téléphoniques Plug 3.5mm mono nickel/silver REAN [reçu le 06/04/2015]
- Connecteurs téléphoniques 3.5MM MONO JACK [reçu le 06/04/2015]
- Connecteurs modulaires / Connecteurs Ethernet 8 TRM NO FLTR LOWPRO [commandé le 18/2/2015 fourni le 09/03/2015]
- Mini usb [commandé le 18/2/2015 fourni le 09/03/2015]
Sources
Article Wah
Freestompboxes.org
Basic Synth
Lab Board Schematic
Web Drum Machine
Connectique RJ45