Synthetiseur

De Wiki d'activités IMA


Synthétiseur (Lu XIA et Hidéo VINOT)

Bibliographie sur le Synthétiseur 2012

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

Overview
Type Number Flash SRAM in kB Ethernet USB CAN 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

Cortex M3 mbed NXP LPC1768
mbed Lab Board

C'est l'élément principale 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).
Forme d'onde obtenue
Forme d'onde obtenue
Forme d'onde obtenue

É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 clavier 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.
Oscillogrammes de la semaine
LFO = Sinus LFO = Carré LFO = Triangle
Forme d'onde = Sinus
04.jpg
05.jpg
06.jpg
Forme d'onde = Carré
10.jpg
11.jpg
12.jpg
Forme d'onde = Dent de Scie
08.jpg
09.jpg
Image à venir


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.
Methode 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

Voltage Controlled Distorsion
Schéma
PCB


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

Matériel

  • 2 mbed LPC1768 [fourni le 28/01/2015]
  • 1 platine mbed Lab Board [fin 2014]
  • Connecteurs téléphoniques STEREO CHROME NOSE [commandé le 18/2/2015]
  • Connecteurs téléphoniques Plug 3.5mm mono nickel/silver REAN [commandé le 18/2/2015]
  • Connecteurs téléphoniques 3.5MM MONO JACK [commandé le 18/2/2015]
  • Connecteurs modulaires / Connecteurs Ethernet 8 TRM NO FLTR LOWPRO [commandé le 18/2/2015]
  • Mini usb [commandé le 18/2/2015]


Fichiers

Note de bas de page:

SRAM: mémoire de stockage des données qui sont traitées pendant le temps d'exécution - mémoire volatile
Flash: mémoire où le programme est stocké - non volatile

Sources

Article Wah
Freestompboxes.org