Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:raspberrypi [2015/04/19 09:56]
autostatic [Running JACK]
wiki:raspberrypi [2020/03/15 17:50] (current)
autostatic [On-board audio]
Line 30: Line 30:
 ===== Disabling unneeded services ===== ===== Disabling unneeded services =====
  
-By default the RPi runs quite some services that are not really needed or even get in the way when setting up a real-time, low-latency environment. One way to disable such services from running and chewing up precious CPU cycles is to write a little script, an example can be found here: https://​github.com/​AutoStatic/scripts/raw/rpi/​rpi/​jackstart+By default the RPi runs quite some services that are not really needed or even get in the way when setting up a real-time, low-latency environment. One way to disable such services from running and chewing up precious CPU cycles is to write a little script, an example can be found here: https://​github.com/​autostatic/scripts/blob/​rpi/​jackstart
  
 Breaking down the script: Breaking down the script:
Line 97: Line 97:
 ===== On-board audio ===== ===== On-board audio =====
  
-The on-board chipset of the RPi has quite some limitations unfortunately. It only does playback and because of it'​s ​design it is not really suited for real-time, low-latency audio processing. It does work with JACK now that it has MMAP support but don't expect it to run without glitches at lower latencies.+The on-board chipset of the RPi has quite some limitations unfortunately. It only does playback and because of its PWM (Pulse Wide Modulation) based design it is not really suited for real-time, low-latency audio processing. It does work with JACK now that it has MMAP support but don't expect it to run without glitches at lower latencies.
  
 Other drawbacks of the analog audio output: Other drawbacks of the analog audio output:
Line 107: Line 107:
 http://​www.raspberrypi.org/​phpBB3/​viewtopic.php?​p=297563 http://​www.raspberrypi.org/​phpBB3/​viewtopic.php?​p=297563
  
 +===== GPIO (On-board) audio =====
 +
 +Various sound card hats and addons are available for high quality audio. These sound cards use the GPIO I2S (and I2C) pins on the GPIO header. Some sound cards have inputs as well as outputs. Sound cards range from 2 channels (in/out) to 8 channels out and 6 channels in.
 +
 +A short list of GPIO sound cards can be found on eLinux :\\
 +http://​elinux.org/​index.php?​title=RPi_Expansion_Boards#​Sound
 ===== On-board MIDI ===== ===== On-board MIDI =====
  
Line 163: Line 169:
 Another option is to comment or remove the kernel module for the onboard soundcard (snd-bcm2835) from ''/​etc/​modules''​. Keep in mind this will disable the onboard sound altogether. This might save you some precious CPU cycles too but don't expect too much of it. Another option is to comment or remove the kernel module for the onboard soundcard (snd-bcm2835) from ''/​etc/​modules''​. Keep in mind this will disable the onboard sound altogether. This might save you some precious CPU cycles too but don't expect too much of it.
  
-===== Audio software repository ===== 
  
-There'​s a [[http://​rpi.autostatic.com/​|repository]] available with packages of Jack1, Jack2 (both patched for use on ARM) and a small collection of software that is either not available or not up to date in the standard Raspbian repositories. 
- 
-==== Adding the repository ==== 
- 
-  wget -O - http://​rpi.autostatic.com/​autostatic.gpg.key| sudo apt-key add - 
-  sudo wget -O /​etc/​apt/​sources.list.d/​autostatic-audio-raspbian.list http://​rpi.autostatic.com/​autostatic-audio-raspbian.list 
-  sudo apt-get update 
  
 ===== Using JACK ===== ===== Using JACK =====
Line 212: Line 210:
   | sudo tee /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_governor   | sudo tee /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_governor
  
-When using Jack2 you might want to disable dbus dependent code in JACK components if you want to run Jack2 on a headless RPi (so without X). You can do this by building without the ''​--dbus''​ option. Another option is to export the following environment variable before starting JACK2:+When using Jack2 you might want to disable dbus dependent code in JACK components if you want to run Jack2 on a headless RPi (so without X). You can do this by building without the ''​--dbus''​ option. The JACK2 packages in the AutoStatic repositories have dbus disabled. Another option is to export the following environment variable before starting JACK2:
   export DBUS_SESSION_BUS_ADDRESS=unix:​path=/​run/​dbus/​system_bus_socket   export DBUS_SESSION_BUS_ADDRESS=unix:​path=/​run/​dbus/​system_bus_socket
 +
 +And then add the following lines to ''/​etc/​dbus-1/​system.conf''​ before the closing ''</​busconfig>''​ tag:
 +    <policy user="​pi">​
 +          <allow own="​org.freedesktop.ReserveDevice1.Audio0"/>​
 +          <allow own="​org.freedesktop.ReserveDevice1.Audio1"/>​
 +    </​policy>​
 +    ​
 +WARNING: In Raspbian Stretch I had to do the following instead of modifying ''​system.conf'':​
 +
 +Create a new file ''/​etc/​dbus-1/​system-local.conf''​ with the following contents:
 +
 +    <?xml version="​1.0"?>​ <​!--*-nxml-*-->​
 +    <​!DOCTYPE busconfig PUBLIC "​-//​freedesktop//​DTD D-BUS Bus Configuration 1.0//​EN"​
 +            "​http://​www.freedesktop.org/​standards/​dbus/​1.0/​busconfig.dtd">​
 +    ​
 +    <​busconfig>​
 +    ​
 +            <policy context="​default">​
 +                    <allow own="​org.freedesktop.ReserveDevice1.Audio0"/>​
 +                    <allow own="​org.freedesktop.ReserveDevice1.Audio1"/>​
 +            </​policy>​
 +    ​
 +    </​busconfig>​
 +
 +
  
 === Using an external USB audio interface === === Using an external USB audio interface ===
Line 233: Line 256:
  
 [[http://​wiki.linuxaudio.org/​wiki/​system_configuration#​build_your_own_real-time_kernel|Building a real-time kernel]] [[http://​wiki.linuxaudio.org/​wiki/​system_configuration#​build_your_own_real-time_kernel|Building a real-time kernel]]
 +
 +[[https://​github.com/​dddomin3/​DSPi/​|Instructions for kernel compilation modernized for Pi 3]]
  
 {{tag>​hardware_linux usb_audio_midi raspberry_pi howtos_and_faqs}} {{tag>​hardware_linux usb_audio_midi raspberry_pi howtos_and_faqs}}
wiki/raspberrypi.1429430210.txt.gz ยท Last modified: 2015/04/19 09:56 by autostatic