Chargement...
 
Skip to main content

4 - Toutes les autres applications, les émulateurs...


Sortie de adljack 1.0, synthétiseur chiptunes FM

Articles: 73 France
Salut. Je fais passer un petit message pour faire connaître mon logiciel adljack, synthétiseur Yamaha OPL3 et OPN2.
Je vais mettre celui ci à disposition en version 1.0 dans les prochains jours.

D'ores-et-déjà le logiciel et ses sources sont disponibles ici:
https://github.com/jpcima/adljack

En gros ce logiciel est une version du lecteur audio ADLMIDI pilotable par interface MIDI. Il est bâti sur le code libADLMIDI de Vitaly Novichkov et Joel Yliluoma, auquel j'ai contribué des améliorations de ses capacités temps réel.

On peut faire de la FM en 2 ou 4 opérateurs, avec 8 formes d'ondes et 6 algorithmes.
Quantitativement, si cela ne vaut pas un DX7, l'OPL3 est une sythèse FM rétro "lo-fi" qui a été employée dans pas mal de jeux de l'époque MSDOS.
Le synthétiseur peut charger des fichiers "WOPL", un format d'instrument universel, dont un certain nombre sont livrés avec le logiciel. On peut en construire d'autres avec le logiciel OPL3BankEditor réalisé par l'auteur de WOPL, et on peut également convertir les banques musicales d'un certain nombre de jeux. (DOOM, Descent...)

Quelques choses à savoir:
  • il y a une fonctionnalité de "multi-chip", c'est-à-dire une faculté à élever le niveau de polyphonie en répartissant les voix sur plusieurs CI émulés.
  • le logiciel inclut les émulateurs "Nuked" qui ont été élaborés par rétro-ingénierie des CI originaux. Ces émulations sont très fidèles, mais gourmandes en calcul. On peut basculer sur des versions plus légères, telles que l'émulation Dosbox.

Ces derniers jours, j'ai ajouté au logiciel une interface graphique en mode console.
N'hésitez pas à tester et à me donner vos avis.
Articles: 1514 France
Hello,

Cool, ça me donne envie de tester !

Par contre, chez moi, c'est mal barré 😊

Copy to clipboard
erwan@menhir:~/adljack/build$ cmake -DCMAKE_BUILD_TYPE=Release .. CMake Error at CMakeLists.txt:1 (cmake_minimum_required): CMake 3.6 or higher is required. You are running version 3.5.1


Je suis sur un Ubuntu Mate (base de stretch/sid) + Kxstudio.

Le temps de l'upgrade devrait arriver prochainement 😊

A+
Erwan
Articles: 73 France
Avoir la 3.6 n'est pas nécessairement un pré-requis obligatoire. J'ai mis ce numéro de version simplement parce que je sais pas trop lequel mettre, alors je prends celui qui est en stable chez Debian.

J'ai mis à l'instant un correctif de sorte à ce que cmake soit accepté à partir de 3.5.
Peut être que ça passera, ou peut être pas, tu me diras.
Articles: 1514 France
Hello,

J'avais déjà tenté le truc en fait 😊

Maintenant, ça coince là-dessus :

Copy to clipboard
-- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so !! Feature summary: !! Curses: TRUE !! PdCurses: FALSE !! Jack: 1 !! Pulseaudio: 1 !! virtualMIDI: OFF CMake Error at thirdparty/ring-buffer/CMakeLists.txt:15 (message): compiler does not support at least C++14


