Chargement...
 
Skip to main content

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


MétaSurface64

France
La metaSurface64 est une surface de contrôle de transformations continues du son en temps réel qui dispose à la fois de son propre générateur de boucles jusqu'à 64 voix et d'un moteur FX multieffets.
MetaSurface

Cette surface est dédiée à la recherche et à la création de séquences audios.

Chaque pavé de cette surface peut permettre de contôler directement le gain et les plug-ins attachés.
DspExemple2
Il est possible également de contrôler les pistes et les plug-ins d'un séquenceur externe ( Ardour ou Reaper ). Pour ce faire, l'application utilise des modules contrôlables par OSC qui proviennent de la librairie du langage Faust qui est embarqué dans l'application. Il est également possible de disposer d'une entrée externe pour un pavé.

Il est proposé d'écrire et d'intégrer de nouveaux plug-ins en langage Faust à la surface. Vous pouvez également définir les contrôleurs pour des plug-ins externes incorporés à votre DAW.
Enfin, vous pouvez créer de nouveaux pavages pour votre surface :
CreateSurface

Les fichiers audios des pavés peuvent être multicanaux. La sortie de chaque pavé sur Jack se règle indépendamment et peut être mono ou multicanal.

Pour intaller cette application :

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

Copy to clipboard
make metaSurface make install PREFIX=/usr/local


puis pour Linux :

Copy to clipboard
./metaSurface.sh


La documentation est disponible ici :

http://blanchemain.info/Documents/Programmation/index.php?page=metaSurface

Cette version 1.0 a été réalisée et testée sur debian/LibraZik2
Salut aletheia !
Ben dis donc, ça a l'air hyper puissant et complet cet engin! Et soit dit en passant, la documentation est très bien faite et détaillée. Bravo !

Tu n'aurais pas une petite démo à nous faire écouter?
Oups... Je suis en train d'écouter "5mn pour les oubliés d'Hart Island" qui utilise la La metaSurface64.
Très expérimental! L'ambiance sombre est réellement palpable...
France
Euh! "5Mn pour les oubliés d'Hart Island" n'est pas vraiment une démo de la metaSurface même si je l'utilise.
On peut mieux faire pour une démo.
Je travaille sur une autre création et je vais en profiter pour réaliser quelques démos vidéos, mais pour l'instant je dois rédiger une proposition de contribution pour l'International Faust Conference (IFC-20) sur la recommandation de S.Letz.
OK! On attend la démo avec impatience!
Bon courrage pour le reste! 😉
personnellement, je n'arrive pas à l'installer.

au stade
Copy to clipboard
make metaSurface make install PREFIX=/usr/local


j'obtiens ceci :

Copy to clipboard
make: rien à faire pour « metaSurface ». make: *** Aucune règle pour fabriquer la cible « make ». Arrêt.


des idées sur ce qui ne va pas chez moi ?
France
Si tu as compilé le programme il faut faire

en root

Copy to clipboard
make install PREFIX=/usr/local


C'est déjà bien d'être arrivé là!!! Ça me rassure.
bon, je suis un peu a la ramasse donc, j'ai betement recopié la méthode donnée sur le github :
Copy to clipboard
Pour intaller cette application : git clone https://github.com/dblanchemain/metaSurface make metaSurface make install PREFIX=/usr/local puis pour Linux : ./metaSurface.sh


et ai tapé en une seule ligne
Copy to clipboard
make metaSurface make install PREFIX=/usr/local


bon, du coup ai tout recommencé en separant make et make install...

donc le git clone pas de souci

à make, j'obtiens
Copy to clipboard
make: « metaSurface » est à jour.


et au make install (en root)
Copy to clipboard
cp metaSurface.sh /usr/local/bin chmod 755 /usr/local/bin/metaSurface.sh chmod: impossible d'accéder à '/usr/local/bin/metaSurface.sh': N'est pas un dossier make: *** [Makefile:18: install] Error 1


et si je tente ensuite le ./metaSurface, j'ai

Copy to clipboard
bash: ./metaSurface.sh: Permission non accordée

France
Bon, j'ai laissé des erreurs.
Pour tester j'ai compilé et installé metaSurface64 sur une autre machine.

Il faudra recharger github :

Copy to clipboard
git clone https://github.com/dblanchemain/metaSurface


Dans le dossier faire :

Copy to clipboard
make metaSurface


Il ne devrait plus y avoir de problème
Il a fallu que je charge main.ccp et l'enregistrer à nouveau pour que cela fonctionne?!!! Problème de time du fichier je suppose.

Si vous avez :

