SMS Vanilla (Simple MIDI Sequencer) built with Pure Data (Pd Vanilla)

SMS Vanilla est un Séquenceur Midi + un Synthétiseur SF2 / SF3 + un Clavier 7 octaves + une paire Entrée / Sortie Midi qui tourne sous Pure Data (Pd) Vanilla de Miller Puckette

  • Dernière Mise à jour :
    • 18 janvier 2023 — SMS Vanilla v.0.1.50 – Nouveau Moteur de rendu des SoundFonts (Synthétiseur)

Le projet libre SMS Vanilla pour Pure Data (Pd) Vanilla est une adaptation du projet libre SMS pour Purr Data / Pd-L2Ork, deux applications de programmation d’objets visuels multimédia dérivées de Pure Data.
SMS Vanilla est beaucoup plus simple que son grand frère tout en gardant les principales fonctionnalités qu’un performeur musical peut attendre de ce type d’application pour une utilisation en M.A.O. (musique assistée par ordinateur) / Home Studio.
Actuellement le projet SMS Vanilla est au stade de développement « Bêta » dont la première version publique est disponible au téléchargement depuis la mi-décembre 2022.

SOMMAIRE

  • L’Interface Utilisateur (GUI) de SMS Vanilla
  • SoundFonts SF2/SF3 (polices sonores échantillonnées)
  • Principales caractéristiques : Séquenceur Midi / Synthétiseur SF2-3 / Clavier 7 octaves / MIDI-In-Out
  • Conversion automatique fichier MIDI en fichier Audio
  • SMS Vanilla : Téléchargement, Tests et Bogues
  • SMS Vanilla et Pure Data Vanilla / Prérequis
  • Faites-le (par) vous-même (Do It Yourself – DIY) / Patch Diagram

L’Interface Utilisateur (GUI) de SMS Vanilla

Simple MIDI Sequencer (SMS) Vanilla – v.0.1.50 2nd Beta — GNU/Linux OS | Its simple but complete Control Panel (zoomed)

L’interface utilisateur de SMS Vanilla est uniquement en anglais même si celui de Pure Data Vanilla est localisée dans votre langue. Les termes techniques anglais utilisés ici sont assez simples et courants pour être compris par la grande majorité des utilisateurs / performeurs.

SoundFonts SF2/SF3

En appuyant sur le bouton Print-SF-Presets de la section Synthesizer, le performeur peut afficher dans la console de Pure Data Vanilla tous les Presets (voix d’instruments mélodiques et kits de percussion) disponibles de la SoundFont qu’il a chargée dans SMS Vanilla.
Ici pour cette excellente et libre SoundFont Timbres-Of-Heaven_GM-GS-XG-SFX_v.3.4-Final.sf2 (~ 400 Mo) à usage général nous avons le contenu suivant :
– 339 presets répartis sur une 20aine de banques plus ou moins fournies de sons échantillonnés de qualité, avec
. Bank #0 / 128 Presets GM1 (complet),
. Banks #1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 17, 18, 19, 24, 27, 32, 40, #64 (XG), #126 (XG SFX Kits), et
. Bank #128 / 22 Kits de percussion GM1 / XG / GM2 SFX (très bien fournie).

Simple MIDI Sequencer (SMS) Vanilla | Printing loaded SoundFont Presets to Pure Data Console

Quelle que soit la SoundFont utilisée, le performeur peut changer manuellement de Preset et/ou de Bank en utilisant la paire Ch/PC et/ou Ch/BK de la section Synthesizer. La lecture des fichiers SMF le fait automatiquement.
Le dernier preset/canal utilisé (manuel ou automatique) affiche son nom en clair à droite sous le clavier dans la paire LPreset/Ch.

