Peinture Poesie Musique

Alètheia ( ἀλήθεια )

Espace programmation

Première page Page précédente Page suivante Dernière page

mcMidiKeyboard et mcMidiPlayer(18 juin 2026)

(Cette documentation est en cours de mise à jour)

Le code de ces utilitaires est disponible sur github :

https://github.com/dblanchemain/mcMidiKeyboard

https://github.com/dblanchemain/mcMidiPlayer

mcMidiKeyboard est un utilitaire qui permet d'associer les touches d'un clavier midi à des fichiers audios multicanal.

C'est une application autonome réalisée avec Electron.
Electron intègre Chromium et Node.js pour permettre aux développeurs Web de créer des applications de bureau. Compatibles avec macOS, Windows et Linux, les applications Electron fonctionnent sur toutes les architectures prises en charge.

mcMidiKeyboard

Ce programme est sous licence GNU General Public License. Voir plus loin.

Table des matières

  • Historique
  • Installation
  • Présentation
  • Préférences
  • mcMidiPlayer
  • License



    • Historique

      Changements

      Installation

      Pour installer mcMidiKeyboard utiliser le build latest de gitHub.

      Par exemple sous Linux vous pouvez charger mcMidiKeyboard-linux-x64-x.x.x.zip et décompresser cette archive où vous voulez. Vous pourrez alors faire un lanceur sur l'éxécutable mc-midi-keyboard. N'oubliez pas de définir le chemin de cette exécutable dans les Préférences->Externes de Kandiskyscore.

      Si cela n'a pas été déjà fait, vous devrez également disposer de Python3 et faire

      pip install jack sounddevice soundfile numpy scipy
      

      Pour les archives deb, rpm et les autres OS, un script de post intallation se chargera de faire cela.

      mcMidiPlayer s'installe de la même manière.Consultez le README.

      Présentation

      Il existe trois mode de fonctionnement de mcMidiKeyboard :

      • Manuel avec définition directes des associations de fichiers audios avec les touches :

        mcMidiKeyboard

        Mode :

        1shot true : l'audio est lu jusqu'à la fin.

        1shot false : l'audio est lu jusqu'au prochain note-off.

        Les fichiers audios ne subissent aucunes modifications de fréquence, il faut donc autant de fichiers audios que de hauteurs différentes. C'est pour cette raison que mcMidiKeyboard utilise un mécanisme particulier de gestion de banques de sons. Il ne s'agit pas d'imiter le fonctionnement des soundFonts. Une touche du clavier n'indique pas une hauteur mais uniquement un moyen de déclencher un événement audio multicanal.

      • À partir d'un fichier json de descripteur d'un clavier (définition des associations de fichiers audios avec les touches) et ajout possible de nouvelles associations :

        mcMidiKeyboard

        Le dossier pour mcMidiKeyboard est structuré ainsi ;

        
         test_midi :
         		|Audios
         				| test_interp1
         									|objet1.wav
         									|objet2.wav
         									....
         									|objetn.wav
         				| test_interp2
         									|objet1.wav
         									|objet2.wav
         									....
         									|objetn.wav
         				....
         		 test_interp1_bank1.json
         		 test_interp1_bank2.json
         		 
         		 test_interp2_bank1.json
         		 
         		 test_midi.mid
         		 test_banks.xml ( musicXML)
         		 
         		 
         

        Vous pouvez avoir plusieurs claviers si la polyphonie est trop importantes (test_interp1...test_interp2...).

        Ces deux mode permettent de sauvegarder la configuration du clavier.

        
         Format du descripteur JSON
        {
          "nbCanaux": 8,
          "polyphonie": 8,
          "keys: [
        	  {
        	    "key": "60",
        	    "file": "/chemin/vers/fichier.wav",
        	    "gain": 1,
        	    "fadeType": "l",
        	    "fadeIn": 0.1,
        	    "fadeOut": 0.2
        	    "oneShot": true
        	  }
        	  
        	  ......
        	  
        	]
        }
        

        fadeType : q (qt sinusoïde), h (demi-sinus), t (linéaire), l (logarithmique), p (parabolique inversée)

      • À partir d'un dossier qui comporte l'ensemble des fichiers json descripteurs d'un clavier :

        mcMidiKeyboard

        Les paramètres sont définis au moment de l'export à partir de Kandisky-interpretor.

        Ce dossier offre un fichier midi qui peut être lu par mcMidiPlayer. Le fichier musicXML qui l'accompagne est destiné à l'interprète qui peut lire ainsi la partition avec les indications de changement automatique de banque de sons. Ils peut également sélectionner une banque particulière pour les besoins des répétitions, lors d'une performance sur scène par exemple, en utilisant les boutons de navigation dans la barre de menu.

        musescore

      Préférences

      Dans les préférences vous pouvez sélectionner la sortie audio pour votre OS, par exemple Jack sous Linux. Dans tous les cas, il propose "Défaut système".
      mcMidiKeyboard a été testé sur Linux avec 18 canaux. Il devrait être fonctionnel pour Windows et macOS au moin en stéréo. Tout dépend de votre configuration.

      Vous pouvez également choisir un thème ou en définir un nouveau.

      mcMidiPlayer

      mcMidiPlayer est un utilitaire qui permet de lire un fichier midi avec des fichiers audios multicanaux.

      mcMidiPlayer

      Avec mcMidiPlayer vous devez sélectionner le dossier dans lequel se trouve les fichiers audios et les descripteurs de banques de sons comme pour mcMidiKeyboard en mode 3.

      Lors de la lecture, il se chargera de charger les banques de sons en fonction des besoins.

      License

      This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

      This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

      You should have received a copy of the GNU General Public License along with this program; If not, see http://www.gnu.org/licenses.

      Première page Page précédente Page suivante Dernière page