Jump to content
F8EBL

Compiler dsd sous ubuntu 18.04

Recommended Posts

F8EBL

Bonjour.

J' essaie de compiler dsd sous linux 18.04 LTS d' après la méthode de M1GEO :

digital speech decoder

Cela nécessite d' abord de compiler la librairie mathématique IT++, puis mbelib, et enfin dsd.

Mais j' ai un souci avec IT++ qui me fait des erreurs

In file included from /home/loki/digital_speech/itpp-4.3.1/itpp/base/random_dsfmt.h:40:0,
                 from /home/loki/digital_speech/itpp-4.3.1/itpp/base/random.h:32,
                 from /home/loki/digital_speech/itpp-4.3.1/itpp/base/random.cpp:29:
/home/loki/digital_speech/itpp-4.3.1/itpp/base/random_dsfmt.h: In static member function static void itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::do_recursion(typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*, typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*, typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*, typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*) [with int MEXP = 19937; int POS1 = 117; int SL1 = 19; long unsigned int MSK1 = 4498102069230399; long unsigned int MSK2 = 4501400546508797; long unsigned int FIX1_V = 10376655713290109737; long unsigned int FIX2_V = 4291106551315987578; long unsigned int PCV1_V = 4432916062321256576; long unsigned int PCV2_V = 1]’:
/home/loki/digital_speech/itpp-4.3.1/itpp/base/random_dsfmt.h:306:17: error: the last argument must be an 8-bit immediate
     __m128i y = _mm_shuffle_epi32(lung->si, SSE2_SHUFF);
                 ^
