Chargement...
 
Skip to main content

7 - Développer/traduire/documenter/annoncer une application


MultiSpace3D

France
Le MultiSpace3D est un logiciel de spatialisation du son dans un environnement multicanal développé sous Linux, mais qui peut être compilé pour Windows avec Msys2.
Space3D
Il n’y a pas de limites au nombre de canaux ni au nombre d’éléments audios.

Il permet le placement d’objets audios d’un séquenceur (Ardour ou Reaper) dans l’espace 3D d’un studio, d’une salle de concert ou de tout autre dispositif haut parlant en utilisant de simples coordonnées cartésiennes (x,y,z). Ces coordonnées peuvent être enregistrées dans les séquenceurs par automation.
Il ne s’agit pas de concurrencer des logiciels comme le Spaces3D du GRM ou le Spat Révolution de l’Ircam, mais de fournir un outil simple et efficace pour la spatialisation du son sous Linux.
Il dispose nativement de 15 greffons qui permettent de spatialiser le son pour des espaces de projections classiques : Auro5.1, Auro7.1, Auro9.1, Auro11.1, Auro13.1, mais aussi pour des structures plus complexes comme le studio 115 de Radio France, le studio 4 de l’Ircam ou le Klangdom de la NHK.
Ces greffons reposent sur le langage Faust du Grame, et l’interface communique avec les greffons avec le protocole OSC( Open Sound Control).

Par ailleurs, il dispose d’un utilitaire pour créer de nouveaux espaces afin d’en étendre les possibilités.
SpaceCreateb
Il est possible de générer des fichiers DSP compilables dans l’application en ligne du Grame, FaustIDE, ou avec les scripts du langage Faust, pour générer des greffons LV2 ou VST .

Ce logiciel est sous licence GPL v3.
Cette version  a été réalisée et testée sur Debian/LibraZik 2.
La documentation est disponible ici.
France
Salut,

Si je trouve un peu de temps, je vais essayer d'explorer ton logiciel. 😊
Bonjour,
Je viens d'essayer de l'installer sur Librazik 3 en suivant les instructions suivantes:
Installation du programme

Vous pouvez charger les sources et l'exécutable ici :


Copy to clipboard
git clone https://github.com/dblanchemain/space3D cd space3D make install



(sans les bien évidemment...)

Voici le résultat de l'étape sudo make install:

Copy to clipboard
cyril@Cyril:~/space3D$ sudo make install [sudo] Mot de passe de cyril :  cp multiSpace3D.bin /usr/local/bin/ cp multiSpace3D.sh /usr/local/bin/ chmod 755 /usr/local/bin/multiSpace3D.bin chmod 755 /usr/local/bin/multiSpace3D.sh if [ -d "/usr/local/share/multiSpace3D" ]; \ mkdir /usr/local/share/multiSpace3D;\ fi /bin/sh: 3: Syntax error: "fi" unexpected (expecting "then") make: *** [Makefile:24: install] Error 2


Si quelqu'un sait comment résoudre ça...merci d'avance alors!
France
Désolé; dans le makefile, il faut modifier la ligne ainsi :

Copy to clipboard
if [ -d "/usr/local/share/multiSpace3D" ]; then \ mkdir /usr/local/share/multiSpace3D;\ fi


J'ai apporté des modifications à l'appli, ce matin ( gestion basique de fichiers)
France
Sous LibraZiK3 vous allez certainement devoir recompiler :

git clone https://github.com/dblanchemain/space3D

par sécurité, car j'ai apporté des modifications ce matin.

make clean
make all
sudo make install
France
Bonjour aletheia.

