libwildmidi & WildMIDI - Le Bottin des Jeux Linux

libwildmidi & WildMIDI

🗃️ Specifications

📰 Title: libwildmidi & WildMIDI 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Development ➤ Audio Production ➤ Synthesizer 🌍️ Browser version:
🔖 Tags: Development; Audio Production; MIDI-player; Synthesizer 📦️ Package Name: libwildmidi1 | wildmidi
🐣️ Approx. start: 2001-12-01 📦️ Arch package: ✓
🐓️ Latest: 2024-01-28 📦️ RPM package: ✓
📍️ Version: Latest: 💥️ 0.4.5 / Dev: 7b59371 📦️ Deb package: ✓
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: GPL-3 (Player) / LGPL-3 (Library) 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package:
👁️ Visual: Text ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 4 stars 👫️ Contrib.: goupildb & Louis
🎰️ ID: 14275 🐛️ Created: 2014-04-25
🐜️ Updated: 2024-03-05

📖️ Summary

[en]: libwildmidi is a libre, multi-platform library providing a low-resource software synthesizer for use in games and other applications. It is notably used in Quakeforge, GStreamer, Qmmp, OpenTESArena. Wildmidi is a minimalist MIDI player based on libwildmidi. [fr]: libwildmidi est une bibliothèque libre et multi-plateforme fournissant un synthétiseur logiciel très peu gourmand en ressources destiné à être utilisé dans des jeux ou d'autres applications. Il est utilisé notamment dans Quakeforge, GStreamer, Qmmp, OpenTESArena. Wildmidi est un lecteur MIDI minimaliste(à lancer en console) basé sur libwildmidi.

🚦 Entry status

💡 Lights on: ✓ 🦺️ Work in progress:
📰 What's new?: 🦍️ Consistent version New version published (to be updated):
🎨️ Significant improvement: ✓ 🚧️ Some work remains to be done:
🕳️ Not used2: 👔️ Already shown:

🎥️ Videos


🎲️ Gameplay: (on AMIGA) 💥️(0.4.5/202301),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) ts(202xxx) gd(202xxx) gu(202xxx) id(202xxx) r(202xxx) lp(202xxx) ht(202xxx) g(0.4.5/202301) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💰 Commercial: (empty)

🍩️ Resources
(empty, license): [Homepage] [Dev site] 🎬️ g(202xxx)

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

🦣️ Social
Devs (WildMIDI Team [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Chris Ison (chrisisonwildcode) 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (WildMIDI) [fr] [en] [de]]
[FreshFOSS]

📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian 1 2] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🛠️ Title: WildMIDI
🦊️ What's: A libre library providing a lightweight synthesizer for integration into games & a MIDI player
🏡️ -
🐣️ https://github.com/Mindwerks/wildmidi
🔖 #LinuxGameDev #Music #Synthesizer
📦️ #Libre #Arch #RPM #Deb
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🔍️ Reviewed (0.4.5): 😐️⭐ (requires settings)
🥁️ Update: 0.3.6➜0.4.5
⚗️ Consistent version 🦍️
📌️ Changes: https://github.com/Mindwerks/wildmidi
🦣️ From: https://social.tchncs.de/@distrowatch/111892058774039265
📶️ https://github.com/Mindwerks/wildmidi/releases.atom

🎮️ https://www.youtube.com/embed/tVxnLxSfQ0M

