Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

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

> Forums de discussion > 4 - Toutes les autres applications, les émulateurs... > Logiciel : orgue à roues phoniques Hammond
Dernier post

Logiciel : orgue à roues phoniques Hammond

jpcima Articles : 73 utilisateur non connecté France
Hello !
Ceci est un synthésiseur d'orgue Hammond que j'avais réalisé en 2016.
https://bitbucket.org/jpcima/hammond-organ/

C'est un logiciel que je ne développe plus depuis un moment, et que je n'avais jamais publié auparavant. Ayant retrouvé son code source, j'ai retravaillé un peu l'expérience utilisateur et j'ai publié le résultat en licence Boost.

C'est une émulation d'orgue inspirée de Hammond à la sonorité quelque peu agressive. Il y a la base et quelques éléments plus ou moins aboutis : percussion, vibrato, leslie...

Le paramétrage par défaut est basé sur l'orgue Hammond : 96 roues phoniques en forme d'onde sinusoïdale, à l'exceptions des basses qui ont une forme particulière.
On peut choisir de remplacer le sinus par un signal carré, dents de scie ou triangle.

Une particularité : la synthèse additive est faite en calcul entier. C'était un gain d'efficacité, en vue d'embarquer ce projet sur une Raspberry en ARM.

Avis aux contributeurs qui sont intéressés pour continuer le logiciel, ou aux musiciens qui pourraient lui trouver une utilité tel quel.

A+ -JPC

sub26nico Articles : 4864 utilisateur non connecté France
Je viens de créer la page hammond-organ avec un lien pointant vers ici.

olinuxx Articles : 18936 utilisateur non connecté France
J'ai tenté une compilation sur LibraZiK-2.

Il m'a fallu ajouter pkg-config et libasound2-dev pour pouvoir construire (et cmake évidemment) par rapport à ce qui est écrit dans le README.

La compilation plante à 95% avec :
[ 95%] Linking CXX executable organ.jack
libfxcore.a(synth.cc.o): In function `coredsp::FIR<64u, float __vector(4)>::impl_simd() const':
././thirdparty/coredsp/sources/coredsp/filter/fir.tcc:73: undefined reference to `float __vector(4) coreutil::simd_loadu<float __vector(4)>(float __vector(4) const*)'
collect2: error: ld returned 1 exit status
CMakeFiles/fxjack.dir/build.make:106: recipe for target 'organ.jack' failed


Pour info :
$ gcc --version
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516


jpcima Articles : 73 utilisateur non connecté France
J'ajouterai ces paquets au README, ainsi que build-essential. Merci

Ça demande les jeux d'instructions accélérés en SSE ou +.
En 32 bits et avec GCC, ce n'est pas automatique et ça s'active avec un fanion.

cmake -DCMAKE_CXX_FLAGS="-msse"



J'ai testé sur LibraZiK-2 en 64 bits et le problème ne se manifestait pas.

olinuxx Articles : 18936 utilisateur non connecté France
Super, grâce à ton conseil, j'ai mis une condition dans les règles de construction du paquet, et ça construit correctement. Merci.

J'ai lancé les 2 exécutables (organ.jack et organ.rt) et ça fonctionne, y'a du son, et les contrôles modifient bien le son. J'ai donc un paquet en test pour LZK-2.

Tu peux en dire un peu plus à propos de ces 2 exécutables ? le "organ.rt" fonctionne avec ALSA et le organ.jack avec JACKD si j'ai bien compris. Il y a d'autres différences ?

jpcima Articles : 73 utilisateur non connecté France
olinuxx écrit :
Tu peux en dire un peu plus à propos de ces 2 exécutables ? le "organ.rt" fonctionne avec ALSA et le organ.jack avec JACKD si j'ai bien compris. Il y a d'autres différences ?


"rt" est fait avec RtAudio, c'est multi-plateformes et ça peut fonctionner avec ou sans Jack.

