!!################################ !!ALSA Information Script v 0.4.64 !!################################ !!Script ran on: Tue Oct 8 04:06:11 UTC 2019 !!Linux Distribution !!------------------ ID_LIKE=debian !!DMI Information !!--------------- Manufacturer: Product Name: Product Version: Firmware Version: !!Kernel Information !!------------------ Kernel release: 4.19.66-v7 Operating System: GNU/Linux Architecture: armv7l Processor: unknown SMP Enabled: Yes !!ALSA Version !!------------ Driver version: k4.19.66-v7 Library version: 1.1.3 Utilities version: 1.1.3 !!Loaded ALSA modules !!------------------- snd_soc_wm8960_soundcard !!Sound Servers on this system !!---------------------------- No sound servers found. !!Soundcards recognised by ALSA !!----------------------------- 0 [wm8960soundcard]: wm8960-soundcar - wm8960-soundcard wm8960-soundcard !!Modprobe options (Sound related) !!-------------------------------- snd_pcsp: index=-2 snd_usb_audio: index=-2 snd_atiixp_modem: index=-2 snd_intel8x0m: index=-2 snd_via82xx_modem: index=-2 !!Loaded sound module options !!--------------------------- !!Module: snd_soc_wm8960_soundcard * : !!ALSA Device nodes !!----------------- crw-rw---- 1 root audio 116, 0 Sep 30 08:17 /dev/snd/controlC0 crw-rw---- 1 root audio 116, 24 Sep 30 08:17 /dev/snd/pcmC0D0c crw-rw---- 1 root audio 116, 16 Sep 30 08:17 /dev/snd/pcmC0D0p crw-rw---- 1 root audio 116, 1 Sep 30 08:17 /dev/snd/seq crw-rw---- 1 root audio 116, 33 Sep 30 08:17 /dev/snd/timer /dev/snd/by-path: total 0 drwxr-xr-x 2 root root 60 Sep 30 08:17 . drwxr-xr-x 3 root root 160 Sep 30 08:17 .. lrwxrwxrwx 1 root root 12 Sep 30 08:17 platform-soc:sound -> ../controlC0 !!ALSA configuration files !!------------------------ !!System wide config file (/etc/asound.conf) # The IPC key of dmix or dsnoop plugin must be unique # If 555555 or 666666 is used by other processes, use another one # use samplerate to resample as speexdsp resample is bad defaults.pcm.rate_converter "samplerate" pam.i2s_dac{ type hw card 0 } pcm.!default { type asym playback.pcm "playback" capture.pcm "capture" } pcm.playback { type plug slave.pcm "dmixed" } pcm.capture { type plug slave.pcm "array" } pcm.dmixed { type dmix slave.pcm "hw:wm8960soundcard" ipc_key 555555 } pcm.array { type dsnoop slave { pcm "hw:wm8960soundcard" channels 2 } ipc_key 666666 } !!Aplay/Arecord output !!-------------------- APLAY **** List of PLAYBACK Hardware Devices **** card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 ARECORD **** List of CAPTURE Hardware Devices **** card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 !!Amixer output !!------------- !!-------Mixer controls for card 0 [wm8960soundcard]:] Card hw:0 'wm8960soundcard'/'wm8960-soundcard' Mixer name : '' Components : '' Controls : 58 Simple ctrls : 51 Simple mixer control 'Headphone',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 127 Mono: Front Left: Playback 109 [86%] [-12.00dB] Front Right: Playback 109 [86%] [-12.00dB] Simple mixer control 'Headphone Playback ZC',0 Capabilities: pswitch Playback channels: Front Left - Front Right Mono: Front Left: Playback [off] Front Right: Playback [off] Simple mixer control 'Speaker',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 127 Mono: Front Left: Playback 109 [86%] [-12.00dB] Front Right: Playback 109 [86%] [-12.00dB] Simple mixer control 'Speaker AC',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 5 Mono: 4 [80%] Simple mixer control 'Speaker DC',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 5 Mono: 4 [80%] Simple mixer control 'Speaker Playback ZC',0 Capabilities: pswitch Playback channels: Front Left - Front Right Mono: Front Left: Playback [off] Front Right: Playback [off] Simple mixer control 'PCM Playback -6dB',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Mono Output Mixer Left',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Mono Output Mixer Right',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Playback',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 255 Front Left: 255 [100%] [0.00dB] Front Right: 255 [100%] [0.00dB] Simple mixer control 'Capture',0 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 63 Front Left: Capture 39 [62%] [12.00dB] [on] Front Right: Capture 39 [62%] [12.00dB] [on] Simple mixer control '3D',0 Capabilities: volume volume-joined pswitch pswitch-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 15 Mono: 0 [0%] Playback [off] Simple mixer control '3D Filter Lower Cut-Off',0 Capabilities: enum Items: 'Low' 'High' Item0: 'Low' Simple mixer control '3D Filter Upper Cut-Off',0 Capabilities: enum Items: 'High' 'Low' Item0: 'High' Simple mixer control 'ADC Data Output Select',0 Capabilities: enum Items: 'Left Data = Left ADC; Right Data = Right ADC' 'Left Data = Left ADC; Right Data = Left ADC' 'Left Data = Right ADC; Right Data = Right ADC' 'Left Data = Right ADC; Right Data = Left ADC' Item0: 'Left Data = Left ADC; Right Data = Right ADC' Simple mixer control 'ADC High Pass Filter',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'ADC PCM',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 255 Front Left: Capture 195 [76%] [0.00dB] Front Right: Capture 195 [76%] [0.00dB] Simple mixer control 'ADC Polarity',0 Capabilities: enum Items: 'No Inversion' 'Left Inverted' 'Right Inverted' 'Stereo Inversion' Item0: 'No Inversion' Simple mixer control 'ALC Attack',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 15 Mono: 2 [13%] Simple mixer control 'ALC Decay',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 15 Mono: 3 [20%] Simple mixer control 'ALC Function',0 Capabilities: enum Items: 'Off' 'Right' 'Left' 'Stereo' Item0: 'Off' Simple mixer control 'ALC Hold Time',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 15 Mono: 0 [0%] Simple mixer control 'ALC Max Gain',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 7 [100%] Simple mixer control 'ALC Min Gain',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] Simple mixer control 'ALC Mode',0 Capabilities: enum Items: 'ALC' 'Limiter' Item0: 'ALC' Simple mixer control 'ALC Target',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 15 Mono: 4 [27%] Simple mixer control 'DAC Deemphasis',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'DAC Mono Mix',0 Capabilities: enum Items: 'Stereo' 'Mono' Item0: 'Stereo' Simple mixer control 'DAC Polarity',0 Capabilities: enum Items: 'No Inversion' 'Left Inverted' 'Right Inverted' 'Stereo Inversion' Item0: 'No Inversion' Simple mixer control 'Left Boost Mixer LINPUT1',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'Left Boost Mixer LINPUT2',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Left Boost Mixer LINPUT3',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Left Input Boost Mixer LINPUT1',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 3 Mono: 3 [100%] [29.00dB] Simple mixer control 'Left Input Boost Mixer LINPUT2',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] [-99999.99dB] Simple mixer control 'Left Input Boost Mixer LINPUT3',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] [-99999.99dB] Simple mixer control 'Left Input Mixer Boost',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'Left Output Mixer Boost Bypass',0 Capabilities: volume volume-joined pswitch pswitch-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] [-21.00dB] Playback [off] Simple mixer control 'Left Output Mixer LINPUT3',0 Capabilities: volume volume-joined pswitch pswitch-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] [-21.00dB] Playback [off] Simple mixer control 'Left Output Mixer PCM',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'Noise Gate',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Noise Gate Threshold',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 31 Mono: 0 [0%] Simple mixer control 'Right Boost Mixer RINPUT1',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'Right Boost Mixer RINPUT2',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Right Boost Mixer RINPUT3',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Right Input Boost Mixer RINPUT1',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 3 Mono: 3 [100%] [29.00dB] Simple mixer control 'Right Input Boost Mixer RINPUT2',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] [-99999.99dB] Simple mixer control 'Right Input Boost Mixer RINPUT3',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 0 [0%] [-99999.99dB] Simple mixer control 'Right Input Mixer Boost',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'Right Output Mixer Boost Bypass',0 Capabilities: volume volume-joined pswitch pswitch-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 5 [71%] [-6.00dB] Playback [off] Simple mixer control 'Right Output Mixer PCM',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'Right Output Mixer RINPUT3',0 Capabilities: volume volume-joined pswitch pswitch-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 7 Mono: 2 [29%] [-15.00dB] Playback [off] !!Alsactl output !!-------------- --startcollapse-- state.wm8960soundcard { control.1 { iface MIXER name 'Capture Volume' value.0 39 value.1 39 comment { access 'read write' type INTEGER count 2 range '0 - 63' dbmin -1725 dbmax 3000 dbvalue.0 1200 dbvalue.1 1200 } } control.2 { iface MIXER name 'Capture Volume ZC Switch' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 1' } } control.3 { iface MIXER name 'Capture Switch' value.0 true value.1 true comment { access 'read write' type BOOLEAN count 2 } } control.4 { iface MIXER name 'Left Input Boost Mixer LINPUT3 Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -9999999 dbmax 600 dbvalue.0 -9999999 } } control.5 { iface MIXER name 'Left Input Boost Mixer LINPUT2 Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -9999999 dbmax 600 dbvalue.0 -9999999 } } control.6 { iface MIXER name 'Right Input Boost Mixer RINPUT3 Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -9999999 dbmax 600 dbvalue.0 -9999999 } } control.7 { iface MIXER name 'Right Input Boost Mixer RINPUT2 Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -9999999 dbmax 600 dbvalue.0 -9999999 } } control.8 { iface MIXER name 'Right Input Boost Mixer RINPUT1 Volume' value 3 comment { access 'read write' type INTEGER count 1 range '0 - 3' dbmin 0 dbmax 2900 dbvalue.0 2900 } } control.9 { iface MIXER name 'Left Input Boost Mixer LINPUT1 Volume' value 3 comment { access 'read write' type INTEGER count 1 range '0 - 3' dbmin 0 dbmax 2900 dbvalue.0 2900 } } control.10 { iface MIXER name 'Playback Volume' value.0 255 value.1 255 comment { access 'read write' type INTEGER count 2 range '0 - 255' dbmin -9999999 dbmax 0 dbvalue.0 0 dbvalue.1 0 } } control.11 { iface MIXER name 'Headphone Playback Volume' value.0 109 value.1 109 comment { access 'read write' type INTEGER count 2 range '0 - 127' dbmin -9999999 dbmax 600 dbvalue.0 -1200 dbvalue.1 -1200 } } control.12 { iface MIXER name 'Headphone Playback ZC Switch' value.0 false value.1 false comment { access 'read write' type BOOLEAN count 2 } } control.13 { iface MIXER name 'Speaker Playback Volume' value.0 109 value.1 109 comment { access 'read write' type INTEGER count 2 range '0 - 127' dbmin -9999999 dbmax 600 dbvalue.0 -1200 dbvalue.1 -1200 } } control.14 { iface MIXER name 'Speaker Playback ZC Switch' value.0 false value.1 false comment { access 'read write' type BOOLEAN count 2 } } control.15 { iface MIXER name 'Speaker DC Volume' value 4 comment { access 'read write' type INTEGER count 1 range '0 - 5' } } control.16 { iface MIXER name 'Speaker AC Volume' value 4 comment { access 'read write' type INTEGER count 1 range '0 - 5' } } control.17 { iface MIXER name 'PCM Playback -6dB Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.18 { iface MIXER name 'ADC Polarity' value 'No Inversion' comment { access 'read write' type ENUMERATED count 1 item.0 'No Inversion' item.1 'Left Inverted' item.2 'Right Inverted' item.3 'Stereo Inversion' } } control.19 { iface MIXER name 'ADC High Pass Filter Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.20 { iface MIXER name 'DAC Polarity' value 'No Inversion' comment { access 'read write' type ENUMERATED count 1 item.0 'No Inversion' item.1 'Left Inverted' item.2 'Right Inverted' item.3 'Stereo Inversion' } } control.21 { iface MIXER name 'DAC Deemphasis Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.22 { iface MIXER name '3D Filter Upper Cut-Off' value High comment { access 'read write' type ENUMERATED count 1 item.0 High item.1 Low } } control.23 { iface MIXER name '3D Filter Lower Cut-Off' value Low comment { access 'read write' type ENUMERATED count 1 item.0 Low item.1 High } } control.24 { iface MIXER name '3D Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.25 { iface MIXER name '3D Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.26 { iface MIXER name 'ALC Function' value Off comment { access 'read write' type ENUMERATED count 1 item.0 Off item.1 Right item.2 Left item.3 Stereo } } control.27 { iface MIXER name 'ALC Max Gain' value 7 comment { access 'read write' type INTEGER count 1 range '0 - 7' } } control.28 { iface MIXER name 'ALC Target' value 4 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.29 { iface MIXER name 'ALC Min Gain' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' } } control.30 { iface MIXER name 'ALC Hold Time' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.31 { iface MIXER name 'ALC Mode' value ALC comment { access 'read write' type ENUMERATED count 1 item.0 ALC item.1 Limiter } } control.32 { iface MIXER name 'ALC Decay' value 3 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.33 { iface MIXER name 'ALC Attack' value 2 comment { access 'read write' type INTEGER count 1 range '0 - 15' } } control.34 { iface MIXER name 'Noise Gate Threshold' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.35 { iface MIXER name 'Noise Gate Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.36 { iface MIXER name 'ADC PCM Capture Volume' value.0 195 value.1 195 comment { access 'read write' type INTEGER count 2 range '0 - 255' dbmin -9999999 dbmax 3000 dbvalue.0 0 dbvalue.1 0 } } control.37 { iface MIXER name 'Left Output Mixer Boost Bypass Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -2100 dbmax 0 dbvalue.0 -2100 } } control.38 { iface MIXER name 'Left Output Mixer LINPUT3 Volume' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -2100 dbmax 0 dbvalue.0 -2100 } } control.39 { iface MIXER name 'Right Output Mixer Boost Bypass Volume' value 5 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -2100 dbmax 0 dbvalue.0 -600 } } control.40 { iface MIXER name 'Right Output Mixer RINPUT3 Volume' value 2 comment { access 'read write' type INTEGER count 1 range '0 - 7' dbmin -2100 dbmax 0 dbvalue.0 -1500 } } control.41 { iface MIXER name 'ADC Data Output Select' value 'Left Data = Left ADC; Right Data = Right ADC' comment { access 'read write' type ENUMERATED count 1 item.0 'Left Data = Left ADC; Right Data = Right ADC' item.1 'Left Data = Left ADC; Right Data = Left ADC' item.2 'Left Data = Right ADC; Right Data = Right ADC' item.3 'Left Data = Right ADC; Right Data = Left ADC' } } control.42 { iface MIXER name 'DAC Mono Mix' value Stereo comment { access 'read write' type ENUMERATED count 1 item.0 Stereo item.1 Mono } } control.43 { iface MIXER name 'Left Boost Mixer LINPUT2 Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.44 { iface MIXER name 'Left Boost Mixer LINPUT3 Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.45 { iface MIXER name 'Left Boost Mixer LINPUT1 Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.46 { iface MIXER name 'Right Boost Mixer RINPUT2 Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.47 { iface MIXER name 'Right Boost Mixer RINPUT3 Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.48 { iface MIXER name 'Right Boost Mixer RINPUT1 Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.49 { iface MIXER name 'Left Input Mixer Boost Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.50 { iface MIXER name 'Right Input Mixer Boost Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.51 { iface MIXER name 'Left Output Mixer PCM Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.52 { iface MIXER name 'Left Output Mixer LINPUT3 Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.53 { iface MIXER name 'Left Output Mixer Boost Bypass Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.54 { iface MIXER name 'Right Output Mixer PCM Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.55 { iface MIXER name 'Right Output Mixer RINPUT3 Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.56 { iface MIXER name 'Right Output Mixer Boost Bypass Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.57 { iface MIXER name 'Mono Output Mixer Left Switch' value false comment { access 'read write' type BOOLEAN count 1 } } control.58 { iface MIXER name 'Mono Output Mixer Right Switch' value false comment { access 'read write' type BOOLEAN count 1 } } } --endcollapse-- !!All Loaded Modules !!------------------ Module w1_therm w1_gpio wire cn brcmfmac brcmutil sha256_generic cfg80211 rfkill bcm2835_codec raspberrypi_hwmon bcm2835_v4l2 hwmon v4l2_mem2mem v4l2_common bcm2835_mmal_vchiq videobuf2_vmalloc videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 videobuf2_common i2c_bcm2835 videodev media snd_soc_bcm2835_i2s vc_sm_cma fixed uio_pdrv_genirq uio snd_soc_wm8960_soundcard snd_soc_simple_card_utils snd_soc_wm8960 snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd i2c_dev ip_tables x_tables ipv6 !!ALSA/HDA dmesg !!-------------- [ 2.305776] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read) [ 2.650665] systemd[1]: Configuration file /lib/systemd/system/wm8960-soundcard.service is marked executable. Please remove executable permission bits. Proceeding anyway. [ 2.773041] systemd[1]: Listening on Syslog Socket. -- [ 2.993256] i2c /dev entries driver [ 3.090115] snd_soc_wm8960: loading out-of-tree module taints kernel. [ 3.365235] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) -- [ 3.939734] videodev: Linux video capture interface: v2.00 [ 3.953552] asoc-simple-card soc:sound: wm8960-hifi <-> 3f203000.i2s mapping ok [ 3.988006] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.