J'ai jeté un œil au dépôt et je vois qu'il y a plusieurs fichiers binaires dedans (des .bin, des .so notamment). Que sont-ils ? C'est plutôt inhabituel pour des logiciels libres et à sources ouvertes où on évite les binaires au maximum.
France
Bonjour
Je vais faire un zip pour une installation des binaires ( pour multiSpace.bin qui est l'appli à proprement parlé lancée avec multiSpace3d.sh et spaceCreate qui est le configurateur de nouveaux espaces de projection).
L'installation avec
Copy to clipboard
sudo make install

Permets une installation directe des binaires pour LibraZiK2.
Maintenant je suppose qu'il faut recompiler pour LibraZiK3.
Copy to clipboard
make clean make all sudo make install


Cependant, le dossier Plugins comporte les 15 vst et lv2 pour Linux. Il faudrait tous les compiler avec faust. Je préfère les fournir.
Ils ont été compilés avec le faustIDE du Grame.
Je fournis tous les DSP pour ceux qui veulent les modifier et/ou les recompiler.
Je dois aussi compiler les plugins pour windows.
France
Cependant, le dossier Plugins comporte les 15 vst et lv2 pour Linux. Il faudrait tous les compiler avec faust. Je préfère les fournir.

Pourquoi préférer les fournir en binaires ?
Ça freine une adoption potentielle par les distributions d'avoir les sources pleines de binaires.
France
Je vais faire un paquet zip pour les binaires qui sera téléchargeable à partir de mon site.

Pour ce qui est des plugins, ils sont proposés en binaire et sous la forme de fichier DSP (dans le dossier DSP) qui doivent être compilé avec Faust ou avec le faustIDE du Grame. Pour Windows, cela ne peut être fait qu'avec le faustIDE. C'est un exercice de patience.

Le programme n'a pas de sens sans ces Plugins.

Rien n’oblige les distributions d'intégrer ces binaires si cela les dérange. Mais pour un utilisateur lambda, ça peut tout de même faciliter la vie.
S'ils ne sont pas proposés compilés, il faudra prévoir une installation complète de Faust et proposer un script pour automatiser leur compilation dans le dossier Plugins.

Je comprends bien la démarche, mais mon intention était de simplement faciliter les choses lors d'une installation rapide.

Après, chacun fait comme il veut.
France
les Binaires complets pour LibraZiK2 sont maintenant disponibles sous la forme d'une archive à cette adresse :http://blanchemain.info/Documents/Programmation/Programmes/multiSpace3D.tar.gz

Le dossier github ne comporte plus de binaires.

Les greffons sont disponibles précompilés pour LibraZiK2 ici :http://blanchemain.info/Documents/Programmation/Programmes/linuxPlugins.tar.gz

La documentation a été adaptée.

La version Windows/Msys2 sera bientôt disponible.
France
Merci pour ça @aletheia.

J'ai refait une construction de .deb pour LibraZiK-3, et c'est plus propre comme cela.
Question : comment compiles-tu les greffons LV2, uniquement avec un "faust2lv2 greffon.dsp" ?
j'ai quelques interrogations sur ce que fait ce logiciel :
- s'agit il d'un système de psycho-accoustique qui permet de donner la sensation de placement en 3D du son pour quelqu'un qui écoute un son stéréo ?
- je peux la trouver ou la construction .deb pour librazik 3 ?
France
Pour @olinux :

Parfait pour le deb. Bonne nouvelle.
Pour les greffons, dans la documentation :

Copy to clipboard
faust2lv2 -qt4 (ou -qt5) (nom du plugin).dsp

Même chose pour les vst

Copy to clipboard
faust2faustvst -qt4 (ou -qt5) (nom du plugin).dsp


Qt est important. Dans l'avenir, l'ouverture de l'interface du greffon devrait également ouvrit un spaceMeter adapté et j'aurai besoin de Qt.
Je vais réserver les vst pour Reaper car je dois apporter une modification aux DSP pour celui-ci.

Pour @Olof :

J'ai un studio 18 canaux comme décrits sur mes pages : http://blanchemain.info/Documents/Musique/index.php et j'utilise le greffon Dominium qui correspond à mes besoins. Ceci me permet de placer en statique ou en dynamique les objets dans l'espace 3D.

Je peux également enregistrer les paramètres de position par automation pour chacun d'entre eux. Cela n'a rien à voir avec le vbap d'Ardour et il faut absolument le court-circuité sur toutes les pistes et bus pour que cela fonctionne correctement. Le problème ne se pose pas pour Reaper.

Dans Ardour il faut utiliser des pistes monos et placer sur chaque piste le greffon qui convient et router ces pistes vers un bus dont le nombre de sorties correspond au greffon utilisé. Le processus a très bien fonctionné pour moi pour Du Même à l'Autre et la Cosmogonie Saturnienne avec un bus 18 canaux qui correspond au Dominium. J'enregistre ensuite les sorties du bus dans un fichier .wav 18 canaux.

Les déplacements sont enregistrés comme automation. Attention cependant, la coordonnée y qui correspond à la hauteur dans l'espace est inversée, c'est-à-dire que visuellement dans Ardour pour l'automation, un déplacement vers le bas fait monter l'objet et réciproquement dans l'espace 3D. Je n'ai pas de solution pour inverser cela pour l'instant même si cela peut paraître a priori trivial.

Je propose plusieurs studios de référence comme le studio 115 de radio France ou le studio 4 de l'IRCAM, mais aussi un dôme comme le Micadôme de Nice. La description de ces espaces est donnée dans la doc.

Par ailleurs, cette application permet de modifier tous les espaces proposés pour les adapter à des besoins particuliers et surtout, il est possible de créer de nouveaux greffons.
France
Pour obtenir une version "stéréoisée" il est possible d'utiliser l'IEM suite.

Je ne suis pas parvenu à faire fonctionner la suite Sparta sous LibraZiK2.

Le principe est de placer sur le bus (n canaux) le MultiEncoder IEM en définissant la répartition des enceintes, puis de placer, à la suite, le BinauralDecoder (IEM). En envoyant sur la sortie casque les deux premiers canaux du bus on obtient une version binaurale.

Ceci peut permettre de réaliser une maquette pour un dispositif différent de celui dont on dispose, à charge de l'adapter un fois sur place.

Attention cependant, contrairement au multiSpace3D, le fait de passer par un étage ambisonique modifie l'audio.

C'est ce que je fais pour proposer des versions binaurales de mes pièces.
J'ai utilisé cette répartition pour le Dominium dans le MultiEncoder:
Iem Dominium

Je fais un remix pour les 5.1 en utilisant le multiSpace3D.
France
Merci pour le pointeur @aletheia.

Pour l'instant, je parviens à construire les greffons en LV2, mais ni avec qt4 ni avec qt5.
Pour cela, j'utilise :
Copy to clipboard
faust2lv2 Auro11.dsp

Note qu'il m'a fallu ajouter "-DGLM_ENABLE_EXPERIMENTAL" dans le Makefile pour la construction de spaceCreate et de multiSpace3D.bin . Sans cela, la construction plantait avec :
Copy to clipboard
In file included from multiSpace3D.cpp:20: /usr/include/glm/gtx/transform.hpp:23:3: error: #error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." # error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." ^~~~~ make[2]: *** [Makefile:15: multiSpace3D] Error 1


Si je tente :
Copy to clipboard
faust2lv2 -qt5 Auro11.dsp

la compilation échoue avec :
Copy to clipboard
/usr/bin/faust2lv2: line 196: qmake-qt5: command not found


Si je tente :
Copy to clipboard
faust2lv2 -qt4 Auro11.dsp

la compilation échoue avec :
Copy to clipboard
lv2ui.cpp:1950:1: error: invalid conversion from 'void* (*)(const _LV2UI_Descriptor*, const char*, const char*, LV2UI_Write_Function, LV2UI_Controller, void**, const LV2_Feature* const*)' {aka 'void* (*)(const _LV2UI_Descriptor*, const char*, const char*, void (*)(void*, unsigned int, unsigned int, unsigned int, const void*), void*, void**, const LV2_Feature* const*)'} to 'void* (*)(const LV2UI_Descriptor*, const char*, const char*, LV2UI_Write_Function, LV2UI_Controller, void**, const LV2_Feature* const*)' {aka 'void* (*)(const LV2UI_Descriptor*, const char*, const char*, void (*)(void*, unsigned int, unsigned int, unsigned int, const void*), void*, void**, const LV2_Feature* const*)'} [-fpermissive] make[2]: *** [Makefile:228: Auro11ui.o] Error 1


Quelle est la version de Faust que tu utilises ?

@olof : le paquet .deb est uniquement construit en local pour le moment, il y a plusieurs soucis à corriger avant que ça ne puisse être redistribué.
France
Bonjour

Pour le make, je n'ai pas besoin de "-DGLM_ENABLE_EXPERIMENTAL". Là, je ne sais pas. Ça compile bien, sans alertes particulières.
Je regarderai si j'ai vraiment besoin de GLM: GLM_GTX_transform.

Pour QT, je ne comprends pas non plus, car je ne fais qu'appliquer les recommandations de Faust2LV2.

QT5 est manifestement pas correctement installé :"qmake-qt5: command not found".
J'ai la même erreur chez moi avec QT5 sous LibraZik2.
Cela fonctionne avec QT4.

Ça ne serait pas un problème d'installation de QT pour le développement?
Les messages d'erreurs correspondent assez bien.

Essai avec simplement :

Copy to clipboard
faust2lv2 -gui Auro11.dsp


Personnellement j'utilise la version 2.21.4
Embedded backends:
DSP to C
DSP to C++
DSP to FIR
DSP to Interpreter
DSP to Java
DSP to LLVM IR
DSP to old C++
DSP to Rust
DSP to SOUL
DSP to WebAssembly (wast/wasm)
Build with LLVM version 6.0.0

Compiler par mes soins avec

Copy to clipboard
make all


Le All est très important pour moi.

@Olof n'a pas pu compiler la metaSurface64 avec la version 2.15 de LibrZiK3. Il a dû utiliser la version 2.20.2, disponible ici, compiler par lui-même avec le même make all.
On ne peut pas compiler Faust avec la version 2.27 en raison d'une incompatibilité de version de LLVM avec LibraZiK3.

À ce sujet, la metaSurface64 a été présentée à l'IFC2020 International Faust Conference.
France
Dans les fichiers multiSpace3D.cpp et spaceCreate.cpp, j'ai supprimer la ligne

Copy to clipboard
#include <glm/gtx/transform.hpp>


et cela compile et fonctionne correctement. Je mets à jour le github.
France
aletheia écrit:
QT5 est manifestement pas correctement installé :"qmake-qt5: command not found".
J'ai la même erreur chez moi avec QT5 sous LibraZik2.


Cette commande "qmake-qt5" n'existe pas dans Debian.
Bref, ce n'est pas grave pour l'instant, concentrons-nous sur un soucis à la fois.

Concernant le soucis "-DGLM_ENABLE_EXPERIMENTAL", il existe toujours :
Copy to clipboard
In file included from multiSpace3D.h:11, from multiSpace3D.cpp:22: /usr/include/glm/gtx/transform.hpp:23:3: error: #error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." # error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." ^~~~~ make[2]: *** [Makefile:15: multiSpace3D] Error 1


Ce qui semble provenir des fichiers multiSpace3D.h Image et spaceCreate3D.h Image .
France
J'ai corrigé sur github.
France
Très bien, je confirme que ça fonctionne à présent.

Passons à un autre soucis plutôt embêtant. Le fichier de police d'écriture gui/Arial.ttf n'est pas libre car son EULA ne permet pas les modifications, la rétro-ingénierie,... Tu peux lire https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=298545#29 Image à ce propos.

Là où c'est vraiment très embêtant, c'est que tu ne peux pas redistribuer space3d sous licence GPL3 s'il embarque cette police d'écriture. Je suppose qu'il faut alors remplacer cette police d'écriture par une autre qui soit libre.
France
Pour QT :

le script faust2lv2 donne ceci :

Copy to clipboard
# Default qmake setup (for GUI compilation). This requires Qt4 or Qt5 (Qt5 is # preferred). We try to locate the qmake executable in some common locations # here. If this doesn't work out then you can also set the QMAKE environment # variable explicitly, or use one of the -qt4 and -qt5 options below. [ -z "$QMAKE" ] && QMAKE=$(which qmake-qt5 || which /opt/local/libexec/qt5/bin/qmake || which qmake-qt4 || which /opt/local/libexec/qt4/bin/qmake || echo qmake)


Chez moi, LibraZiK2, j'ai :

Copy to clipboard
qmake -query QT_SYSROOT: QT_INSTALL_PREFIX:/usr QT_INSTALL_ARCHDATA:/usr/lib/x86_64-linux-gnu/qt5 QT_INSTALL_DATA:/usr/share/qt5 QT_INSTALL_DOCS:/usr/share/qt5/doc QT_INSTALL_HEADERS:/usr/include/x86_64-linux-gnu/qt5 QT_INSTALL_LIBS:/usr/lib/x86_64-linux-gnu QT_INSTALL_LIBEXECS:/usr/lib/x86_64-linux-gnu/qt5/libexec QT_INSTALL_BINS:/usr/lib/x86_64-linux-gnu/qt5/bin QT_INSTALL_TESTS:/usr/tests QT_INSTALL_PLUGINS:/usr/lib/x86_64-linux-gnu/qt5/plugins QT_INSTALL_IMPORTS:/usr/lib/x86_64-linux-gnu/qt5/imports QT_INSTALL_QML:/usr/lib/x86_64-linux-gnu/qt5/qml QT_INSTALL_TRANSLATIONS:/usr/share/qt5/translations QT_INSTALL_CONFIGURATION:/etc/xdg QT_INSTALL_EXAMPLES:/usr/lib/x86_64-linux-gnu/qt5/examples QT_INSTALL_DEMOS:/usr/lib/x86_64-linux-gnu/qt5/examples QT_HOST_PREFIX:/usr QT_HOST_DATA:/usr/lib/x86_64-linux-gnu/qt5 QT_HOST_BINS:/usr/lib/x86_64-linux-gnu/qt5/bin QT_HOST_LIBS:/usr/lib/x86_64-linux-gnu QMAKE_SPEC:linux-g++-64 QMAKE_XSPEC:linux-g++-64 QMAKE_VERSION:3.0 QT_VERSION:5.7.1


qmake-qt4 existe bien chez-moi. Donc, l'option -gui compile en fait avec QT4 chez moi. C'est étrange, mais c'est ainsi.

QMAKE pointe vers qtchooser.

Dans le manifest.ttl Auro11 j'ai ceci :

Copy to clipboard
<https://faustlv2.bitbucket.io/Auro11ui> a ui:Qt4UI ; ui:binary <Auro11ui.so> .


Copy to clipboard
# Determine the Qt version so that we can edit the manifests accordingly. QTVERSION=$($QMAKE -v 2>/dev/null | tail -1 | sed 's/.*Qt version \([0-9]\).*/\1/')


En résumé,il utilise qmake pour définir la version, donc si cela fonctionne avec

Copy to clipboard
faust2lv2 -gui Auro11.dsp


Pas de soucis.
Page: 1/5  [Suivant]
1  2  3  4  5