Ces librairies portables comme RtAudio ont une variété d'inconvénients pratiques sous Linux, aussi je fais également des versions en Jack natives.

olinuxx écrit :
J'ai donc un paquet en test pour LZK-2.


Ouaip.. faudrait que je nettoye ce logiciel pour qu'il soit à peu près présentable. Il lui faut un nom, aussi.

olinuxx Articles : 18936 utilisateur non connecté France
Merci pour la réponse.

Comment fait-on pour lancer organ.rt sur jack ?
Si je le lance à partir d'un terminal, ça me dit ça :
organ.rt 
[Main]                I: Program starting
[Audio]               I: Setting up audio output
[Audio]               I: Using audio system 1
[Audio]               I: Desired latency 0.010000
[Audio]               I: Desired buffer size 480

RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (hw:1,0), Device or resource busy.


RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (hw:1,0), Device or resource busy.

[Audio]               I: The sample rate is 48000
[Audio]               I: The buffer size is 480

... zip ...

Du coup, j'en conclu qu'il le lance sur ALSA.

Il y a peut être une option en CLI ?

jpcima Articles : 73 utilisateur non connecté France
olinuxx: Très juste remarque, j'ai mis le correctif qui contruit les API Jack et Pulse dans RtAudio.

olinuxx écrit :
Il y a peut être une option en CLI ?


Hélas non, c'est assez peu pratique à réaliser avec cette librairie.
J'ai envoyé un PR pour faciliter ça, qui n'a jamais reçu de réponse. https://github.com/thestk/rtaudio/pull/136

olinuxx Articles : 18936 utilisateur non connecté France
J'ai fait une reconstruction du git du jour (git-f210356) et du coup, organ.rt démarre bien sur jack, merci !
Du coup, y'a t'il un intérêt à utiliser organ.rt sous linux (librazik) ou bien, c'est la même chose que j'utilise organ.rt ou organ.jack ?

Chouette, y'a eu de la réaction du côté de rtaudio !

jpcima Articles : 73 utilisateur non connecté France
Il y a 2 différences notables entre les deux.

- la RT peut prendre son entrée sur ALSA MIDI (par défaut), et si le choix est codé dans l'appli (chose à faire), on peut gérer JACK-MIDI aussi au sein du même programme.

- dans la version Jack, le traitement du MIDI et du signal audio sont unifiés dans le même fil d'exécution.
en RtMidi tu as les deux en traitement séparé, et le MIDI n'est pas couvert par l'ordonnanceur temps réel. (ce qui n'est pas terriblement critique je pense, mais c'est bon à savoir)

olinuxx Articles : 18936 utilisateur non connecté France
Merci pour l'explication.

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

calixtus06, 09:30, mer. 27 mars 2024: Bonjour et bienvenue à Noar :-)
olinuxx, 18:50, lun. 25 mars 2024: Bonjour et bienvenue à Ted Demore cool
olinuxx, 17:52, dim. 24 mars 2024: Bonjour et bienvenue à Noitavon cool
calixtus06, 11:07, jeu. 21 mars 2024: Bonjour et bienvenue à obds, ceric :-)
obds, 16:12, mar. 19 mars 2024: Cet édito est juste parfait. Trop beau !
olinuxx, 11:48, ven. 15 mars 2024: Bonjour et bienvenue à Jerry cool
calixtus06, 18:03, mer. 13 mars 2024: Bonjour et bienvenue à tanguero :-)
olinuxx, 11:01, dim. 10 mars 2024: Bonjour et bienvenue à lolo cool
bda, 16:59, sam. 09 mars 2024: Chapeau pour l'édito. Vous êtes au top les gars :-)
allany, 07:20, jeu. 07 mars 2024: Ça ne fait jamais de mal, c'est l'éditorial ! [Lien]
olinuxx, 19:52, mer. 06 mars 2024: Bonjour et bienvenue à TrkNrk cool
calixtus06, 11:17, mar. 05 mars 2024: Bonjour et bienvenue à D752 :-)