denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Denemo-devel] (An email that failed to arrive ... pasted from pastebin)


From: Richard Shann
Subject: [Denemo-devel] (An email that failed to arrive ... pasted from pastebin)
Date: Fri, 15 May 2015 18:03:31 +0100

It concerns quality of sound on linux os. It's not a secret linux uses
libsamplerate library for resampling which is of poor quality not
suitable for production work. With today's cpu power there is no need to
use obslete resampling software giving inferior quality. So facts about
libsamplerate:
1. It's only 16-bit
2. It introduces distortions
kokkinizita.linuxaudio.org/linuxaudio/zita-ajbridge-doc/quickguide.html
Additional information about distortions introduced by libsamplerate can
be found on OSS driver forum and here bpaste.net/show/b625bd2f9ca3
It's not possible to compile or use jackd without libsamplerate. I am
giving description of my attempt:
 I was uninstalling libsamplerate in gento and got the following from
the package manager:
package: media-libs/libsamplerate-0.1.8-r1
* - /usr/lib64/libsamplerate.so.0
* - /usr/lib64/libsamplerate.so.0.1.8
* used by /usr/bin/alsa_in
(media-sound/jack-audio-connection-kit-0.121.3-r1)
* used by /usr/bin/alsa_out
(media-sound/jack-audio-connection-kit-0.121.3-r1)
* used by /usr/bin/alsaloop (media-sound/alsa-utils-1.0.28)
As you can see jack-audio-connection-kit uses libsamplerate. But then i
looked at the flags of my installation of the jack-audio-connection-kit:
equery u jack-audio-connection-kit -a and i saw that jack was compiled
by me without alsa support! This evidently means that JACKD HAS OWN
RESAMPLER! It may be based on libsamplerate or not. The flag
LIBSAMPLERATE was missing in USE flags for jack which means that it
EVEDENTLY USES LIBSAMPLERATE FROM THE LINUX LIB ONLY IF IT'S COMPILED
WITH ALSA SUPPORT. Next interesting question is what will be if i
compile it with alsa support? Will it try to use /usr/lib/alsa-lib in
this case and asound.conf instead of built-in resampler?! If yes the
quality will increase dramatically because Petrov's plugin will be
employed. Though it will still raise the question if the internal
resampler will be disabled?
So far I started jack-audio-connection-kit and played a song via it and
i don't see any resamplers mentioned in the terminal though i use
soundfonts of different sampling rate and the jackd is set to 48000
which means it does internal resampling to make a stream with one rate.
I decided to recompile jack-audio-connection-kit with alsa and oss
support and emerge -vp has shown that libsamplerate library is needed
for compilation... Then i did interesting thing, i put minus before all
support flags to compile jack-audio-connection-kit without them and the
installation STILL REQUIRED the libsamplerate library nevertherless! Now
i can tell you 100% for sure the so called "high quality" "production"
jackd-kit uses the lossy libsamplerate resampler WHICH IS INTERGRATED
INSIDE to spoil the quality.
Also this means that even if i compile jack-audio-connection-kit with
alsa and/or OSS support i won't be able to use external resamplers since
that libsamplerate will be already integrated in jackd... Which means
that source code of jack-audio-connection-kit MUST BE HACKED TO INCLUDE
PETROV's RESAMPLER or other high quality fft resampler to get TRUE HIGH
QUALITY PRODUCTION KIT. Since Petrov's resampler is closed-source...
Unlike jackd, alsa allows to use any alternative resamplers which are
defined in asound.conf  I configured it to use fftrate Petrov's
resampler for alsa which can be found at OSS forum. If i play a music
file in a player started from a terminal i can see that fftrate is being
used in the terminal. Unfortunately jackd does not use asound.conf for
its operation and we have to stick to low quality libsamplerate. Our
proposal on irc to substitute libsamplerate by a higher-quality
resampler remained unanswered. But without such substitution linux
cannot be called an OS suitable for production.
If you can't hack jackd then perhaps you may extend denemo to have own
internal sampler  like linuxsampler supporting gig sfz and sf2 and we
would load soundfonts into denemo without use of jackd. Instead of jackd
we could use portaudio and portmidi for example.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]