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

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

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

sub26nico, 10:07, dim. 21 Oct 2018: Salut et bienvenue à adjohjonathan et jojogen :-)
sub26nico, 14:21, sam. 20 Oct 2018: Salut et bienvenue à dam59500 :-)
protein, 11:56, jeu. 18 Oct 2018: Hello les linuxiens. J'ai participé à l'Open Source Music FM Synthesizer Challenge. Il y a des choses tres interessantes. Bonnes écoutes. [Lien]
sub26nico, 21:39, dim. 14 Oct 2018: Salut et bienvenue à blastedpingin :-)
jipeL, 09:42, dim. 14 Oct 2018: Un petit coucou en passant !
sub26nico, 21:05, jeu. 11 Oct 2018: Salut et bienvenue à open_jobxxi et DJPaolo :-)
jipeL, 16:29, jeu. 11 Oct 2018: Bonjour, je viens de soumettre une création dans le forum, dites moi ce que vous en pensez. Merci.
olinuxx, 10:25, mer. 10 Oct 2018: Bonjour et bienvenue à Chico13, Bluedeauville, et à crap0 cool
olinuxx, 10:34, mar. 09 Oct 2018: Il reste une semaine pour tenter de remporter un Mod Duo avec : [Lien]
olinuxx, 10:33, mar. 09 Oct 2018: De la part de l'équipe de l'édito : merci Didier ! biggrin
bluedid29, 15:07, lun. 08 Oct 2018: Waou ! Super édito !!! Bravo l'équipe talentueuse ;-)
ycollet, 18:30, ven. 05 Oct 2018: Je ne vois pas où ça parle de danse dans l'édito ...