itpp/CMakeFiles/itpp.dir/build.make:422: recipe for target 'itpp/CMakeFiles/itpp.dir/base/random.cpp.o' failed
make[2]: *** [itpp/CMakeFiles/itpp.dir/base/random.cpp.o] Error 1
CMakeFiles/Makefile2:85: recipe for target 'itpp/CMakeFiles/itpp.dir/all' failed
make[1]: *** [itpp/CMakeFiles/itpp.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

mbelib passe bien mais dsd fait aussi des erreurs, et se plaint de ne pas trouver ITPP.

Apparemment une recette a raté pour 2 cibles à cause de l' erreur signalée au dessus " in static member function ..." et " error : the last argument must be an 8 bit immediate" .

Je ne vois pas ce que ça veut dire.

Si quelqu' un a une idée ...?

Merci d' avance !

f8ebl

Share this post


Link to post
F5OWL
Posted (edited)

Bonjour,

On peut considérer que le code est correct. Donc si ça ne compile pas c'est qu'il doit manquer une dépendance.

Difficile à trouver en analysant le message d'erreur à la compilation.

Il faut plutôt regarder le message de sortie du cmake.  Je viens de tester à l'instant (ubuntu 18.04 32bits) et chez moi ça compile.

Le problème quand on fait un tuto c'est qu'on pense à donner les dépendances qu'on a du installer sur son propre pc.

Mais quand on a déjà compilé beaucoup de chose, on a déjà pas mal de librairies installées et on peut oublier certaines dépendances.

Voici la sortie du cmake à comparer à la votre pour tenter d'installer ce qui manque.

(Attention comme je n'ai pas tout de parfait il est possible que votre problème apparaisse sur une option qui n'est pas activé dans mon cas) 

73,

Philippe

-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- A library with BLAS API not found. Please specify library location.
-- A library with BLAS API not found. Please specify library location.
-- LAPACK requires BLAS
-- A library with LAPACK API not found. Please specify library location.
-- Found FFT: /usr/lib/i386-linux-gnu/libfftw3.so  
-- A library with FFT API found.
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components:  doxygen dot 
-- Could NOT find LATEX (missing: LATEX_COMPILER) 
-- Looking for include files sys/time.h, time.h
-- Looking for include files sys/time.h, time.h - found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for ieeefp.h
-- Looking for ieeefp.h - not found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for C++ include cmath
-- Looking for C++ include cmath - found
-- Looking for C++ include complex
-- Looking for C++ include complex - found
-- Looking for isfinite
-- Looking for isfinite - not found
-- Looking for isinf
-- Looking for isinf - not found
-- Looking for isnan
-- Looking for isnan - not found
-- Looking for signgam
-- Looking for signgam - found
-- Looking for acosh
-- Looking for acosh - found
-- Looking for asinh
-- Looking for asinh - found
-- Looking for atanh
-- Looking for atanh - found
-- Looking for cbrt
-- Looking for cbrt - found
-- Looking for erf
-- Looking for erf - found
-- Looking for erfc
-- Looking for erfc - found
-- Looking for expm1
-- Looking for expm1 - found
-- Looking for finite
-- Looking for finite - found
-- Looking for isfinite
-- Looking for isfinite - not found
-- Looking for isinf
-- Looking for isinf - found
-- Looking for isnan
-- Looking for isnan - found
-- Looking for lgamma
-- Looking for lgamma - found
-- Looking for log1p
-- Looking for log1p - found
-- Looking for log2
-- Looking for log2 - found
-- Looking for rint
-- Looking for rint - found
-- Looking for tgamma
-- Looking for tgamma - found
-- Looking for std::isfinite
-- Looking for std::isfinite - found
-- Looking for std::isinf
-- Looking for std::isinf - found
-- Looking for std::isnan
-- Looking for std::isnan - found
CMake Warning at CMakeLists.txt:192 (message):
  BLAS library not found.


CMake Warning at CMakeLists.txt:196 (message):
  LAPACK library not found.


CMake Warning at CMakeLists.txt:204 (message):
  You can still compile IT++ but the functionality will be reduced.


-- Configuring done
-- Generating done
-- Build files have been written to: /home/philippe/itpp-4.3.1/build2

 

Edited by F5OWL

Share this post


Link to post
F8EBL

Bonjour et merci à vous pour la réponse .

J' ai changé la ligne de ode dans dsfmt.h, ça compile pour itpp.

make install se passe bien .

Compil de dsd : ok

make install ok

Pa fait les tests, ( je comprends pas tout). mais en essayant de lancer dsd en console, j' ai une erreur " couldn't open /dev/audio."

Je sais plus ce que j' ai fait exactement hier soir tard, alors je vais peut être tout recommencer depuis le début, pour être sûr que tout est bien fait dans l' ordre,

A ce sujet : une question bête de débutant : avec Linux, doit on désinstaller une application avant de la réinstaller, ou, pour mon cas, je peux recommencer l' opération depuis le début ( get, cmake, make, make install )

pour chacun des trois modules ( itpp, mbelib et dsd ) ?

Share this post


Link to post
F6AUC

Bonjour,

J'ai essayé moi aussi, mais c'est du lourd : mon PC n'étant pas un foudre de guerre, je l'ai planté à deux reprises, avec processeur et mémoire à 100 %. J'ai dû terminer en mode console pour aboutir à un échec, d'où abandon du combat à la 3ème reprise...

73 d'Étienne.

 

Share this post


Link to post
F-5065
Posted (edited)

Bonjour

je l'ai compilé sur une Debian  Buster (10 testing) avec les sources provenant de Github

https://github.com/szechyjs/dsd

et en suivants les instructions ici

https://github.com/szechyjs/dsd/wiki/Installation

Fonctionne parfaitement sans planter pendants plusieurs heures

 

pour l'utiliser je fais "dsd -a" dans une console pour afficher les périphérique audio

ca me sort ceci

Citation

dsd -a
Digital Speech Decoder 1.7.0-dev (build:v1.6.0-91-gf175834)
mbelib version 1.3.0
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave

PortAudio version number = 1246720
PortAudio version text = 'PortAudio V19.6.0-devel, revision 396fe4b6699ae929d3a685b3ef8a7e97396139a4'
Number of devices = 13
--------------------------------------- device #0
Name                        = HDA Intel MID: ALC888 Digital (hw:0,1)
Host API                    = ALSA
Max inputs = 0, Max outputs = 2
Default sample rate         = 44100.00
--------------------------------------- device #1
Name                        = HDA Intel MID: ALC888 Alt Analog (hw:0,2)
Host API                    = ALSA
Max inputs = 2, Max outputs = 0
Default sample rate         = 44100.00
--------------------------------------- device #2
Name                        = HDA NVidia: HDMI 0 (hw:1,3)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #3
Name                        = HDA NVidia: HDMI 0 (hw:1,7)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #4
Name                        = HDA NVidia: HDMI 0 (hw:1,8)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #5
Name                        = HDA NVidia: HDMI 0 (hw:1,9)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #6
Name                        = USB Audio Device: - (hw:2,0)
Host API                    = ALSA
Max inputs = 1, Max outputs = 2
Default sample rate         = 44100.00
--------------------------------------- device #7
Name                        = iec958
Host API                    = ALSA
Max inputs = 0, Max outputs = 2
Default sample rate         = 44100.00
--------------------------------------- device #8
Name                        = spdif
Host API                    = ALSA
Max inputs = 0, Max outputs = 2
Default sample rate         = 44100.00
--------------------------------------- device #9
Name                        = pulse
Host API                    = ALSA
Max inputs = 32, Max outputs = 32
Default sample rate         = 44100.00
--------------------------------------- device #10
Name                        = a52
Host API                    = ALSA
Max inputs = 0, Max outputs = 6
Default sample rate         = 48000.00
--------------------------------------- device #11
[ Default Input, Default Output ]
Name                        = default
Host API                    = ALSA
Max inputs = 32, Max outputs = 32
Default sample rate         = 44100.00
--------------------------------------- device #12
[ Default OSS Input, Default OSS Output ]
Name                        = /dev/dsp
Host API                    = OSS
Max inputs = 16, Max outputs = 16
Default sample rate         = 44100.00
----------------------------------------------

 

ensuite je le lance avec

dsd -i pa:9 -o pa:9

j'utilise le périphérique 9 car son nom est pulse

Name                        = pulse

j'utilise "pulse",  gestionnaire de son par défaut sur Debian.

La réception se fait par un SDRPlay RSP1A  ou un RTL-SDR  et CubicSdr dont le périphérique de sortie est redirigé vers un périphérique audio virtuel.

éventuellement, je redirige le son du périphérique virtuel vers DSD en modifiant le périphérique d'enregistrement de DSD

Pour modifier les périphériques d'entrée/sortie, j'utilise le contrôle de volume pulse  (pavucontrol)

@F8EBL

l'erreur semble indiquer que dsd veut utiliser OSS comme gestionnaire de son qui n'est peut-être pas installé sur votre système.

73

Claude

Capture d’écran_2019-05-16_12-13-05.png

Edited by F-5065

Share this post


Link to post
F8EBL

Bonjour.

@f6auc :

Pour le plantage, a moins d' un tout vieux pc, peut être avez vous fait un make -j ( utilise tous les procs ).

J' ai eu un souci avec ça, tout s' est bien passé avec un make tout court.

Claude F5065:

Merci pour les infos .

J' ai essayé, avec pulseAudio, ,essayé tous les n° de periph possible, toujours le même souci.

Il y a seulement un souci avec l' audio, car en faisant

socat udp-listen:7355 - | dsd -i - -w fileName.wav

ça m' enregistre bien la sortie de dsd dans un wav; dsd écoutant la sortie UDP de gqrx.

J' ai essayé d' installer alsa-oss,

apt-get install alsa-oss,

comme indiqué par M1GEO, mais en installant les modules oss :

sudo modprobe snd_pcm_oss
sudo modprobe snd_mixer_oss

j' ai une erreur fatale, fichiers pas trouvés, je ne sais pas ce qui a coincé.

Je suis novice, je comprends pas trop comment ça marche, excusez les questions bêtes.

Je retourne lire le P... de manuel .

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...