VMPK 0.3.0
Introduction
VMPK est un générateur et récepteur d'événements MIDI. Il ne produit aucun son par lui-même, mais peut être utilisé pour commander un synthétiseur MIDI (matériel ou logiciel, interne ou externe). Vous pouvez utiliser le clavier de l'ordinateur pour jouer des notes, mais aussi la souris. Vous pouvez utiliser le clavier virtuel pour visualiser les notes jouées par un autre instrument ou un lecteur de fichiers MIDI. Pour ce faire, connectez le port de sortie de votre instrument au port d'entrée de VMPK.
Gymnopédie No. 1 by E. Satie (1866–1925) jouée par MuseScore et VMPK sur Linux
VMPK a été testé sur Linux, Windows et Mac OSX, mais doit pouvoir être compilé pour d'autres systèmes. Si vous compilez VMPK pour un autre système, faites le savoir à l'auteur.
Le Virtual Keyboard par Takashi Iway (vkeybd) a inspiré le développement de VMPK. C'est un logiciel formidable qui nous a servi pendant des années. Merci!
VMPK utilise un framework d'interface graphique moderne : Qt5, qui permet d'excellentes performances et fonctionnalités. Drumstick RT fournit les fonctionnalités d'entrée/sortie MIDI. Ces deux frameworks sont libres et indépendants de la plateforme, disponible pour Linux, Windows et Mac OSX.
Les correspondances du clavier alphanumérique peuvent être configurées depuis l'interface du programme, et les paramètres sont stockés dans des fichiers XML. Quelques fichiers de correspondance pour les claviers espagnols, allemands, et français sont livrés avec VMPK, traduits depuis ceux de VKeybd.
VMPK peut envoyer des changements de programme et des controllers au synthétiseur MIDI. Les définitions pour différents standards et matériels peuvent être fournies grâce à des fichiers .INS, le même format utilisé par QTractor et TSE3. Ce format a été développé par Cakewalk et est utilisé par Sonar.
Ce logiciel est a un stade de développement alpha. Voir le fichier TODO pour une liste des fonctionnalités à venir. N'hésitez pas à contacter l'auteur pour poser des questions, rapporter des bugs ou proposer de nouvelles fonctionnalités. Vous pouvez utiliser le tracker sur le site du project SourceForge.
Copyright (C) 2008-2023, Pedro Lopez-Cabanillas <plcl AT users.sourceforge.net>
Virtual MIDI Piano Keyboard est un logiciel libre sous licence GPL v3.
Pour commencer
Concepts MIDI
MIDI est un standard industriel pour connecter des instruments de musique. Le principe est de transmettre les actions effectuées par un musicien jouant d'un instrument à un autre instrument. Les instruments de musique MIDI ont en général deux prises DIN nommées MIDI IN et MIDI OUT. Parfois il y a une troisième prise nommée MIDI THRU. Pour connecter un instrument MIDI à un autre, on utilise un câble MIDI branché sur la prise MIDI OUT de l'instrument qui envoie, et à la prise MIDI IN de l'instrument qui reçoit. Vous pouvez trouver plus d'informations et des tutoriels comme celui ci sur le Web.
Il y a aussi des interfaces MIDI matérielles pour les ordinateurs, fournissant des ports MIDI IN et MIDI OUT, auxquels vous pouvez attacher des câbles MIDI pour communiquer avec des instruments MIDI externes. Sans utiliser d'interface matérielle, un ordinateur peut aussi utiliser des logiciels MIDI. Par exemple, VMPK fournit un port MIDI IN et un port MIDI OUT. Vous pouvez brancher des câbles MIDI virtuels aux ports de VMPK pour connecter le programme à d'autres programmes ou aux ports MIDI physiques de l'ordinateur. Plus de détails seront donnés par la suite. D'ordinaire, vous voudrez connecter la sortie MIDI de VMPK à l'entrée d'un synthétiseur qui transforme du MIDI en son. Une autre destination peut être un moniteur MIDI qui traduit les événements MIDI en texte "lisible". Ceci peut vous aider à comprendre les informations transmises par le protocole MIDI. Sous Linux, vous pouvez utiliser KMidimon et sous Windows MIDIOX.
VMPK ne produit aucun son. Vous devez utiliser un synthétiseur pour entendre les notes jouées. Je recommende d'utiliser QSynth, une interface graphique pour Fluidsynth. Sur Windows, Il est aussi possible d'utiliser "Microsoft GS Wavetable SW Synth" fournit avec toutes les versions de Windows ou une meilleure alternative comme CoolSoft Virtual MIDI Synth. Bien sûr, un synthétiseur MIDI externe est une approche encore meilleure.
Correspondance des touches du clavier et définition des instruments
VMPK peut vous aider à changer les sons de votre synthéthiseur MIDI, mais seulement si vous fournissez une définition des sons du synthétiseur. Ces définitions sont des fichiers texte avec l'extension .INS, le format utilisé par Qtractor (Linux), et Sonar (Windows).
Quand vous lancez VMPK pour la première fois, vous pouvez ouvrir la boite de dialogue Préférences et choisir un fichier de définitions, puis choisir le nom de l'instrument parmi ceux fournis par le fichier de définitions. Un fichier de définitions est installé par défaut dans le répertoire data de VMPK ("/usr/share/vmpk" sous Linux, et "C:\Program Files\VMPK" sous Windows) nommé "gmgsxg.ins", qui contient les définitions pour les standards General MIDI, Roland GS et Yamaha XG. C'est un format très simple et vous pouvez utiliser un éditeur de texte, pour éditer ou créer un nouveau fichier. Vous pouvez trouver une liste de définitions sur le serveur FTP cakewalk.
Depuis la version 0.2.5, vous pouvez importer des fichiers Soundfont (au format .SF2 ou DLS) en tant que définition d'instruments, en utilisant le menu Fichier->Importer un SoundFont.
Vous pouvez aussi personnaliser la correspondance des touches du clavier alphanumérique. Par défaut, la correspondance couvre deux octaves et demi sur un clavier QWERTY, mais il y a des fichier de configuration adaptés à votre clavier dans le répertoire data. Vous pouvez aussi définir vos propres attributions des touches dans Edition->Attribution des touches. Vous pouvez aussi sauver et charger ces préférences dans des fichiers XML. Le dernier fichier utilisé sera chargé au prochain démarrage de VMPK. En fait, toutes vos préférences, la banque MIDI sélectionnée, le programme, les valeurs de controlleurs seront sauvés et restaurés au prochain démarrage.
Connection MIDI et câbles MIDI virtuels
Sous Windows, VMPK se connecte automatiquement à la sortie MIDI par défaut, qui est d'ordinaire "Microsoft GS Wavetable Synth", que l'on trouve sous toutes les versions de Windows. Ce synthétiseur MIDI produit des sons de qualité médiocre et souffre d'une grande latence. Une alternative de meilleure qualité (et gratuite) est CoolSoft Virtual MIDI Synth.
Pour connecter du matériel MIDI, vous utilisez des câbles MIDI physiques. Pour connecter des logiciels MIDI vous avez besoin de câbles virtuels. Sous Windows, vous pouvez utiliser des câbles virtuels tels que MIDI Yoke, Maple, LoopBe1 ou loopMIDI.
MIDI Yoke installera le pilote et une interface pour changer le nombre de ports disponibles (vous devrez redémarrer l'ordinateur après avoir changer ce paramètre). MIDI Yoke fonctionne en envoyant chaque événement envoyé sur un port OUT au port IN correspondant. Par exemple, VMPK peut connecter le port OUT au port 1, et un autre programme comme QSynth peut lire l'événement sur le port 10 .
En utilisant MIDIOX, vous pouvez ajouter des routes entre les ports MIDI Yoke et les autres ports MIDI. Ce programme fournit aussi d'autres fonctions comme un lecteur de fichier MIDI. Vous pouvez écouter des morceaux joués par un synthétiseur MIDI et voir les notes jouées en même temps dans VMPK (un canal à la fois seulement). Pour ce faire, vous pouvez utiliser la fenêtre "Routes" de MIDIOX et connecter le port 1 IN au port du synthétiseur de Windows. Configurez aussi le lecteur MIDI pour envoyer ses événements sur le port 1 de MIDI Yoke. Enfin, configurez le port d'entrée de VMPK pour lire les événements depuis le port 1 de MIDI Yoke. Le lecteur va donc envoyer les événements sur le port OUT 1, qui seront routés à la fois sur le port IN 1 et sur le synthétiseur.
Sous Linux, le séquenceur ALSA fournit les câbles virtuels. Les ports sont créés dynamiquement lorsque vous démarrez un programme, il n'y en a donc pas un nombre fixe comme avec MIDI Yoke. L'utilitaire en ligne de command "aconnect" permet de connecter et déconnecter les câbles MIDI virtuels entre n'importe quel port, matériel ou applicatif. Un autre programme pour faire de même est QJackCtl. Le but de ce programme est de controller le démon Jackd (démarrer, arrêter et surveiller l'état). Jack fournit des cables virtuels pour connecter les ports de votre carter son et les programmes audio de la même façon que des câbles virtuels MIDI mais pour l'audio.
Connections QJackCtl sous Linux
Foire aux questions
Comment afficher 88 touches sur le piano?
Depuis VMPK 0.6.0, vous pouvez utiliser la boîte de dialogue des paramètres pour choisir ce nombre exact de clés.
Il n'y a pas de son
VMPK ne produit pas de son par lui même. Vous devez utiliser un synthétiseur MIDI.
Certaines touches sont silencieuses
Lorsque vous sélectionnez le canal 10 sur un synthétiseur MIDI standard, il joue des sons de percussions associés à certaines touches seulement. Sur les canaux mélodiques, (pas le canal 10) vous pouvez sélectionner des instruments avec une certaine tessiture.
L'option "Grab Keyboard" echoue
C'est un problème connu sous Linux. Cette fonctionnalité fonctionne sous KDE3/4 avec Kwin; elle fonctionne aussi avec Enlightenment et Window Maker, mais ne marche pas avec Metacity et Compiz utilisés souvent sous Gnome. Utiliser cette option ne permet pas d'utiliser le menu sous sous GTK2. Il n'y a pas de solution connue à ce problème excepté eviter les scénarios connus si vous avez vraiment besoin de cette fonctionnalité.
Les noms d'instruments ne correspondent pas aux sons rééls
Vous devez fournir un fichier .INS qui décrit exactement les instruments de votre synthétiseur ou de votre soundfont. Le fichier inclu (gmgsxg.ins) contient des définitions pour les standards GM, GS et XG seulement. Si votre synthétiseur se comporte différement vous devez utiliser un autre fichier .INS ou le créer vous même.
Syntaxe des fichiers de définitions d'instruments, fichiers (.INS) ?
Une explication du format INS est disponible à cette adresse.
Puis je convertir mes définitions d'instruments pour vkeybd en fichier .INS ?
Bien sûr. Utilisez le script AWK "txt2ins.awk". Vous pouvez même utiliser l'utilitaire sftovkb livré avec vkeybd pour créer un fichier .INS depuis une soundfont, mais il y a aussi une fonction pour importer une liste d'instruments depuis une soundfont DF2 ou DLS dans VMPK.
$ sftovkb SF2NAME.sf2 | sort -n -k1,1 -k2,2 > SF2NAME.txt $ awk -f txt2ins.awk SF2NAME.txt > SF2NAME.ins
Vous pouvez trouver le script AWK "txt2ins.awk" dans le répertoire data de VMPK
Téléchargement
Les dernières sources ainsi que fichiers pour Windows et Mac OSX sont disponibles sur SourceForge.
- Windows 64bit: vmpk-0.9.0-win-x64-setup.exe (36.1 MB)
- Windows 32bit: vmpk-0.9.0-win-x86-setup.exe (23.2 MB)
- macOS X Intel 64bit: vmpk-0.9.0-mac-x64.dmg (14.5 MB)
- Linux (64 bit): vmpk-0.9.0-linux-x86_64.AppImage (32 MB)
- C++ Sources: vmpk-0.9.0.tar.bz2 (449.6 kB)
Si vous distribuez un paquet VMPK pour une autre distribution, envoyez moi un email et j'ajouterai un lien vers votre site ici.
Installation depuis les sources
Télécharger les sources depuis https://sourceforge.net/projects/vmpk/files. Détarrez et changez de répertoire.
$ cd vmpk-x.y.z
Vous pouvez choisir CMake ou Qmake pour préparer votre système de build, mais qmake est destiné seulement au développement et au test.
$ cmake . or $ ccmake . or $ qmake
Ensuite, compilez le programme :
$ make
Si le programme compile correctement, vous pouvez l'installer :
$ sudo make install
Configuration requise
Pour compiler et utiliser VMPK, vous devez avoir Qt 5.1 ou plus récent. (installer le paquet -devel pour votre système, ou téléchargez l'édition Open Source depuis qt.io, anciennement Trolltech.)
Drumstick RT. Il utilise ALSA sous Linux, WinMM sous Windows et CoreMIDI sous Mac OSX, qui sont les systèmes MIDI natifs de chaque plateforme.
Le système de build est basé sur CMake.
Vous devez aussi avoir le compilateur GCC C++. MinGW est un portage pour Windows.
De manière optionnelle, vous pouvez créer un programme d'installation pour Windows en utilisant NSIS.
Notes aux utilisateurs de Windows
pour compiler les sources sous Windows, vous devez télécharger le .bz2 ou le .gz et le décompresser avec un utilitaire tel que 7-Zip.
Pour configurer les sources, utilisez qmake (de Qt4) ou CMake. La variable d'environnement PATH doit contenir les répertoires des binaires de Qt4, des binaires de MinGW et aussi des binaires de CMake. Le programme CMakeSetup.exe est la version graphique de CMake pour Windows.
Pour des renseignements sur l'utilisation du programme sous Windows, voir MIDI connections.
Notes aux utilisateurs de Mac OSX
Vous pouvez télécharger un bundle précompilé, incluant Qt4, sur la page de téléchargement. Si vous préférez installer depuis les sources, CMake ou Qmake peuvent être utilisé pour compiler l'application liés aux librairies du système. Vous pouvez utiliser Qt5 de qt.io ou un paquet distribué par Homebrew.
Le système de build est configuré pour créer un Universal Binary (x86+ppc) dans un bundle d'application. Vous devez avoir les outils de développement Apple ainsi que le Qt5/a>.
Pour compiler VMPK en utilisant les Makefiles, générés par qmake :
$ qmake vmpk.pro -spec macx-g++ $ make optionnellement: $ macdeployqt build/vmpk.app
Pour compiler VMPK en utilisant les Makefiles, générés par CMake :
$ cmake -G "Unix Makefiles" . $ make
Pour créer le projet Xcode :
$ qmake vmpk.pro -spec macx-xcode ou $ cmake -G Xcode .
Si vous avez besoin de quelque chose pour produire du son, jettez un oeil sur SimpleSynth, FluidSynth (dans Fink). Et pour du routing MIDI, il y a aussi MIDI Patchbay.
Notes aux utilisateurs avancés
Vous pouvez demander quelques optimisations au compilateur. Il y a deux façons. D'abord, utiliser un type de build prédéfini.
$ cmake . -DCMAKE_BUILD_TYPE=Release
Le type CMake "Release" utilise les flags : "-O3 -DNDEBUG". Les autres types prédéfinis sont "Debug", "RelWithDebInfo", et "MinSizeRel". L'autre manière est de choisir vos flags vous même.
$ export CXXFLAGS="-O2 -march=native -mtune=native -DNDEBUG" $ cmake .
Vous devez choisir les meilleurs CXXFLAGS pour votre système.
Si vous souhaitez installer le programme à un autre endroit que le répertoire par défaut (/usr/local), utilisez l'option :
$ cmake . -DCMAKE_INSTALL_PREFIX=/usr
Remerciements
En plus des outils déjà cités, VMPK utilise le travail des projets libres suivants.
- de Qtractor, par Rui Nuno Capela
Instrument definition data classes - de QSynth, par Rui Nuno Capela
Knob widget - Icône et logo par Theresa Knott
- Cette page utilise le template libre Wordsworth 3 par Lee Baillie
- Cette page utilise Lightbox2 par Lokesh Dhakar
Merci beaucoup !