🕶️ A view of the WildMIDI MIDI player console launch: it complains about the absence of the configuration file :(

libwildmidi is a libre, multi-platform library providing a low-resource software synthesizer for use in games and other applications. It is notably used in Quakeforge, GStreamer, Qmmp, OpenTESArena. Wildmidi is a minimalist MIDI player based on libwildmidi.

📕 Description [en]

📕🐧"A libre library providing a lightweight software synthesizer for integration into games (among other things) and a MIDI player,"🐧📕

A Software Synthesizer.

WildMIDI is a simple software midi player which has a core software synthesizer (softsynth) library that can be use with other applications.

The WildMIDI library uses Gravis Ultrasound patch files to convert MIDI files into audio which is then passed back to the calling application. The library API is designed so that it is easy to include WildMIDI into applications that wish to include MIDI file playback.

A bit of history

WildMIDI was originally conceived in December 2001 as an experiment to see if MIDI files could be played using the same samples as existing software but with much less overhead. The first versions of the CLI player in 2002 were so successful in reducing the overhead that developers from Quakeforge suggested that WildMIDI could be turned into a library. 2003 saw the first implementations of the WildMIDI library with Quakeforge being used as the test application. The 1st official release of WildMIDI was in 2004. Original develop stopped in 2012 at version 0.2.3.5 but was later forked and refactored in 2013 with version 0.3.0 being released in 2014.

What it does

The WildMIDI library uses Gravis Ultrasound patch files to convert MIDI files into audio which is then passed back to the calling application for further processing or output. The API of the library is designed so that it is easy to include WildMIDI into applications that wish to include MIDI file playback. With multiple MIDI file support you can develop applications to mix several midi files together at the same time and use a different patch set for each MIDI file.

Is this related to Timidity or some other project?
No, WildMIDI was written from scratch by Chris Ison with input from the team at Quakeforge and the assistance of Eric A Welsh. It was further developed by Bret Curtis after the project was abandoned. To of our knowledge there is no shared code between the 2 projects but we may have had similar ideas and influences.

Can I use WildMIDI in my projects?
Yes, providing you follow the Lesser General Public License version 3 for the library, and General Public License version 3 for the demo player.

Who developed WildMIDI?
WildMIDI is a work of love but many have helped to develop concepts and ideas contained within WildMIDI. Chris Ison is the founder and sole developer for over 10 years. There where many from the Quakeforge community that assisted in working out the details of the library. Eric A Welsh developed several re-samplers to experiment with, one of which still remains in the library. There are also many people who have tested, found bugs and submitted patches.


🍥️ Debian :

Minimal MIDI player implementation based on the wildmidi library that can either dump to WAV or playback over ALSA. It is intended to demonstrate the features of libWildMidi, including: reberb, logarithmic volume and high-quality linear or gauss resampling.


🌍️ Wikipedia:

WildMIDI is a free open-source software synthesizer which converts MIDI note data into an audio signal using GUS sound patches without need for a GUS patch-compatible soundcard. WildMIDI, whose aim is to be as small as possible and easily portable, started in December 2001, can act as a virtual MIDI device, capable of receiving MIDI data from any program and transforming it into audio on-the-fly. It is the standard MIDI renderer for the GStreamer framework.

Features

WildMIDI consists of two parts, the library which other applications can link against and a command-line (CLI) player used to show off the features of the library itself.

Library features

• RIFF MIDI file support (.RIF)
• Playback of MIDI format 0, 1 and 2 support (.MID)
• Playback of MIDI-likes: HMI, HMP, MUS and XMI
• Cross Platform: Linux, Windows, OSX, *BSD, *DOS, etc.
• Thread safe
• PCM stream output
• WAV file output
• Linear and Gaussian re-sampling
• Final output reverb engine
• Timidity.cfg compatibility

Player features

• OSS output on Linux/UNIX
• ALSA output on Linux
• WinMM output on Windows
• OpenAL output on all supported platforms
• Sound Blaster output under DOS
• WAV output to filesystem

History

WildMIDI was originally conceived in December 2001 as an experiment to see if MIDI files could be played using the same samples as existing software but with less overhead. The first release of the CLI player was in 2002 and thanks to the support of the Quakeforge developers, it was later split into a library and player. In 2003, Quakeforge started using the library in their project. The first official release of WildMIDI was in 2004. After many updates, Chris Ison stopped development in February 2012 with version 0.2.3.5 and has been missing since then. WildMIDI was forked in 2013 by Bret Curtis who now maintains the project. A re-factored WildMIDI was released as version 0.3.0 in 2014. The next release, 0.4.0 was released in July 2016 which added additional functionality such as support for MIDI-like file formats, their conversions to MIDI and additional APIs.

📕 Description [fr]

Une bibliothèque libre fournissant un synthétiseur logiciel léger pour être intégré dans des jeux (notamment) et un lecteur MIDI, par la WildMIDI Team, initié par Chris Ison (chrisisonwildcode), aidé par la communauté Quakeforge, et d'Eric A Welsh pour les ré-échantillonneurs.

libwildmidi est une bibliothèque libre et multi-plateforme fournissant un synthétiseur logiciel très peu gourmand en ressources destiné à être utilisé dans des jeux ou d'autres applications. Il est utilisé notamment dans Quakeforge, GStreamer, Qmmp, OpenTESArena. Wildmidi est un lecteur MIDI minimaliste (à lancer en console) basé sur libwildmidi.


Un synthétiseur logiciel.

WildMIDI est un simple lecteur midi logiciel qui possède une bibliothèque de synthétiseur logiciel (softsynth) qui peut être utilisée avec d'autres applications.

La bibliothèque WildMIDI utilise les fichiers de patchs Gravis Ultrasound pour convertir les fichiers MIDI en audio qui est ensuite transmis à l'application appelante. L'API de la bibliothèque est conçue de manière à ce qu'il soit facile d'inclure WildMIDI dans des applications qui souhaitent inclure la lecture de fichiers MIDI.

Un peu d'histoire

Wildmidi a été conçu à l'origine en Décembre 2001, comme une expérimentation pour voir si les fichiers MIDI pourraient être joués en utilisant les mêmes échantillons que des logiciels existants, mais avec beaucoup moins de charge processeur. Les premières versions du lecteur CLI en 2002 ont si bien réussi à réduire cette charge que les développeurs de Quakeforge ont suggéré que Wildmidi pourrait être transformé en une bibliothèque.
2003 a vu les premières implémentations de la bibliothèque Wildmidi avec Quakeforge utilisé en tant qu'application de test.
Le 1er lancement officiel de Wildmidi a été effectué en 2004. Le développement de la version d'origine s'est arrêté en 2012 à la version 0.2.3.5, mais a été plus tard forké et remanié en 2013 avec la version 0.3.0 sortie en 2014.

Ce qu'il fait

La bibliothèque Wildmidi fait appel à des patchs Gravis Ultrasound pour convertir ses fichiers MIDI en audio qui sont ensuite transmis à l'application d'appel soit pour un traitement ultérieur soit pour une sortie. L'API de la bibliothèque est conçu de sorte qu'il soit facile d'intégrer Wildmidi dans les applications (comme les jeux) qui souhaitent inclure une lecture de fichiers MIDI.
Avec le support de multiples fichiers MIDI, vous pouvez développer des applications pour mélanger plusieurs fichiers MIDI simultanément et utiliser un ensemble de patchs différents pour chaque fichier MIDI.

Est-ce lié à Timidity ou à un autre projet ?

Non, WildMIDI a été écrit à partir de zéro par Chris Ison avec l'aide de l'équipe de Quakeforge et l'assistance d'Eric A Welsh. Il a été développé par Bret Curtis après l'abandon du projet. A notre connaissance, il n'y a pas de code partagé entre les deux projets mais il est possible que nous ayons eu des idées et des influences similaires.

Puis-je utiliser WildMIDI dans mes projets ?

Oui, à condition de respecter la Lesser General Public License version 3 pour la bibliothèque, et la General Public License version 3 pour le lecteur de démonstration.

Qui a développé WildMIDI ?

WildMIDI est une œuvre d'amour, mais de nombreuses personnes ont contribué à développer les concepts et les idées contenus dans WildMIDI. Chris Ison est le fondateur et le seul développeur depuis plus de 10 ans. De nombreux membres de la communauté Quakeforge ont aidé à mettre au point les détails de la bibliothèque. Eric A Welsh a développé plusieurs ré-échantillonneurs pour expérimenter, dont l'un est toujours dans la bibliothèque. De nombreuses personnes ont également testé, trouvé des bugs et soumis des correctifs.


🍥️ Debian :

Un lecteur MIDI minimaliste basé sur la bibliothèque Wildmidi (libwildmidi) pouvant soit exporter au format WAV ou lire sur le serveur ALSA.
Il est destiné à démontrer les caractéristiques de libWildMidi, y compris : la réverb, le volume logarithmique et le rééchantillonnage linéaire ou gaussien de haute qualité.

Il/elle est utilisé(e) notamment par les jeux (dans le Bottin): QuakeForge,

🚧️ Installation ➜ 🚀️ Launching [fr]

⚙️ Installation à partir du binaire

📦️ Installation à partir du paquet Manjaro/Arch :
• Il est dans les dépôts Manjaro/Arch (souvent dans sa dernière version), il suffit d'installer le(s) paquet(s).


📄️ Installation à partir du source

• Source non testé.


🚀️ LANCEMENT DE L'UTILITAIRE

▸ Classique :
• Si vous l'avez installé à partir d'un paquet, ou l'avez compilé puis installé dans les répertoires système, saisissez en console : $ wildmidi

• Aide : ajoutez le paramètre : -h ou --help

🕵️ Test [fr]

📜️ Préambule :
⚬ 1ere édition : le 8 Février 2024 sous Manjaro. Par : goupildb. ⏱️ Durée du test : 2 minutes. 🎯️ Objectif : tester son fonctionnement/évolution.


🫕️ Installation :
▸ (✔ v. 0.4.5) Paquet Arch/AUR : FONCTIONNEL.


🧪️ Tests effectués :
‣ 🧫️ Conditions du test :
⚪️ Je manque de temps pour un test sérieux de cet outil. Ce test n'a consisté qu'à vérifier que l'outil démarrait et qu'aucun bug apparent ne survenait.

‣ 🧪️ Résultat des tests :
🟢️ Il semble bien fonctionner.
En console : $ wildmidi '/mnt/DDprc/Download/youre only lonely L.mid'
renvoi une erreur "System Error (_WM_BufferFileImpl:224) /etc/wildmidi/wildmidi.cfg (Unable to stat) : No such file or directory"
mais je pense qu'il s'agit simplement d'un fichier wildmidi.cfg à initialiser
🟠️ Il est regrettable néanmoins que ce fichier ne soit pas installé par défaut quelque-part, d'autant qu'il n'est pas précisé ce qu'il doit contenir.


🕹️ Conclusion :
Impression globale : 👍️👎️ (mitigée)
🟠️ Certainement un bon outil, mais livré avec une documentation minimaliste (le man et la commande “-h”) et une configuration par défaut qui ne permet pas de lancer un fichier MIDI sans mettre les mains dans la documentation et des modifications de paramétrage.
❤️ Un grand merci (notamment pour la version Linux !) néanmoins à ses auteurs !