[LINUX] Vérifier les points lorsque MIDI ne fonctionne pas dans un programme utilisant SDL_mixer

Dans le jeu Simutrans, la BGM est un fichier MIDI, et j'étais en difficulté car la BGM ne fonctionnait pas, donc si je cherchais une solution, j'ai utilisé SDL_mixer sous Linux. Je peux le résoudre avec une solution commune (vraisemblablement) quand je suis là-bas, et je n'ai pas pu trouver d'informations japonaises, donc je vais les partager.

Environnement d'exploitation

Comme mentionné ci-dessus, je n'ai essayé qu'un seul jeu cette fois. En plus de cela, l'environnement qui a bien fonctionné cette fois est le suivant.

C'est aussi une histoire sous l'environnement Pulse Audio.

Points de confirmation

Ti Midity ++ ou Fluid Synth

Tout d'abord, vous devez en inclure au moins un pour pouvoir lire du MIDI sous Linux. Dans ce cas, j'ai vérifié un par un avec les deux inclus, mais comme chacun fonctionnait normalement, il semble que l'un ou l'autre fonctionne bien. De plus, vous ne pouvez pas simplement l'installer, vous devez en faire un démon avec timidity -iA ou fluidsynth -a pulseaudio -malsa_seq -o midi.autoconnect 1 [SOUND_FONT]. Ajustez les options individuelles en fonction de votre environnement.

Police sonore

Je pense que cela dépend du système d'exploitation, mais au moins dans ArchLinux, même si TiMidity ++ ou FluidSynth est installé, les polices sonores ne seront pas incluses, il est donc nécessaire de l'inclure séparément. Lors de la conversion de la police sonore installée en démon, spécifiez-la dans l'argument tel que / etc / timidity ++ / timidity.conf dans le cas de TiMidity ++ et dans le cas de FluidSynth.

SDL_SOUNDFONTS Lors de l'exécution d'un programme à l'aide de SDL_mixer, spécifiez le chemin de la police audio définie ci-dessus comme SDL_SOUNDFONTS = / chemin / vers / soundfont.sf2. / Programme. Je ne l'ai pas essayé, mais je pense que c'est correct de le définir avec .bashrc etc.

muet

Il devrait être joué par le travail jusqu'à présent, mais s'il ne joue pas, veuillez vérifier s'il est coupé au cas où. Dans ce cas, il a été bien joué jusqu'à présent.

finalement

L'information sur SDL_SOUNDFONTS n'a pas été trouvée et a été installée, et quand elle a été trouvée, elle a été écrite comme information lors de la combinaison de Fluid Synth avec SDL_mixer, donc c'était difficile à trouver. Comme je l'ai écrit dans l'environnement d'exploitation, cela peut avoir changé dans SDL2 car c'est ** une histoire en SDL au lieu de SDL2 **.

La source d'information

Recommended Posts

Vérifier les points lorsque MIDI ne fonctionne pas dans un programme utilisant SDL_mixer
Commande lorsque l'arrêt de l'ACPI ne fonctionne pas dans VirtualBox
Lors de l'écriture d'un programme en Python
Lorsque le programme pip installé sur Mac / Marvericks ne fonctionne pas
Vérifiez les éléments lorsque le module python importé ne fonctionne pas comme prévu
Erreur lors de l'appel du module tkinter dans un éditeur de texte ne fonctionne pas comme prévu
Créez un fichier MIDI en Python en utilisant pretty_midi
Lorsque la spécification générique ne fonctionne pas avec pylint
Correctif lorsque la recherche de texte intégral ne fonctionne pas dans l'environnement local GAE / Python
Il y a un modèle que le programme ne s'est pas arrêté lors de l'utilisation du thread Python
[Python] Précautions quand cela ne fonctionne pas même si TimedRotatingFileHandler est défini dans basicConfig en python2
Vérifier quand la version ne change pas dans pyenv
Résumé des points à garder à l'esprit lors de l'écriture d'un programme qui s'exécute sur Python 2.5
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
Vérifier quand le conteneur Docker ne se connecte pas à Internet
Problèmes lors de l'utilisation d'Elasticsearch comme source de données dans Redash
Points (personnels) lors de l'utilisation de ctypes
Lors de l'incrémentation de la valeur d'une clé qui n'existe pas
J'ai un TypeError: l'objet 'int' n'est pas itérable lors de l'utilisation de keras
[Python] Apparaît lors de l'utilisation de iterdir () etc. [Errno 20] Pas un répertoire: '*** / .DS_Store'
Solution lorsque la couverture de fond de VS Code pour Linux ne fonctionne pas
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python