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 : 47 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 : 2469 utilisateur non connecté France
Je viens de créer la page hammond-organ avec un lien pointant vers ici.

olinuxx Articles : 13708 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 : 47 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 : 13708 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 : 47 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 : 13708 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 : 47 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 : 13708 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 : 47 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 : 13708 utilisateur non connecté France
Merci pour l'explication.

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]


Mégaphone [Afficher / Cacher]

olinuxx, 15:51, lun. 20 Aug 2018: Bonjour et bienvenue à graphicspad et à neoshell ! cool
olinuxx, 19:36, sam. 18 Aug 2018: Bonjour et bienvenue à lalilala ! cool
sub26nico, 09:43, jeu. 16 Aug 2018: Salut et bienvenue à georges74 :-)
sub26nico, 22:36, mar. 14 Aug 2018: Salut et bienvenue à maharo :-)
sub26nico, 22:25, mar. 14 Aug 2018: En attendant la V5 de Mixbus 32C, qui devrait arriver demain...
sub26nico, 22:25, mar. 14 Aug 2018: Un nouveau greffon de chez Harrison : [Lien]
syberia303, 22:03, lun. 13 Aug 2018: Pour ceux que ça pourrait intéresser, Traktion en version 7 est gratuit: [Lien]
sub26nico, 17:53, lun. 13 Aug 2018: Salut et bienvenue à Nydoxic :-)
olinuxx, 18:27, dim. 12 Aug 2018: Bonjour et bienvenue à GhostOfBushes ! cool
sub26nico, 00:55, dim. 12 Aug 2018: Salut et bienvenue à TotoLeTroll :-)
olinuxx, 17:05, jeu. 09 Aug 2018: @jipeL : merci pour le partage d'expérience. La prochaine fois, mets un lien vers le fil de discussion stp. [Lien]
jipeL, 18:32, mer. 08 Aug 2018: Mise en garde concernant le code "ISRC" d'une oeuvre dans le forum.