Copy to clipboard
make: « metaSurface » est à jour.


Ce n'est pas bon. Charger le fichier main.ccp et enregistré le à nouveau sans rien modifier, et recommencé.

Ensuite ( en root ) :

Copy to clipboard
make install PREFIX=/usr/local


Il ne devrait pas y avoir de messsages d'erreurs.

dans un terminal en simple utilisateur :

Copy to clipboard
metaSurface.sh


Si l'interface est incomplète, c'est que les chemins des dossiers de configuration ne sont pas bons.
ok, installation reussie, et ai pu le lancer (pour cela ai du rajouter deux librairies non listées : libboost-system et libboost-filesystem.

en 3 secondes, j'ai trouvé mon premier bug, un vrai mulet !
appui sur le bouton droit de la souris plante direct :
Copy to clipboard
the left button was pressed mouse x: 543 mouse y: 308 etat : 112 0 0 x : 343 y: 278 etat : 101 0 0 x : 343 y: 278 LLVM ERROR: out of memory Aborted

France
Ok! Je vais ajouter ces 2 librairies dans la liste.
Clic sur une fenêtre vide, sans pavage, => plantage. Bug identifié, corrigé.


Pour le reste?
Je vais tester tout ça.
tu preferes que je mette mes commentaires, decouvertes de bugs et autres ici ou sur le github ?
France
Ici, c'est très bien.

Je devrai présenter 2 réalisations : Petite cosmogonie Saturnienne et Du Même à L'Autre bientôt.
Elles utilisent toutes les 2 des séquences réalisées avec la metaSurface.
Ok
alors, je tente de suivre les premiers pas du manuel.

à ce stade :
Copy to clipboard
Ouvrez le menu <fichier> -> <Nouvelle surface> Une fenêtre s'ouvre qui vous permet de choisir une surface prédéfinie. Une fois la sélection faite appuyez sur Valider Si vous obtenez bien votre surface, c'est que votre installation de l'application est correcte.


je n'obtiens pas de surface, juste un ecran blanc, quelque soit le modele que je tente de sélectionner.

je continue neanmoins mon exploration jusquà la selection d'un son :

Copy to clipboard
Pour entendre votre sélection vous pouvez cliquer sur le bouton speaker à droite du nom du fichier.


et là le programme plante avec ceci en message console :

Copy to clipboard
/home/olivier/metaSurface/sounds/Audio 1-1.wav canaux : 1 Sample rate = 44100 frames : 316928 ��c5V prog : import("/usr/local/share/metaSurface/faust/stdfaust.lib");import("/usr/local/share/metaSurface/faust/soundfiles2.lib");ds=soundfile("[url:{'��c5V'}]",1);vmeter(x)= attach(x, envelop(x) : vbargraph("[2][unit:dB]", -70, +5));envelop = abs : max ~ -(1.0/ma.SR) : max(ba.db2linear(-70)) : ba.linear2db;sample1 = so.sound(ds, 0);gain = vslider("[0]gain",0.1,0,2,0.01) : si.smoo;gate = button("[1]gate");gdec(x) = hgroup("Player",x);tdec(x) = gdec(vgroup("[1]",x));lect(x) = gdec(hgroup("[2]",x));lgain=tdec(gain);lgate=tdec(gate);lmet=lect(par(j,1,hgroup("c%2j",vmeter)));smp1 = display_progress(sample1.play_progress(lgain,lgate)):lmet;process = smp1; name : Padplayerfilename padPlayer.dsprcfilename /home/olivier/.Padplayer-rc Libfaust version : 2.15.11 (LLVM 7.0.1) Cannot create factory : ERROR : unable to open file runtime.lib


il est à noter que j'avais dans une premiere tentative appuyé sur le bouton speaker avant de selectionner le son et à avait aussi planté, mais avec ce message ci :

Copy to clipboard
/ canaux : 0 Sample rate = 0 frames : 0 free(): invalid pointer Aborted


j'arrete là mon exploration pour le moment, mais je continuerai, car je suis interessé par l'idée d'interfacer metasurface avec Frontières.
je precise cela car j'ai vu dans ton exemple de chargement de fichier son un repertoire .borderlands sur ta machine, et donc, si tu l'utilises, tu seras surement interessé par essayer frontieres sur lequel je travaille, et echanger des tests ... (fin de pause publicité)
France
Bonjour
L'installation n'est pas correcte.
Copie le dossier surfaceBkg de ton dossier de compile dans metaSurface

Et relance l'application. Ça devrait fonctionner. (je vais corriger cela)

Je ne comprends pas ton : ��c5V

tu devrais avoir : /home/olivier/metaSurface/sounds/Audio 1-1.wav

Avec ��c5V comme nom de fichier, ça ne peut pas fonctionner.

Tu es en UTF8?

En fait, comme la surfaceBkg n'est pas trouvée il doit y avoir un problème, mais c'est étrange. Je n'ai cela sur aucun de mes pc.

Tu n'as pas recompilé Faust? Si c'est la version du dépôt, il doit manquer des éléments indispensables. Faust doit être compilé avec make all ou make dev.
Où est-il installé?
La Factory ne trouve pas les librairies de Faust.

Effectivement, Frontière m'intéresserait!
ce qui apparait dans la console est : [url:{''}], le copier coller a donné ��c5V, aucune idee de pourquoi...

je ne suis pas au fait de l'UFT8, je crois que c'est la langue, et je suis en français sur librazik 3

je n'ai pas recompilé faust, c'est la vzersion de librazik 3 (2.15.11)

j'ai aussi libfaust2 et faust-common d'installés (meme version)

j'ai testé de nouveau avec surfacebkg copié, ok, maintenant j'ai le graphique de la surface, mais le problème est le même a l'ppui sur speaker apres, avec

Copy to clipboard
/home/olivier/metaSurface/sounds/Audio 1-1.wav canaux : 1 Sample rate = 44100 frames : 316928 ��m�UU prog : import("/usr/local/share/metaSurface/faust/stdfaust.lib");import("/usr/local/share/metaSurface/faust/soundfiles2.lib");ds=soundfile("[url:{'��m�UU'}]",1);vmeter(x)= attach(x, envelop(x) : vbargraph("[2][unit:dB]", -70, +5));envelop = abs : max ~ -(1.0/ma.SR) : max(ba.db2linear(-70)) : ba.linear2db;sample1 = so.sound(ds, 0);gain = vslider("[0]gain",0.1,0,2,0.01) : si.smoo;gate = button("[1]gate");gdec(x) = hgroup("Player",x);tdec(x) = gdec(vgroup("[1]",x));lect(x) = gdec(hgroup("[2]",x));lgain=tdec(gain);lgate=tdec(gate);lmet=lect(par(j,1,hgroup("c%2j",vmeter)));smp1 = display_progress(sample1.play_progress(lgain,lgate)):lmet;process = smp1; name : Padplayerfilename padPlayer.dsprcfilename /home/olivier/.Padplayer-rc Libfaust version : 2.15.11 (LLVM 7.0.1) Cannot create factory : ERROR : unable to open file runtime.lib


à noter qu'en recommençant exactement la meme manip aussitot, j'obtiens ceci

Copy to clipboard
/home/olivier/metaSurface/sounds/Audio 1-1.wav canaux : 1 Sample rate = 44100 frames : 316928 �h�]U prog : import("/usr/local/share/metaSurface/faust/stdfaust.lib");import("/usr/local/share/metaSurface/faust/soundfiles2.lib");ds=soundfile("[url:{'�h�]U'}]",1);vmeter(x)= attach(x, envelop(x) : vbargraph("[2][unit:dB]", -70, +5));envelop = abs : max ~ -(1.0/ma.SR) : max(ba.db2linear(-70)) : ba.linear2db;sample1 = so.sound(ds, 0);gain = vslider("[0]gain",0.1,0,2,0.01) : si.smoo;gate = button("[1]gate");gdec(x) = hgroup("Player",x);tdec(x) = gdec(vgroup("[1]",x));lect(x) = gdec(hgroup("[2]",x));lgain=tdec(gain);lgate=tdec(gate);lmet=lect(par(j,1,hgroup("c%2j",vmeter)));smp1 = display_progress(sample1.play_progress(lgain,lgate)):lmet;process = smp1; name : Padplayerfilename padPlayer.dsprcfilename /home/olivier/.Padplayer-rc Libfaust version : 2.15.11 (LLVM 7.0.1) Cannot create factory : ERROR : unable to open file runtime.lib


