How to access kinect audio device using libfreenect correctly - linux

I use an Kinect, Model 1517, and cloned the master branch from the OpenKinect/libfreenect repo to my Ubuntu 14.04 LTS x64.
My target is to do some fancy stuff with the build in mic-array.
But if I want to test the sources and execute a sample program, I get following output :
$ ./freenect-glview
Kinect camera test
Number of devices found: 1
Could not open audio: -1
Failed to open motor subddevice or it is not disabled.Failed to open audio subdevice or it is not disabled.Could not open device
During compilation no error or warning is pointed out. With debugging I isolated the failure to the initialization of FREENECT_DEVICE_MOTOR.
I also tried to download the stable package version, using
$ sudo apt-get install freenect
but (not in freenect-glview but in other samples) this error occurs too.
What differs from all the tutorials and guides I read, is that after the command $lsusb the output just shows three devices named 'Microsoft Corp.', instead of a longer description like Bus 001 Device 006: ID 045e:02ad Microsoft Corp. Xbox NUI Audio.
Do you have any plans, how I can fix this Problem? I assume, if it doesn't work in these samples, that it also wont work in an selfmade one.

Try running with administrator privileges. I had the same problem and that worked for me.
$ sudo ./freenect-glview

Related

Can't hear sound when audio is being played in Pyglet (Raspberry Pi 4B, Raspbian)

