Raspberry Pi Music Server med inbyggda Crossover och DSP (8 / 12 steg)
Steg 8: Steg 8a: förstå filen .asoundrc
asoundrc är den lokala konfigurationen för ALSA för * användaren * så om du kör sudo speaker-test, du får olika resultat än om du kör bara speaker-test.
Konfigurationsfilen har några distinkta delar att var och en berätta ALSA som LADSPA plugins att köra och vilka kanaler att skicka utdata till.
Här är en super Kommenterad version av filen .asoundrc delat på min github
< p > #asound rc nya version jrubinstein - experimental med charlies plugin < br > pcm.! standard {#this är enhetens namn < /p >< p > #which är därför vi kallar speaker-test - D standard... Detta gör denna config "försummelsen" < /p >< p > typ plug #it's en plugin
Slave.PCM filtereq #send utdata till slav "enhet" plugin
}
CTL.! standard {# jag inte vet faktiskt vad det betyder, men det verkar tala alsa vi vill skicka ljud att < br > # inte är standard till maskinvaruenhet 0 < br > Skriv hw < br > kort 0 < /p >< p >}
PCM.filtereq {#the namnet på nästa enhet i kedjan
Skriv ladspa #type - ladspa plugins
Slave.PCM filtercross #where gör produktionen gå
Stig "/ usr/lib/ladspa" #where dessa plugins live
kanaler 8 #how många kanaler. Även om du bara använder 2 (vänster och höger) på detta stadium, stannar detta på 8
plugins # listan över plugins
{< /p >< p > 0 {
etikett ACDf #call ACDf för Charlies Active Crossover Design plugins
politik ingen #dunno vilken politik ingen betyder. Ändra inte det
input.bindings.0 "Input" #channel 0 (vänster) är indata
output.bindings.0 "Output" #channel0 (till vänster) är produktionen
Mata in {kontroller [28 1 6 120 1 1 1]} # 2: a ordningen bas hylla höja 6db på 120hz < br > #calls filtertyp 28, med normala polaritet, 6 dB boost, med 120hz, Qp = 1, Fz (används inte) = 1, Qz (används inte) = 1 < /p >< p >
}
1 {
etikett ACDf
politik ingen
input.bindings.0 "Input"
output.bindings.0 "Output"
ingående {kontroller [26 1-6 164 4 1 1]} #parametric digital eq skärande 6db vid 164 hz med q 4
}
2 {
etikett ACDf
politik ingen
input.bindings.0 "Input"
output.bindings.0 "Output"
ingående {kontroller [26 1-6 250 4 1 1]} #parametric digital eq skärande 6db vid 164 hz med q 4
}
3 {
etikett ACDf
politik ingen
input.bindings.0 "Input"
output.bindings.0 "Output"
Mata in {kontroller [26 1 6 193 5 1 1]} #parametric digital eq höja 6db på 193 med q 5
}
4 {
etikett ACDf
politik ingen
input.bindings.1 "Input"
output.bindings.1 "Output"
input {kontroller [28 1 6 120 1 1 1]}
}
5 {
etikett ACDf
politik ingen
input.bindings.1 "Input"
output.bindings.1 "Output"
ingående {kontroller [26 1-6 164 4 1 1]}
}
6 {
etikett ACDf
politik ingen
input.bindings.1 "Input"
output.bindings.1 "Output"
ingående {kontroller [26 1-6 250 4 1 1]}
}
7 {
etikett ACDf
politik ingen
input.bindings.1 "Input"
output.bindings.1 "Output"
input {kontroller [26 1 6 193 5 1 1]}
}
8 {
etikett ACDf
politik ingen
input.bindings.0 "Input"
output.bindings.0 "Output"
Mata in {kontroller [22 1 0 40 1 1 1]} # 2: a ordningen Brytfrekvens vid 40 hz som subsonicfilter
}
9 {
etikett ACDf
politik ingen
input.bindings.0 "Input"
output.bindings.0 "Output"
Mata in {kontroller [22 1 0 40 1 1 1]} # 2: a ordningen Brytfrekvens vid 40 hz
}
309
etikett ACDf
politik ingen
input.bindings.1 "Input"
output.bindings.1 "Output"
Mata in {kontroller [22 1 0 40 1 1 1]} # 2: a ordningen Brytfrekvens vid 40 hz som subsonicfilter
}
319
etikett ACDf
politik ingen
input.bindings.1 "Input"
output.bindings.1 "Output"
Mata in {kontroller [22 1 0 40 1 1 1]} # 2: a ordningen Brytfrekvens vid 40 hz
}
}
}
PCM.filtercross {#the namnet på nästa enhet i vår kedja
Skriv ladspa
Slave.PCM högtalare #sends utgång till "talare"
Stig "/ usr/lib/ladspa"
kanalerna 8
plugins
{
0 {
etikett ACDf #lowpass för woofer utgång till channel2
politik ingen
input.bindings.0 "Input"
output.bindings.2 "Output"
ingående {kontroller [21 -1-10 300 0,5 1 1]} # [filter typ polaritet dbgain frekvens q]
}
1 {
etikett ACDf #lowpass för woofer utgång till channel3
politik ingen
input.bindings.1 "Input"
output.bindings.3 "Output"
ingående {kontroller [21 -1-10 300 0,5 1 1]} # 2: a ordningen variabelt vid 300 hz
}
2 {
etikett ACDf #highpass för tweeter utgång till channel4
politik ingen
input.bindings.0 "Input"
output.bindings.4 "Output"
ingående {kontroller [22 -1-23 3000 1 1 1]} # 2: a ordningen Brytfrekvens på 3000 hz
}
3 {
etikett ACDf #highpass för tweeter utgång till channel4 filter 2
politik ingen
input.bindings.0 "Input"
output.bindings.4 "Output"
Mata in {kontroller [22 1 0 3000 1 1 1]} # 2: a ordningen Brytfrekvens på 3000 hz
}
4 {
etikett ACDf #highpass för tweeter utgång till channel4
politik ingen
input.bindings.1 "Input"
output.bindings.5 "Output"
ingående {kontroller [22 -1-23 3000 1 1 1]} # 2: a ordningen Brytfrekvens på 3000 hz
}
5 {
etikett ACDf #highpass för tweeter utgång till channel4 filter 2
politik ingen
input.bindings.1 "Input"
output.bindings.5 "Output"
Mata in {kontroller [22 1 0 3000 1 1 1]} # 2: a ordningen Brytfrekvens på 3000 hz
}
6 {
etikett ACDf #lowpass1 som mitten av utdata till channel0
politik ingen
input.bindings.0 "Input"
output.bindings.6 "Output"
ingående {kontroller [21 1-14 3000 0,707 1 1]} # 2: a ordningen variabelt på 3000 hz-4db cut
}
7 {
etikett ACDf #lowpass2 som mitten av utdata till channel0
politik ingen
input.bindings.0 "Input"
output.bindings.6 "Output"
ingående {kontroller [21 1 0 3000 0,707 1 1]} # 2: a ordningen variabelt på 3000 hz
}
8 {
etikett ACDf #highpass som mitten av utdata till channel0
politik ingen
input.bindings.0 "Input"
output.bindings.6 "Output"
ingående {kontroller [22 1 0 300 0,5 1 1]} # 2: a ordningen Brytfrekvens vid 300 hz
}
9 {
etikett ACDf #lowpass1 för mitten av utgång till channel1
politik ingen
input.bindings.1 "Input"
output.bindings.7 "Output"
ingående {kontroller [21 1-14 3000 0,707 1 1]} # 2: a ordningen variabelt på 3000 hz-4db cut
}
10 {
etikett ACDf #lowpass2 för mitten av utgång till channel1
politik ingen
input.bindings.1 "Input"
output.bindings.7 "Output"
ingående {kontroller [21 1 0 3000 0,707 1 1]} # 2: a ordningen variabelt på 3000 hz
}
11 {
etikett ACDf #highpass för mitten av utgång till channel1
politik ingen
input.bindings.1 "Input"
output.bindings.7 "Output"
ingående {kontroller [22 1 0 300 0,5 1 1]} # 2: a ordningen Brytfrekvens vid 300 hz
}
}
}
PCM.Speaker {
typ plug
slav {
PCM "t-bord"
kanalerna 8
kurs "oförändrat" #rate oförändrat innebär Sampla inte ljudsignalen. < br > #if du har en 44,1 DAC, ändra detta
}
}
PCM.t-tabell {#t-bord är inte statistik det är en kanal tabell
skriva route
slav {
PCM "hw:0, 0" #we utgång ljud från här till hw:0, 0 som är adressen till HDMI-utgången
kanalerna 8
}
tabell {
0,0 0 # används denna kanal karta för att skicka signaler till rätt plats < br > # din kanal karta kan vara olika, se till att det fungerar för dig baserat på kanal mappningarna från tidigare
1.1 0 # kanal in.channel ut på/av
2.0 1 #left bas detta ger mig den låga filtren för vänster woofer på kanal 0 = vänster
3.7 1 #right bas = SBR
4.6 1 #left diskant = SBL
5.5 1 #right diskant = Surr höger
6.4 1 #left mitten av = surr left
7.3 1 #right mid = center
}
} < /p >< p > pcm.plughw.slave.rate = "oförändrat"; < /p >