How do you want to troubleshoot or do something about the CPU load when you do not know which processes actually load the CPU? It may be a very different cause.
Hi Jürgen
I have just installed Ubuntu server and the lubuntu desktop on a Pi 2B
When I try to start PAXR it asks and then downloads the pulsectl no problems but then when it tries to add zodb I get this error...
any suggestions ?
I have just installed Ubuntu server and the lubuntu desktop on a Pi 2B
When I try to start PAXR it asks and then downloads the pulsectl no problems but then when it tries to add zodb I get this error...
Code:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-6wlywkmc/BTrees/
any suggestions ?
How do you want to troubleshoot or do something about the CPU load when you do not know which processes actually load the CPU? It may be a very different cause.
Don't worry, I look at processes as well, but in this case it runs well and cool without further debugging. That's all.
Good morning everybody...
I was pretty busy in the last few weeks, so here are some things to catch up und the latest conversations:
1. PaXoverRack does not do DSP itself, so it will not show any load while DSP stuff is running. The CPU load will be shown by the pulseaudio process. in terms of actual load it will be very similar to jackd, if one of them is stuttering that has to do with priority settings being too low. At the end of the day both mostly will use LADSPA plugins to do the DSP work and hence the load will be practically the same.
2. On sample rates: As pulseaudio will mix different streams it has to run at one sample rate and resample streams of different sample rates coming in to match the main sample rate pulseaudio is running at. So here's my recommendation: run pulseaudio at 96 or 192kHz and let it resample all streams. The procedure is described here: Pulseaudio Crossover Rack - Online Help
"avoid-resampling = false" will inhibit pulseaudio to choose a lower sample rate when, the first input stream has a lower sample rate than indicated in the config, so it should read "always-resample = true" 🙂
Using at least 96kHz as backend sample rate is a) beneficial to filters near the nyquist frequency, i.e. when you use a subsample delay, a boost or cut around 10k, so you're definitely better off with 96k.
I don't believe that high quality resamplers sound bad and neither do i believe that "integer resampling" (44.1k->88.1k) is better than say 44.1k->96k. At the end of the day you will be inputing a mix of both 44.1k for music and 48k for video anyways. At least in my case.
Also using float32le as sample format will turn out to be beneficial on CPU load and sound, as all LADSPA plugins use that format internally.
Inidivdual questions in later posts...
I was pretty busy in the last few weeks, so here are some things to catch up und the latest conversations:
1. PaXoverRack does not do DSP itself, so it will not show any load while DSP stuff is running. The CPU load will be shown by the pulseaudio process. in terms of actual load it will be very similar to jackd, if one of them is stuttering that has to do with priority settings being too low. At the end of the day both mostly will use LADSPA plugins to do the DSP work and hence the load will be practically the same.
2. On sample rates: As pulseaudio will mix different streams it has to run at one sample rate and resample streams of different sample rates coming in to match the main sample rate pulseaudio is running at. So here's my recommendation: run pulseaudio at 96 or 192kHz and let it resample all streams. The procedure is described here: Pulseaudio Crossover Rack - Online Help
"avoid-resampling = false" will inhibit pulseaudio to choose a lower sample rate when, the first input stream has a lower sample rate than indicated in the config, so it should read "always-resample = true" 🙂
Using at least 96kHz as backend sample rate is a) beneficial to filters near the nyquist frequency, i.e. when you use a subsample delay, a boost or cut around 10k, so you're definitely better off with 96k.
I don't believe that high quality resamplers sound bad and neither do i believe that "integer resampling" (44.1k->88.1k) is better than say 44.1k->96k. At the end of the day you will be inputing a mix of both 44.1k for music and 48k for video anyways. At least in my case.
Also using float32le as sample format will turn out to be beneficial on CPU load and sound, as all LADSPA plugins use that format internally.
Inidivdual questions in later posts...
Hi Jürgen
I have just installed Ubuntu server and the lubuntu desktop on a Pi 2B
When I try to start PAXR it asks and then downloads the pulsectl no problems but then when it tries to add zodb I get this error...
Code:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-6wlywkmc/BTrees/
any suggestions ?
please post a full traceback (use a pastebin preferrably) of the console when you issue a "pip3 install pulsectl". As the command talks about BTrees i suspect it is coming from the ZODB module, so also try "pip3 install ZODB".
I guess buffer size and sample rate.
How much is the total delay in this case?
Or in other words, what kind of latency is to be expected?
There will be no more latency than running without DSP. All buffers are processed in real time and it doesn't matter how many filters are inserted. If your CPU isn't able to do it in real time it will stutter, a higher latency would not help and thus doesn't make any sense.
I have been following this loosely for a while.
I think it's a very interesting project.
However, I was wondering if 2nd order shelving is also possible?
The main reason is to form some Linkwtiz-Transform filters.
Second would be a compressor/limiter
3rd, have people been trying to use this on a RaspPi?
I don't know what you mean by second order shelfing? There is a low and high shelf filter available in the parametric eq, both are mathematically second order filters.
For what aou're trying to do you need a real linkwitz transform filter. I already have the DSP coefficient formulae here, there will be a release soon.
I do not intend to write a compressor or linmiter though, this is not the scope of this software. If you need a limiter your gain structure is off anyways.
Why should the latency differ between channels? All channels are processed in one block.
Second that.
Will this cause any weirdness with System Wide DSP?
System Wide DSP Guide * bmc0/dsp Wiki * GitHub
When installing, I get:
Code:I/O warning : failed to load external entity "/usr/share/mime/packages/org.laptop.physics.xml" Failed to parse '/usr/share/mime/packages/org.laptop.physics.xml' Processing triggers for menu (2.1.47+b1) ...
Seems to be a warning only.
Hi all, a quick question - does this crossover rack work as a passthrough crossover? audio interface in -> dsp -> audio interface out?
Just want to make sure I understand this right.
You would have to setup the loopback from the interface input to the input sink of PaXoverRack yourself. But in principle no problem.
so I managed to get this set up and kind of working on my raspi3 using the cheap but good Logilink USB 7.1 sound box. OS is the mentioned ubuntu server 18.04 with lubuntu desktop. I made no further tweaks to the system or Pulseaudio, just update, upgrade, install lubuntu desktop and PAXOR via repository. Some setbacks due to my complete lack of experience with linux were overcome in that process...
however, whenever I try to route audio through PAXOR to more than two output channels, I get constant artifacts in the audiostream. Sounds to me like buffer underruns. They are very frequent (up to several time per second) and have no specific pattern that I could recognize.
Routing audio to all 8 channels is no problem as long as PAXOR is deactivated. Processor load is around 10-15% when these problems occur.
Any ideas for troubleshooting this?
I have a similar problem with ASUS Xonar U5/U7 cards. I managed to get it working by disabling timer based scheduling. See previous posts for that. I filed a bug against pulseaudio but debugging this proved to be nearly impossible :/
I don't know what you mean by second order shelfing? There is a low and high shelf filter available in the parametric eq, both are mathematically second order filters.
For what aou're trying to do you need a real linkwitz transform filter. I already have the DSP coefficient formulae here, there will be a release soon.
I do not intend to write a compressor or linmiter though, this is not the scope of this software. If you need a limiter your gain structure is off anyways.
There are 1 st order shelving filters as well as second order shelving filters (and technically you could go even higher).
Depending on the issue it depends which one people have to use.
About the compressor/limiter, wouldn't it be possible to implement (or collaborate) parts from PulseEffects?
Or is it possible to run PulseEffects together with Crossover Rack?
I think the compressor and Bass Enhancer are both very interesting features to implement.
Another idea is to take the approach Equalizer APO (for Windows) is using and that is to implement a feature to use LV2 plugins.
There are 1 st order shelving filters as well as second order shelving filters (and technically you could go even higher).
Depending on the issue it depends which one people have to use.
About the compressor/limiter, wouldn't it be possible to implement (or collaborate) parts from PulseEffects?
Or is it possible to run PulseEffects together with Crossover Rack?
I think the compressor and Bass Enhancer are both very interesting features to implement.
Another idea is to take the approach Equalizer APO (for Windows) is using and that is to implement a feature to use LV2 plugins.
I don't know how pulseeffects builds the chain. With a little bit of mucking around you might get them to work together, just try it and let us know what you find out...
Do you know if filters in pulseeffect are real time configurable? Actually for me that was the whole point of rewriting my own plugins because afaik ladspa plugin parameters cannot be changed on the fly once inserted into pulseaudio which is why i implemented a shared memory API in my own set of plugins.
Ah, and what I forgot - a shelving EQ with Q must be at least second order, of course there are first order shelving filters as well.
@b-force and Tfive, there are of course loads of ladspa-plugins already available. Perhaps feature-requests are more successful when there is a ladspa-plugin available for it?
I simply typed ladspa in synaptic package manager and there was a large search results. Some overlap, many clearly forked/cloned from a small number of original plugins, but a good range nonetheless. I see various compressors, even an impulse convolver, Of course there is more outside of the Ubuntu repositories.
I simply typed ladspa in synaptic package manager and there was a large search results. Some overlap, many clearly forked/cloned from a small number of original plugins, but a good range nonetheless. I see various compressors, even an impulse convolver, Of course there is more outside of the Ubuntu repositories.
2. On sample rates: As pulseaudio will mix different streams it has to run at one sample rate and resample streams of different sample rates coming in to match the main sample rate pulseaudio is running at. So here's my recommendation: run pulseaudio at 96 or 192kHz and let it resample all streams. The procedure is described here: Pulseaudio Crossover Rack - Online Help
"avoid-resampling = false" will inhibit pulseaudio to choose a lower sample rate when, the first input stream has a lower sample rate than indicated in the config, so it should read "always-resample = true" 🙂
Using at least 96kHz as backend sample rate is a) beneficial to filters near the nyquist frequency, i.e. when you use a subsample delay, a boost or cut around 10k, so you're definitely better off with 96k.
I don't believe that high quality resamplers sound bad and neither do i believe that "integer resampling" (44.1k->88.1k) is better than say 44.1k->96k. At the end of the day you will be inputing a mix of both 44.1k for music and 48k for video anyways. At least in my case.
Also using float32le as sample format will turn out to be beneficial on CPU load and sound, as all LADSPA plugins use that format internally.
Thank you for this elaborate information!
@b-force and Tfive, there are of course loads of ladspa-plugins already available. Perhaps feature-requests are more successful when there is a ladspa-plugin available for it?
I simply typed ladspa in synaptic package manager and there was a large search results. Some overlap, many clearly forked/cloned from a small number of original plugins, but a good range nonetheless. I see various compressors, even an impulse convolver, Of course there is more outside of the Ubuntu repositories.
As I said previously, these are not useable within PaXoverRack without modification as they would then lack real time parameter updates.
I don't know how pulseeffects builds the chain. With a little bit of mucking around you might get them to work together, just try it and let us know what you find out...
Do you know if filters in pulseeffect are real time configurable? Actually for me that was the whole point of rewriting my own plugins because afaik ladspa plugin parameters cannot be changed on the fly once inserted into pulseaudio which is why i implemented a shared memory API in my own set of plugins.
Real-time configurable? As in, they work on the fly, when changing parameters?
In that case, yes they are.
please post a full traceback (use a pastebin preferrably) of the console when you issue a "pip3 install pulsectl". As the command talks about BTrees i suspect it is coming from the ZODB module, so also try "pip3 install ZODB".
Here it is... yes, definately Btrees....
Code:
ubuntu@ubuntu:~$ pip3 install pulsectl
Collecting pulsectl
Using cached [url]https://files.pythonhosted.org/packages/ae/f1/b673f77b153e5d03a715f1641a82c0bfddfae940ae75b7efefbcaf38d32c/pulsectl-18.12.5-py2.py3-none-any.whl[/url]
Collecting setuptools (from pulsectl)
Using cached [url]https://files.pythonhosted.org/packages/ec/51/f45cea425fd5cb0b0380f5b0f048ebc1da5b417e48d304838c02d6288a1e/setuptools-41.0.1-py2.py3-none-any.whl[/url]
Installing collected packages: setuptools, pulsectl
Successfully installed pulsectl-18.12.5 setuptools-41.0.1
ubuntu@ubuntu:~$ pip3 install ZODB
Collecting ZODB
Using cached [url]https://files.pythonhosted.org/packages/78/27/346776a8c1d9bcdfa1559688ae8461ccb2e5e876f275732d71aaf8529c9b/ZODB-5.5.1-py2.py3-none-any.whl[/url]
Collecting six (from ZODB)
Using cached [url]https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl[/url]
Collecting BTrees>=4.2.0 (from ZODB)
Using cached [url]https://files.pythonhosted.org/packages/e9/b4/4c6209fbcc8d278a1a13e7284bbea14ffb15d83c6ab3eae24c66108d239c/BTrees-4.5.1.tar.gz[/url]
Complete output from command python setup.py egg_info:
c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
#include <ffi.h>
^~~~~~~
compilation terminated.
Traceback (most recent call last):
File "/usr/lib/python3.6/distutils/unixccompiler.py", line 118, in _compile
extra_postargs)
File "/usr/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
spawn(cmd, dry_run=self.dry_run)
File "/usr/lib/python3.6/distutils/spawn.py", line 36, in spawn
_spawn_posix(cmd, search_path, dry_run=dry_run)
File "/usr/lib/python3.6/distutils/spawn.py", line 159, in _spawn_posix
% (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/bdist_egg.py", line 172, in run
cmd = self.call_command('install_lib', warn_dir=0)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/bdist_egg.py", line 158, in call_command
self.run_command(cmdname)
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/install_lib.py", line 11, in run
self.build()
File "/usr/lib/python3.6/distutils/command/install_lib.py", line 109, in build
self.run_command('build_ext')
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 78, in run
_build_ext.run(self)
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 339, in run
self.build_extensions()
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
self._build_extensions_serial()
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
self.build_extension(ext)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 199, in build_extension
_build_ext.build_extension(self, ext)
File "/usr/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
depends=ext.depends)
File "/usr/lib/python3.6/distutils/ccompiler.py", line 574, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/usr/lib/python3.6/distutils/unixccompiler.py", line 120, in _compile
raise CompileError(msg)
distutils.errors.CompileError: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 154, in save_modules
yield saved
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 250, in run_setup
_execfile(setup_script, ns)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-g1_jle6b/persistent-4.5.0/temp/easy_install-p6dxdwe6/cffi-1.12.3/setup.py", line 248, in <module>
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.6/distutils/core.py", line 163, in setup
raise SystemExit("error: " + str(msg))
SystemExit: error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1144, in run_setup
run_setup(setup_script, args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 253, in run_setup
raise
File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 166, in save_modules
saved_exc.resume()
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 141, in resume
six.reraise(type, exc, self._tb)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/_vendor/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 154, in save_modules
yield saved
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 250, in run_setup
_execfile(setup_script, ns)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-g1_jle6b/persistent-4.5.0/temp/easy_install-p6dxdwe6/cffi-1.12.3/setup.py", line 248, in <module>
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.6/distutils/core.py", line 163, in setup
raise SystemExit("error: " + str(msg))
SystemExit: error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 154, in save_modules
yield saved
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 250, in run_setup
_execfile(setup_script, ns)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-g1_jle6b/persistent-4.5.0/setup.py", line 137, in <module>
'zope.interface',
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 144, in setup
_install_setup_requires(attrs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 139, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/dist.py", line 717, in fetch_build_eggs
replace_conflicting=True,
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 782, in resolve
replace_conflicting=replace_conflicting
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1065, in best_match
return self.obtain(req, installer)
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1077, in obtain
return installer(requirement)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/dist.py", line 784, in fetch_build_egg
return cmd.easy_install(req)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 679, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 705, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 890, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1158, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1146, in run_setup
raise DistutilsError("Setup script exited with %s" % (v.args[0],))
distutils.errors.DistutilsError: Setup script exited with error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-mns8ko94/BTrees/setup.py", line 195, in <module>
"""
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 144, in setup
_install_setup_requires(attrs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 139, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/dist.py", line 717, in fetch_build_eggs
replace_conflicting=True,
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 782, in resolve
replace_conflicting=replace_conflicting
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1065, in best_match
return self.obtain(req, installer)
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1077, in obtain
return installer(requirement)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/dist.py", line 784, in fetch_build_egg
return cmd.easy_install(req)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 679, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 705, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 890, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1158, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1144, in run_setup
run_setup(setup_script, args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 253, in run_setup
raise
File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 166, in save_modules
saved_exc.resume()
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 141, in resume
six.reraise(type, exc, self._tb)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/_vendor/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 154, in save_modules
yield saved
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 250, in run_setup
_execfile(setup_script, ns)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-g1_jle6b/persistent-4.5.0/setup.py", line 137, in <module>
'zope.interface',
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 144, in setup
_install_setup_requires(attrs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 139, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/dist.py", line 717, in fetch_build_eggs
replace_conflicting=True,
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 782, in resolve
replace_conflicting=replace_conflicting
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1065, in best_match
return self.obtain(req, installer)
File "/home/ubuntu/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1077, in obtain
return installer(requirement)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/dist.py", line 784, in fetch_build_egg
return cmd.easy_install(req)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 679, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 705, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 890, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1158, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1146, in run_setup
raise DistutilsError("Setup script exited with %s" % (v.args[0],))
distutils.errors.DistutilsError: Setup script exited with error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-mns8ko94/BTrees/
Last edited:
Jurgen,
In this thread, https://www.diyaudio.com/forums/pc-based/336812-single-pc-solution-2-usb-sound-cards-crossovers-using-pax-rack-3.html#post5798661, I set about trying to get two USB sound cards to act as one virtual card and use each of them in separate speaker boxes as the active crossover, as I originally asked in this thread.
With much help and perseverance from phofman, the two cards are recognised and output when tested. My question is now, how do I get PAX Rack to work with them?
In this thread, https://www.diyaudio.com/forums/pc-based/336812-single-pc-solution-2-usb-sound-cards-crossovers-using-pax-rack-3.html#post5798661, I set about trying to get two USB sound cards to act as one virtual card and use each of them in separate speaker boxes as the active crossover, as I originally asked in this thread.
With much help and perseverance from phofman, the two cards are recognised and output when tested. My question is now, how do I get PAX Rack to work with them?
- Home
- Source & Line
- PC Based
- Pulseaudio Crossover Rack - multi-way crossover design & implementation with linux