I am running the latest version of Raspbian on the Raspberry Pi with Python 2.7 and 3.7 installed. For a project, I need to implement some spatial/binaural audio file playback capabilities in Python, and Pyglet (version 1.5.6) (https://pypi.org/project/pyglet/, https://github.com/pyglet/pyglet) seems to be the simplest option with least dependencies. However, I am not being able to hear audio output through the headphones. Here's what I did:
Installed pyglet dependencies: sudo apt-get install ffmpeg libopenal1 libopenal-dev python3-pil.imagetk python3-pil python3-matplotlib python3-scipy gstreamer1.0-alsa gstreamer1.0-python3-plugin-loader (From previous programs, the system also had cmake, python3-opencv libopencv-dev libusb-1.0-0-dev, libboost-program-options-dev and python3-numpy installed)
I then installed pyglet as per given in the guide: sudo pip3 install --upgrade pyglet. The installation proceeded without any errors.
I know that by default often, Raspberry Pi spits audio out through the HDMI port instead of A/V port. So I went to raspi-config using sudo raspi-config, went to Advanced Options -> Audio. Selected the proper option (in my case 1 Headphones). I checked if audio was playing fine through my headphones by playing couple of youtube videos and audio files on the Raspberry Pi itself.
I then checked if pyglet was working by importing pyglet with import pyglet in a python shell, it worked fine without any warnings or errors.
I launched the example program provided here: https://github.com/pyglet/pyglet/tree/master/examples/soundspace. To do so, I downloaded the repo https://github.com/pyglet/pyglet and moved to the proper directory (via cd command) and wrote: sudo python3 soundspace.py. For a brief overview, the program contains 4 instruments that can be dragged across the room with a mouse. In doing so, the audio that you hear from each instrument changes depending on position and orientation of those instruments as well as your virtual position inside the mini game. The program executes without any error being shown in the terminal, but I don't hear any sound. When I try to move the objects, the program freezes but no error is shown in the terminal.
Since I was least bothered about the complex program, I went ahead to create my own simple program that will play a wav file (sourced from the Pyglet's developer repo itself before anyone says the wav file is incompatible https://github.com/pyglet/pyglet/tree/master/examples/soundspace), reference from: https://pyglet.readthedocs.io/en/latest/programming_guide/media.html . Here's the code snippet:
import pyglet
pyglet.options['search_local_libs'] = True
pyglet.options['audio'] = ('openal')
source = pyglet.media.load('Bass.wav', streaming=False)
source.play()
According to the documentation, if I am not wrong, this is supposed to play the wav file being fed to the source. The program seems to run without any errors shown in the terminal. But I do not hear any audio output from the program.
I also messed around a bit with pyglet.media.Player() but same observation persits: no error in terminal but no audio as well.
Any suggestions on how to fix the issue? Note that I would prefer to use Pyglet as this is the only spatial/binaural/positional audio Python package that has managed to work almost well without breaking my OS, so it would be best if alternative suggestions be a bit inline with this package and not entirely something different.
https://github.com/NicklasTegner/PyAL Since I was out of time. I tried experimenting with other OpenAL Python libraries and this one works fine.
Edit: The actual problem was not with Pyglet but with PulseAudio, which clashes with ALSA. I solved the problem by connecting an external USB audio card and audio was working properly (with HRTFs and all).

Error while trying to run HRTF example from PyAL (File descriptor in bad state) on Raspberry Pi

I am trying to experiment with HRTF audio spatialization using PyAL library on the Raspberry Pi
https://github.com/NicklasTegner/PyAL/tree/master/examples/HRTF
PyAL depends on OpenAL. I have installed necessary dependencies using sudo apt-get install to ensure the library works: libopenal-dev libopenal1 libopenal-data libmysofa-dev libmysofa0 libmysofa-utils qt5-default alsa-utils alsa-oss alsaplayer-jack g++ gstreamer1.0-python3-plugin-loader gstreamer1.0-alsa
Additionally, I installed pyglet using: sudo pip3 install pyglet
All examples (3D audio, playback, efx, audiplayer, player) work except the HRTF example. When I try to run the HRTF example, I get the following error:
AL lib: (EE) ALCplaybackAlsa_reset: snd_pcm_hw_params(self->pcmHandle, hp) failed: File descriptor in bad state
I know for a fact that this is being caused by PulseAudio not being present in the system (https://unix.stackexchange.com/questions/467193/error-while-running-the-gstreamer-example-on-development-kit-file-descriptor). So I installed pulseaudio and its corresponding tools (e.g. pavucontrol using sudo apt-get install pulseaudio.
After installing pulseaudio and rebooting, when I run that example, the example executes without error. However, I do not hear any audio output in the headphones. In fact, audio output from the entire system stops. I made sure the audio output is headphones from sudo raspi-config and alsamixer does show pulseaudio as a audio driver (when it is installed).
I am getting conflicting information from the Internet. The above link suggests using pulseaudio to mitigate the error (which is correct), whereas this link: https://www.youtube.com/watch?v=stvc7ehCWUU and https://raspberrypi.stackexchange.com/questions/1621/no-sound-output-in-vlc say to remove pulseaudio (which is also correct in the sense it brings my audio back but I can't run the HRTF example).
Any suggestions?
This is very odd, but I solved the problem by connecting a cheap external USB audio card (https://www.amazon.com/gp/product/B00IRVQ0F8/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1). Apparently, ALSA keeps control of 3.5mm jack and doesn't surrender control to Pulseaudio of that jack. Simplest solution is to use an external audio card.

Emulator, android studio

When I try run app in Android Studio I get warning:
Emulator: warning: host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5]
Does anyone know how to fix it?
I'm working on Linux Mint.
I played with (a pristine chroot of) Ubuntu 16.04 myself now. Without package grub-pc-bin installed, QEMU failed to boot the rescue image saying Could not read from CDROM (code 0004). After sudo apt-get install grub-pc-bin it booted fine. So I enforce use of platform i386-pc in the code now and produce an error if it's found missing.
I consider this ticket fixed. If you still run into issues, please make new tickets (with terminal output, Ubuntu version, and a screenshot of te QEMU window). Thanks!
more...
You can fix this by replacing your CPU to any, that support LZCNT feature. More detailed answer I posted here: Android Virtual Device ERROR on Android Studio

Ubuntu 16.04.3 intel skylake i915 external monitor not detected

My external monitor, connected via HDMI was working fine but now is not being detected (it says 'No video input'). I'm pretty sure I didn't make any changes to make it stop - it was working on the same setup yesterday.
I'm a pretty new linux user and also don't know much about graphics hardware and drivers. Appreciate any help, I'd like to understand what's going on!
I'm running Ubuntu 16.04.3 kernel 4.10.0-33
lshw -c video gives:
*-display
description: VGA compatible controller
product: Sky Lake Integrated Graphics
vendor: Intel Corporation
physical id: 2
bus info: pci#0000:00:02.0
version: 07
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:124 memory:f0000000-f0ffffff memory:e0000000-efffffff ioport:e000(size=64) memory:c0000-dffff
I've tried booting from grub into kernel 4.8.0 and the monitor still wasn't detected.
I've also tried to no avail:
sudo apt-get update
sudo apt-get install --reinstall xserver-xorg-video-intel xserver-xorg-core
sudo dpkg-reconfigure xserver-xorg
I've also tried running the Intel graphics update tool and this also hasn't solved anything.
EDIT: It seems like I get the 'No video input' probelm if I plug in the HDMI cord before the computer has finished booting.
Pretty much the only answer one can give here based on the available information is, try checking the display cables, and, if that doesn't help, file a bug. Debugging display problems like this can be fairly involved, with several cycles of requesting and providing more information. That doesn't really work all that well here.
The alternatives for filing the bug are Ubuntu Launchpad and drm/i915 upstream. Upstream has the best knowledge about the driver and the hardware, but, depending on the issue, you might be expected to build and run the userspace components or the kernel from upstream git repositories.
I come across the problem and solve it with exactly the same card (i had same lshw -c video) by searching the NVIDIA X-Server settings (search inside apps) on my Ubuntu 16 LTS and activate the NVIDIA drivers for this card (I have a NVIDIA GEFORCE GTX)
After i log out and i have a bad errors display and i was blocked " this computer is running in low display mode" .
I just switch off the computer and restart it...and taatatatat HDMI was working and was able to display on my external Sansumg 27''
I had the exact same issue as OP. lshw not showing HDMI port, nada. Reinstalling xserver* did not work either.
May the gods of stack overflow smile upon you for that EDIT line, because plugging only after boot was complete, it did work for me as well.
This is quite interesting, as I am running 20.04. This issue came out of nowhere, just turned on the computer and voila, it was not working. There had been no updates, no changes that could affect this during previous session.
Would love to know if someone else has bumped into this problem.

Pulseaudio no audio via bluetooth a2dp connection buildroot

Edit:
I discovered, that if I run parec | paplay --raw it does play back properly.
How is this possible? There should be just a simple module-loopback error or something like that.
I´m using the CHIP SBC from getchip.com to build an embedded bluetooth audio receiver.
getchip.com offers a debian linux and a customizable buildroot distribution.
I got everything working on the debian distribution with one exception. The volume control with iOS devices don´t work because of the lack of uinput inside the debian kernel.
That´s why i tried to get it to work with the buildroot distribution. It took me a while to get bluetoothd running with simple-agent, as well as pulseaudio built with bluetooth support and the dbus configuration.
I finally got everything ready.
But:
I can connect to the sbc, but there is no sound playing on the headphone jack.
My debugging steps so far:
I´m able to play a local .wav file via paplay
just fine.
I allowed every communication via dbus
the pulseaudio logs show, that sound is coming from the bluetooth source.
the module-switch-on-connect does spawn a loopback from the bluetooth source to the same audio sink as paplay uses.
Debug Logs:
Boot log
Pulseaudio verbose startup
/usr/bin/pulseaudio -vvvv --system --daemonize --disallow-exit
Bluetoothd verbose connection
/usr/libexec/bluetooth/bluetoothd -C -d &
and the bt-agent:
/usr/bin/bt-agent -d -c NoInputNoOutput -p /home/cubbo/.config/bluetooth-default-pin
Pulseaudio verbose connection
Configuration:
Pulseaudio system.pa
Pulseaudio daemon.conf
dbus system.conf
dbus-1/system.d/bluetooth.conf
dbus-1/system.d/pulseaudio-bluetooth.conf
bluetooth/audio.conf
bluetooth/main.conf
I´m pretty sure that I just miss some little configuration and it´ll play just fine. But after nearly one week of debugging I wanted to ask you for help.
I hope I´ve done everything right with attaching the logs via pastebin.
I would appreciate your help!
Thanks!
Greetings, Phil.
I had a similar problem on Antergos, A2DP was not available in pulseaudio.
A2DP was available only when restarting bluethooth service by "systemctl restart bluethooth"
It resulted to be a problem caused by GDM that opened another instance of pulseaudio and captured the bluethooth device. I prevented pulseaudio capturing bluethooth device by masking it for GDM user.
https://wiki.archlinux.org/index.php/Bluetooth_headset#Connecting_works.2C_but_I_cannot_play_sound
$ mkdir -p ~/.config/systemd/user
$ ln -s /dev/null ~/.config/systemd/user/pulseaudio.socket
[restart required]

Resources