A+
Erwan
Articles: 73 France
Ouaip là c'est cuit par contre. Il faut passer sur un gcc un peu plus récent. Je verrai si j'ai moyen de sortir la 1.0 en variante binaire.
Articles: 1514 France
Bouh ;(

Ok d'accord ! Je vais essayer sur une Librazik à l'occase 😊

A+
Erwan
Articles: 73 France
Bouh ;(

Ok d'accord ! Je vais essayer sur une Librazik à l'occase 😊


Je vais voir si je peux supporter la version de C++ ancienne.
J'ai au moins un élément bloquant, mais y a peut être moyen de s'en débrouiller en se creusant la ciboule.

C'est 3x rien si ça se trouve, je fais pas de promesse.
Quelle version de gcc?
Articles: 1514 France
Coule 😊

Copy to clipboard
erwan@menhir:~$ gcc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609

Articles: 73 France
Potentiellement c'est bon maintenant, si je ne dis pas de sottise. A tester.
Articles: 1514 France
Copy to clipboard
[ 85%] Linking CXX executable adljack /usr/bin/ld: CMakeFiles/adljack.dir/sources/common.cc.o: undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status CMakeFiles/adljack.dir/build.make:228: recipe for target 'adljack' failed make[2]: *** [adljack] Error 1 CMakeFiles/Makefile2:179: recipe for target 'CMakeFiles/adljack.dir/all' failed make[1]: *** [CMakeFiles/adljack.dir/all] Error 2 Makefile:149: recipe for target 'all' failed make: *** [all] Error 2


Ça ch*e au linkage à présent 😊
Articles: 73 France
Pas de panique on va y arriver! ça devrait être bon là.
Articles: 1514 France
100% Built target adlrt

Youhou ! Bien joué 😊

Moyen de tester le biniou sans :

Copy to clipboard
cmake --build . --target install


?
Articles: 73 France
Oui tu peux lancer les programmes à partir de l'emplacement où ils sont, ça ne change rien.

L'installation ne fait que copier les entrées de menu et les banques.

Ces banques, tu peux y accéder dans les dossiers fm_banks sous thirdparty/lib(ADL,OPN)MIDI.
Articles: 1514 France
Hello,

Ok super merci ! Je vais tester le truc.

A+
Erwan
Articles: 1514 France
Hello,

Les premiers tests ne sont pas très concluants 😊

Je parviens à connecter audio et midi et à changer de sons ! Déjà, ça fait du bruit, c'est déjà pas mal 😊

Par contre, l'interface en ncurses ne s'affiche pas bien.

Adljack

De plus, j'ai plein de xruns alors que dans mon usage quotidien (ardour, helm, zynaddubfx...), le soucis ne se pose pas.

A+
Erwan
Articles: 73 France
Aïe ouille! pour ce qui est de ncurses, j'ai une solution semi satisfaisante pour l'instant présent.

Tu peux passer l'option
Copy to clipboard
-DPREFER_PDCURSES=ON
au cmake. Ca permettra au programme de se lancer dans sa fenêtre X11 indépendante, et il ne devrait pas y avoir de souci de couleurs.

L'auteur de PDCurses a identifié un problème dans la gestion de couleurs de mon code dont je n'ai compris tout le détail. On dirait que l'ancien ncurses manifeste un problème semblable.

Tu peux m'indiquer ta distribution et sa version précise, de sorte à tester de mon côté ?

--

xruns: c'est sous la version adljack, adlrt, ou les deux ?
Il y a un des émulateurs du lot, le Nuked OPN2, qui est largement plus friand en ressources que tous les autres. Si tu as essayé de changer l'émulateur à l'aveugle, c'est peut être celui-ci qui est à la source des xruns.
Pour tenter d'atténuer le problème, j'ai passé le nombre de chips par de défaut de 4 à 2. Quand tu auras un affichage fonctionnel en pdcurses, tu pourras jetter un oeil à la barre d'utilisation CPU.
Articles: 1514 France
Hello,

C'est ok pour l'affichage !

J'utilise une Ubuntu Mate 16.04 (+kxstudio).

J'ai des soucis avec les 2 dès que je passe de 2 à 4 chips.

Le pire, c'est avec Nuked OPN2 (il est au taquet en CPU) même si je ne fais rien. Avec Nuked OPL3 v1.8, c'est un peu mieux mais pas top. Avec Nuked OPL3 v1.7.4, quelques xruns. Avec tous les autres pas de soucis (avec adljack ou adlrt).

Donc la solution pour moi est de n'utiliser que 2 chips avec les émulateurs les plus violents 😊

Sympa ce soft, je sens que je vais m'en servir pour un de mes hacks musicaux 😊

Merci !
Erwan
Articles: 73 France
Cool !

Juste, une petite note importante : prends la mise à jour que j'ai faite il y a à peine un instant. J'ai fait remonter un correctif à l'auteur de la bibliothèque ADLMIDI, dont je me suis rendu compte que le pitch bend négatif ne fonctionnait plus.
Articles: 1514 France
Hello,

Ca ne compile plus (depuis ton dernier commit) je suppose :

Copy to clipboard
[ 85%] Building CXX object CMakeFiles/adljack.dir/sources/state.cc.o In file included from /home/erwan/adljack/sources/state.cc:8:0: /home/erwan/adljack/sources/state_generated.h:7:37: fatal error: flatbuffers/flatbuffers.h: No such file or directory compilation terminated. CMakeFiles/adljack.dir/build.make:206: recipe for target 'CMakeFiles/adljack.dir/sources/state.cc.o' failed make[2]: *** [CMakeFiles/adljack.dir/sources/state.cc.o] Error 1 CMakeFiles/Makefile2:180: recipe for target 'CMakeFiles/adljack.dir/all' failed make[1]: *** [CMakeFiles/adljack.dir/all] Error 2 Makefile:149: recipe for target 'all' failed make: *** [all] Error 2


j'ai tout effacé afin d'être sur qu'un vieux truc ne traîne pas.

Tu préfères les retours ici ou sur github ?

A+
Erwan
Articles: 73 France
Exact! je corrige ça tout de suite.

J'ai implémenté le protocole de NON-session-manager, et de la que vient cet ajout de librairie flatbuffers.
(j'ai jamais utilisé les sessions avant, mais j'étais curieux de savoir comment ce truc marchait. c'est plutôt chouette)
Articles: 1514 France
Hello,

C'est ok à présent.

Il semble que le soucis avec ncurses soit aussi réparé, plus besoin de :
Copy to clipboard
-DPREFER_PDCURSES=ON


Je n'ai jamais utilisé NON-session-manager, je n'en ai pas eu besoin jusqu'à présent mais c'est chouette que tu ajoutes ce genre de truc. Est-ce que cela pourrait aussi servir à sauvegarder l'état des instruments sur les différents channels MIDI ?

A+
Erwan
Page: 1/3  [Suivant]
1  2  3