et une 3e fois, c'est ��yi�U que j'obtiens ...
France
J'ai modifié metaSurface.cpp sur github. (à recompiler donc)
Normalement, tu devrais pouvoir entendre du son en cliquant sur le speaker de la fenêtre principale, pas les autres. Cela permettrait de tester des choses.

voici le code pour le speaker de la fenêtre "Pavé" :

Copy to clipboard
bool metaSurface::testFileDSP(string st1){ SF_INFO sfinfo; string sFileName=tabPave[selectPad-1].getPath()+"/"+tabPave[selectPad-1].getFile(); const char *path=sFileName.c_str(); cout <<sFileName <<endl; SNDFILE* sndfile=sf_open(path, SFM_READ, &sfinfo) ; sf_close(sndfile) ; cout <<path <<" canaux : " << sfinfo.channels<<" Sample rate = "<< sfinfo.samplerate<<" frames : "<<sfinfo.frames<< endl; string nameFile="simplePlayer.dsp"; if(sfinfo.channels>1){ string prog; prog=prog+"import(\"stdfaust.lib\");"; prog=prog+"import(\"soundfiles.lib\");"; prog=prog+"ds=soundfile(\"[url:{\'"+sFileName+"\'}]\","+to_string(sfinfo.channels)+");"; prog=prog+"vmeter(x)= attach(x, envelop(x) : vbargraph(\"[2][unit:dB]\", -70, +5));"; prog=prog+"envelop = abs : max ~ -(1.0/ma.SR) : max(ba.db2linear(-70)) : ba.linear2db;"; prog=prog+"sample1 = so.sound(ds, 0);"; prog=prog+"gain = vslider(\"[0]gain\",0.1,0,2,0.01) : si.smoo;"; prog=prog+"gate = button(\"[1]gate\");"; prog=prog+"gdec(x) = hgroup(\"Player\",x);"; prog=prog+"tdec(x) = gdec(vgroup(\"[1]\",x));"; prog=prog+"lect(x) = gdec(hgroup(\"[2]\",x));"; prog=prog+"lgain=tdec(gain);"; prog=prog+"lgate=tdec(gate);"; prog=prog+"lmet=lect(par(j,"+to_string(sfinfo.channels)+",hgroup(\"c%2j\",vmeter)));"; prog=prog+"smp1 = display_progress(sample1.play_progress(lgain,lgate)):lmet;"; prog=prog+"process = smp1;"; cout <<sFileName <<" prog : " << prog<< endl; createDSP(prog, st1); } }