Principales caractéristiques de SMS Vanilla

  • Compatible avec les systèmes d’exploitation libres GNU/Linux, et propriétaires macOS & Windows grâce à Pure Data Vanilla qui est multi-plateforme
  • Compatible avec le Standard General MIDI / GM Level 1 (GM-L1) / The Complete MIDI 1.0 Detailed Specification
  • Compatible ALSA (MIDI) & JACK (Audio + MIDI)
  • MIDI : une Entrée / une Sortie ALSA (à configurer dans Pure Data Vanilla)
  • Audio : une Sortie stéréo ALSA ou JACK (à configurer dans Pure Data Vanilla)
  • SÉQUENCEUR temps réel : Gestion du trafic MIDI brut entrant ou sortant
    • Enregistreur de fichiers SMF Format 0 et Texte (SMS Vanilla)
      • Enregistre le flux MIDI de MIDI-IN puis le sauvegarde dans un fichier .mid ou .txt
    • Lecteur de fichiers SMF Format 0 + 1 et Texte (SMS Vanilla)
      • Joue les fichiers .mid, .kar ou .txt
    • Pause / Continue / Boucle en lecture
    • Chronomètre Enregistrement/Lecture en mm:ss
    • Réglage continue de la Vitesse de 50% (x1/2) à 200% (x2) de la valeur initiale du Tempo
    • Affichage du Dossier/Fichier MIDI en cours d’utilisation (SAVEd: ou LOADed: dans Champ MIDI-)
  • SYNTHÉTISEUR : Gestion des fichiers de banques de sons au format SF2/SF3 – SoundFont Bank v.2 au format propriétaire .WAV et v.3 au format libre OGG Vorbis .oga ou .ogg
    • Utilise FluidSynth et après chargement d’un fichier .SF2 ou .SF3, convertit le flux MIDI reçu en son Audio stéréo
      Fluidsynth est un synthétiseur Midi en temps réel basé sur les spécifications Soundfont (sf2 et sf3). Il peut être utilisé pour rendre l’entrée MIDI ou les fichiers MIDI en Audio. Les événements MIDI sont lus à partir d’un périphérique MIDI. Le son est restitué en temps réel sur le périphérique de sortie Audio.
    • Le performeur dispose d’un Orchestre multitimbral complet de 128 instruments (ou plus) échantillonnés (dont les Drums) sur 16 canaux MIDI
    • Le flux des messages MIDI peut être interne (Séquenceur ou Clavier) ou externe (Midi-IN)
    • Possibilité de changer d’Instrument/Canal et de Bank en direct
    • Volume et Gain Audio (DSP) réglables
    • Vu-Meter stéréo pour monitorer la sortie Audio
    • Boutons Panic! (CC-120), RàZ des Contrôleurs (CC-121) et RàZ des Program Changes# (à 0)
    • Affichage du Dossier/Fichier .SF2 ou .SF3 actuellement utilisé (dans Champ SFn-)
  • CONVERSION MIDI en AUDIO : Un fichier MIDI (SMF Format 0 ou 1) chargé dans SMS Vanilla peut être automatiquement converti en un fichier Audio libre Ogg Vorbis (.oga / .ogg) à condition qu’un fichier SoundFont de type SF2/SF3 ait été préalablement chargé dans l’application
    • Affichage du Dossier/Fichier Audio en cours d’écriture (To-Audio: dans Champ MIDI-)
  • CLAVIER : Entrée/Sortie sur 7 octaves / 84 touches (dynamique/note à la souris)
    • Affiche les notes MIDI reçues (Séquenceur et Midi-IN) qui peuvent être filtrées par Canal MIDI (All ou de 1 à 16)
      • A = All Channels with M-10 = All CH minus Ch10
      • CH 1 to 16 = Selected CH with Mute = All CH minus Selected one and with M-10 = minus Ch10 in add
    • Possibilité de jouer à la souris plusieurs touches en même temps (par exemple un accord)
    • Possibilité de déplacer par octave (+3/-1) le C4 central (note MIDI #60)
  • AFFICHAGE : De nombreuses informations sont présentées par SMS Vanilla au Performeur (voir les aperçus plus haut et plus bas)
    • La console de Pure Data Vanilla affiche aussi des données utiles, par exemple le détail de la Fonte sonore utilisée (tous les presets/voix avec n° de banque, n° de PC, n° et nom du preset)
  • Baie de brassage : En fonction du système d’exploitation utilisé, de la configuration de votre ordinateur et de Pure Data Vanilla, une baie de brassage ALSA (Aconnectgui, etc.) ou ALSA/JACK (QjackCtl, Carla/Catia, Patchage, etc.) peut-être nécessaire.

Un cas d’utilisation de SMS Vanilla :
Conversion d’un fichier MIDI en un fichier Audio

Simple MIDI Sequencer (SMS) Vanilla – v.0.1.40 1st Beta — GNU/Linux OS | Playing and automatically converting a MIDI file (.mid) into an Audio file (.ogg)

Dans l’exemple ci-dessus, SMS Vanilla convertit automatiquement un fichier MIDI en un fichier Audio.

  • Pour ce faire, on charge d’abord un fichier .SF2/.SF3 (SoundFont) dans SMS, puis un fichier MIDI (SMF Format 0 ou 1).
  • On passe les sélecteurs Rsec (Record Security) et M2A (Midi-to-Audio) sur « on » puis on clique sur le bouton REC/Stp qui ouvre le Gestionnaire de fichiers du système d’exploitation. On navigue jusqu’au dossier désiré, on entre un nom pour le fichier, par exemple Audio.oga ou Audio.ogg (format libre) et l’on valide.
  • Cela lance automatiquement la lecture du fichier MIDI et l’enregistrement synchronisé du fichier Audio (direct-to-disk) à partir de la sortie du Synthétiseur (Fichier Midi => Synthé SF2-3 / SoundFont SF2-3 => Fichier Audio).
  • À la fin du fichier MIDI, sa lecture et l’enregistrement Audio s’arrêtent automatiquement et SMS repasse en mode Attente Action Utilisateur.
  • Dans cet exemple sous GNU/Linux, on utilise deux utilitaires MIDI ALSA : ALSA Sequencer (un patchay MIDI) pour connecter la sortie MIDI de SMS Vanilla à l’entrée du Moniteur MIDI de Gnome (qui affiche en langage humain les messages MIDI reçus), et pour connecter la sortie MIDI ‘A’ de l’interface MIDI/USB à l’entrée MIDI de SMS Vanilla.
    Sur l’entrée MIDI ‘A’ de cette interface, on peut connecter un équipement MIDI extérieur, tel qu’un clavier ou tout autre produit, dont les messages seront reconnus par SMS Vanilla. C’est utile par exemple pour enregistrer une performance au clavier physique avec SMS.

– Note 1 : Avant de lancer cette opération de conversion fichier MIDI vers fichier Audio, il faut penser à étalonner le « 0 dB » du VU-Meter stéréo avec le curseur Gain du Synthesizer. Le réglage du niveau du Gain va dépendre au moins du fichier MIDI et de la Fonte sonore utilisés.
– Note 2 : Avec le sélecteur KB-in sur « on », le clavier intégré de 7 octaves affiche en temps réel les notes MIDI du fichier en cours de lecture. On peut filtrer les notes par canal MIDI avec le sélecteur CH (A = All ou individuellement de 1 à 16).
– Note 3 : Le bloc KBi (Keyboard Input) en bas affiche la dernière valeur reçue pour les messages MIDI Pit(ch) = NOTE, Vel(ocity) et PitchBend.

Téléchargement, Tests et Bogues de SMS Vanilla

[ DOWNLOAD ] : ==> SMS Vanilla 2nd Beta v.0.1.50 (~ 13 KB zipped / ~ 53 KB unzipped)

Après téléchargement et décompression, ce fichier patch simple-midi-sequencer-vanilla-0150.pd est à ouvrir dans Pure Data Vanilla v.0.53.1 ou ultérieur : Menu Pd Vanilla -> Fichier -> Ouvrir -> Choisir Dossier puis Nom-Fichier.pd -> Ouvrir.

[ TESTS ] : Cette 2ème version Bêta 0.1.50 du projet Simple MIDI Sequencer Vanilla a été testée avec succès (mis à part quelques bogues d’objets recensés – voir ci-dessous) sous différents systèmes d’exploitation.
Systèmes d’exploitation / distributions libres :
Linux Mint 21 Cinnamon — base Ubuntu / Debian 64-bit,
Ubuntu Studio 22.04 LTS KDE Plasma — base Ubuntu / Debian 64-bit,
Manjaro Linux 22 Cinnamon — base Arch Linux 64-bit, et
Raspberry Pi OS 11 PIXEL/LXDE — base Debian ARM 32-bit, matériel minimum RPi 4B ou RPi 400 avec RAM de 4 Go et de préférence avec CPU overclocké.
Système d’exploitation propriétaire Microsoft :
– Windows 10 22H1 64-bit.

Cette Bêta publique ne pourra pas être testée sous Windows 11 car mes ordinateurs sont trop anciens (13 à 15 ans d’âge) et pas compatibles avec ce nouvel OS propriétaire.
N’ayant pas de Mac, beaucoup trop cher, il n’y aura point de test sous Apple macOS propriétaire !

[ BOGUES ] connus qui seront résolus au fur et à mesure dans de prochaines versions.
Distribution GNU/Linux :
SEQ-Dump : Ne fonctionne pas -> Bogue de l’objet [else/midi]
. Solution trouvée : elle sera mise en place dans la prochaine version de SMS Vanilla.
KEYBOARD : Le clavier n’accepte pas les entrées à la souris en mode zoomé -> Bogue [else/keyboard]
. Cet objet va être mis à jour et sera disponible dans une version à venir de la bibliothèque Else.
SYNTH 0dB Cal : Le curseur n’a pas d’effet réel sur la calibration du VU-Meter stéréo -> Pour l’instant le laisser à 0
. Cette fonction sera réactivée quand [gain( sera disponible pour l’objet [sfont~].
SYNTH Gain : Pour l’instant le curseur Gain est sans effet. Avec la version actuelle de [sfont~] le Gain ne peut être défini que dans la conception de SMS Vanilla -> Bogue [else/sfont~]
. Cet objet va être mis à jour et sera disponible dans une prochaine version de la bibliothèque Else.
Après différents essais je l’ai réglé à 0,3 pour essayer de le rendre compatible avec la majorité des fichiers MIDI et SoundFonts
Microsoft Windows 10 :
Les mêmes que sous GNU/Linux ci-dessus
SYNTH : Pour l’instant, il y a une manipulation simple à faire entre les dossiers des Externals Zexy et Else afin que l’objet [sfont~] et donc le synthétiseur fonctionnent sous Windows -> Bogue [else/sfont~]
. Une des dépendances de [sfont~] va être recompilée et rendue disponible lors d’une prochaine mise à jour de la bibliothèque Else.

SMS Vanilla et Pure Data Vanilla / Prérequis

À ce jour, Simple MIDI Sequencer Vanilla v.0.1.50 Bêta fonctionne sous Pure Data Vanilla avec les versions minimums suivantes :

  • PURE DATA Vanilla avec ses objets et bibliothèques intégrés
    SMS Vanilla nécessite l’utilisation de Pd Vanilla v.0.53.1 ou plus récent
    • Pure Data (Pd) Vanilla v.0.53.1; released December 2022
      A real-time graphical programming environment for live interactive computer music. Pd Vanilla works on GNU/Linux, Apple macOS, and Microsoft Windows
  • EXTERNALS 7x utilisés :
    Afin d’obtenir facilement la dernière version en production des « Externals » pour votre système d’exploitation, vous pouvez passer par :
    Menu Pd Vanilla -> Aide -> Installer des Objets supplémentaires -> Nom de l’Objet ou de la Bibliothèque -> Installer
    • Cyclone v.0.6.1 +
      • Cyclone v.0.6-1; released June 8th 2022
        Cyclone v.0.6-1 needs at least Pd 0.52-0: you have 0.53-1, you’re good!
    • Else v.1.0.0 rc6 +
      • Else v.1.0-0 rc-6; released January 10th 2023
        Else v.1.0-0 rc-6 needs at least Pd 0.53-1: you have 0.53-1, you’re good!
    • Ggee v.0.28 +
    • Jmmmp v.0.61.0 +
    • List-abs v.0.1.0 +
    • Pdogg v.0.25 +
    • Zexy v.2.4.1 as of February 2nd 2022 or newer
    • Note : Depuis SMS Vanilla v.0.1.50, [fluid~] v.2022.08 a été remplacé par [sfont~] qui fait partie de la bibliothèque Else. Pour ce projet, [fluid~] n’était pas la bonne solution multi-plateforme, en particulier sous Windows.

Note : Si lors de la recherche de bibliothèques ou d’objets (Externals) Pure Data (Deken) vous répond qu’il n’en trouve pas pour l’architecture de votre ordinateur, vérifiez et si nécessaire changez celle-ci.
Pour ce faire : Menu Pd Vanilla -> Aide -> Installer des objets supplémentaires -> Menu Deken -> Édition -> Préférences -> Réglage de plateforme -> Passer de Plateforme par défaut à Plateforme définie par l’utilisateur et Entrer le nom de votre architecture (reconnue par Deken) -> Appliquer / OK.
Par exemple sur mon RPi 400 / RPi OS 11 32-bit j’ai du passer de ‘Linux-armv6-32’ (défaut) à ‘Linux-armv7-32’ (utilisateur), mais sous toutes les autres distributions GNU/Linux je suis resté avec ‘Linux-amd64-32’ (défaut).

Mise en garde : Des compilations incomplètes (avec des dépendances logicielles non satisfaites) fournies par la communauté ou réalisées par l’utilisateur du code source de Pure Data Vanilla (quel que soit le système d’exploitation utilisé) peuvent rendre sa configuration MIDI et/ou Audio difficile voire impossible.
Après installation du binaire de Pd Vanilla sur votre ordinateur, assurez-vous que les sections Audio et MIDI sont bien disponibles dans son Menu MEDIA. Si ce n’est pas le cas, vous utilisez sûrement une version boguée de Pure Data Vanilla !
Néanmoins, l’aspect et le contenu exact de ce Menu MEDIA peuvent varier d’un système d’exploitation à un autre, voire d’une distribution GNU/Linux à une autre.

Pure Data Vanilla (Pd) — Check that both Audio & MIDI sections under the Media menu are well available!

Avec Pure Data Vanilla, chacun-e peut librement modifier et adapter SMS Vanilla à ses besoins musicaux spécifiques ! Do It Yourself!

Remarque : SMS Vanilla n’est pas destiné à être un logiciel professionnel mais plutôt un logiciel « fait maison » (DIY – Faites-le par vous-même) servant à démocratiser le codage logiciel en utilisant un environnement libre et gratuit de programmation visuelle que tout le monde peut maîtriser.

=> Have a look at the SMS Vanilla Patch Diagram v.0.1.50

Simple MIDI Sequencer Vanilla (SMS) | A general purpose MIDI Sequencer with embedded Synthesizer & Keyboard functions

Un mot sur WordPress v.6.1

Pour la petite histoire, cet article est le tout premier où j’utilise (enfin) en production l’Éditeur de blocs (Gutenberg) en lieu et place de l’Éditeur classique (Advanced TinyMCE) de WordPress.
Maintenant il n’est plus possible de taper du texte au kilomètre et de le formater après coup, il faut d’abord penser à la forme avant le fond, une vraie hérésie. Des tâches d’édition qui étaient très simples deviennent maintenant extrêmement compliquées. Des possibilités ont disparu qu’il faudrait remplacer en installant des plugins additionnels ou en jouant constamment avec du code HTML (le contraire de la philosophie proclamée par WordPress). Jongler avec le contenu des blocs introduit trop souvent des erreurs de saisie. De plus, sur des ordinateurs peu puissant (comme les Raspberry Pi 4B/400 ou les PC d’entrée de gamme) l’utilisation de WordPress (Gutenberg avec son vorace moteur de rendu) se transforme en un vrai parcours du combattant, etc.
Je ne suis toujours pas du tout, mais alors pas du tout, convaincu par les aspects productivité (ergonomie et vitesse), flexibilité et sécurité de cet éditeur de blocs qui est une vraie galère de première pour tous les rédacteurs, des débutants aux expérimentés !