À l'origine j'avais la variable path dans :

Copy to clipboard
ds=soundfile(\"[url:{\'"+path+"\'}]\","+to_string(sfinfo.channels)+");";


que j'ai remplacé par sFileName.
Je crois que la variable path en question crée un problème pour la création de l'url, chez toi. Je ne sais pas pourquoi.

J'utilise une version modifiée de stdfaut.lib et de soundfiles.lib pour les 2 autres speakers, et cela crée un problème de lien avec les librairies de Faust. La version modifiée de soundfiles.lib permet de disposer d'une barre de progression pendant la lecture du fichier.

Par ailleurs, comme tu utilises un Faust non compilé, je ne garantis rien, car je ne sais pas s'il dispose de toutes les libs pour le dev, indispensable ici pour la libFaust embarquée.
Le Grame a modifié les dépendances des libs 😑github faust)

runtime.lib file removed and code moved to interpolators.lib


Ceci n'est disponible que dans les dernières versions.
Personnellement j'utilise libfaust version : 2.21.4 compilé par mes soins dans /usr/local avec make all
la dernière version est la master-dev 2.27
https://github.com/grame-cncm/faust

make all
make install
tout sera installé dans /usr/local/
Je n'ai jamais rencontré de problème sous Debian/Linux
France
@olof : si tu veux faire un essai avec la 2.27, passe me voir sur IRC.
ok olinuxx, je vais faire ça.
France
Je suis sous LibraZiK2
J'ai supprimé la metaSurface de mon pc portable.

Copy to clipboard
git clone https://github.com/dblanchemain/metaSurface


J'ai encore été obligé de rechargé le main.cpp et de le sauvegarder sans changement?
Est-ce que quelqu'un pourrait me dire comment éviter ce problème?

Copy to clipboard
make metaSurface


Copy to clipboard
sudo make install PREFIX=/usr/local


dans un autre terminal :

Copy to clipboard
metaSurface.sh


Tout fonctionne a priori. Le dossier surfacesBkg est bien copié à la bonne place.
Les liens avec les librairies de Faust fonctionnent.

Sur mon portable : Faust a été compilé également.

Dans la version 2.15, je ne trouve pas les libs interpolators.lib et runtime.lib. C'est certainement la raison pour laquelle cela ne fonctionne pas.
ai reussi à compiler faust 2.27.2
mais à la recompile de metaSurface j'ai ça apres :
Copy to clipboard
/usr/bin/ld : ne peut trouver -lfaust collect2: error: ld returned 1 exit status make: *** [Makefile:11: metaSurface] Error 1

Page: 1/3  [Suivant]
1  2  3