BruteFIR M-Audio 2496 Sampling Rates + Analog In

Antworten
tom_on_wheels
Aktiver Hörer
Beiträge: 1141
Registriert: 11.07.2010, 17:53
Wohnort: Berlin
Kontaktdaten:

BruteFIR M-Audio 2496 Sampling Rates + Analog In

Beitrag von tom_on_wheels »

Hallo,

ich habe zwei Fragen an die BruteFIR-Auskenner:

- Ich versuche gerade, meinem BruteFIR auf USB-Stick (SPBlinux) beizubringen, dass es gefälligst auch Sampling Rates von 88,2 und 96 kHz akzeptieren soll. Habe alle confdelta2496_...-Dateien für 44,1 und 48 kHz kopiert und jeweils mit Notepad2 editiert, und zwar jeweils die Sampling Rates und die Verweise auf die korrekten Korrekturdateien und dann unter confdelta2496_88... oder confdelta2496_96... abgespeichert. Die Korrekturdateien wurden für alle 4 Sampling Rates mit Acourate berechnet und liegen im richtigen Verzeichnis. Wenn ich eine Datei mit 88,2 oder 96 kHz abspiele, bekomme ich die Meldung "Broken Pipe". Muss ich noch andere Dateien editieren bzw. muss ich der M-Audio Audiophile noch was mitteilen?

- Ich würde gerne analog vom Phonopre rein. Dafür habe ich in den confdelta2496_xx-Dateien den Absatz

Code: Alles auswählen

## INPUT S/PDIF

input "d_leftin", "d_rightin" {
	device: "alsa" { device: "hw:0"; ignore_xrun: true; };
	sample: "S24_4LE";
	channels: 12/8,9;
};

geändert in:

## INPUT analog, S/PDIF

input "a_leftin", "a_rightin", "d_leftin", "d_rightin" {
	device: "alsa" { device: "hw:0"; ignore_xrun: true; };
	sample: "S24_4LE";
	channels: 12/0,1,8,9;
};
Wenn ich BruteFIR starte, kommt ein Warnhinweis in etwa wie "a_leftin und a_rightin not in use". Also muss ich der Audiophile noch sagen, dass sie die analogen Inputs aufmachen soll, nur wie? So sehen meine Soundkarteneinstellungen in der Datei delta2496 im Startordner aus:

Code: Alles auswählen

######################
# Soundcard settings #
######################
# Dr. Ulrich Brueggemann 2009/04/16
# Dr. Gert Volk 2009/04/03
#
# Info:
# ICE 1712 SPDIF I/O synch auf SPDIF I + analog I/O
# driver: snd=snd-ice1712
# digital: hw: 0
# input analog: channels: 12/0,1
# input digital: channels: 12/8,9;
# output digital: channels: 10/8,9
# output analog: channels: 10/0,1
# sample: S24_4LE;
#
# Remark:
# delta2496_spdif will report the settings in file alsa_report
# in the root folder. If there are errors in the file delta2496
# has to be corrected. This may happen with changes of soundcard
# revision or firmware. Then
# amixer contents > /contents
# allows to check for new settings in the file contents.
# 
#************************************
#
# ADC Volume
#  ; type=INTEGER,access=rw---R--,values=1,min=0,max=163,step=0
#  : values=0
#  | dBscale-min=-63.50dB,step=0.50dB,mute=1
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='ADC Volume' 0 > /alsa_report
amixer -c 0 cset iface=MIXER,name='ADC Volume',index=1 0 >> /alsa_report

# spdif input on
#  ; type=BOOLEAN,access=rw------,values=2
#  : values=off,off
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='IEC958 Multi Capture Switch' on,on >> /alsa_report
amixer -c 0 cset iface=MIXER,name='IEC958 Multi Capture Switch',index=1 off,off >> /alsa_report

# spdif multi capture volume max
#  ; type=INTEGER,access=rw------,values=2,min=0,max=96,step=0
#  : values=0,0
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='IEC958 Multi Capture Volume' 96,96 >> /alsa_report
amixer -c 0 cset iface=MIXER,name='IEC958 Multi Capture Volume',index=1 0,0 >> /alsa_report

# spdif playback route pcm out
#  ; type=ENUMERATED,access=rw------,values=1,items=12
#  ; Item #0 'PCM Out'
#  ; Item #1 'H/W In 0'
#  ; Item #2 'H/W In 1'
#  ; Item #3 'H/W In 2'
#  ; Item #4 'H/W In 3'
#  ; Item #5 'H/W In 4'
#  ; Item #6 'H/W In 5'
#  ; Item #7 'H/W In 6'
#  ; Item #8 'H/W In 7'
#  ; Item #9 'IEC958 In L'
#  ; Item #10 'IEC958 In R'
#  ; Item #11 'Digital Mixer'
#  : values=0
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='IEC958 Playback Route' 0 >> /alsa_report
amixer -c 0 cset iface=MIXER,name='IEC958 Playback Route',index=1 0 >> /alsa_report

# analog out
#  ; type=INTEGER,access=rw---R--,values=1,min=0,max=127,step=0
#  : values=0
#  | dBscale-min=-63.50dB,step=0.50dB,mute=1
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='DAC Volume' 127 >> /alsa_report
amixer -c 0 cset iface=MIXER,name='DAC Volume',index=1 127 >> /alsa_report

# normally we run without emphasis
#  ; type=ENUMERATED,access=rw------,values=1,items=4
#  ; Item #0 '44.1kHz'
#  ; Item #1 'Off'
#  ; Item #2 '48kHz'
#  ; Item #3 '32kHz'
#  : values=1
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='Deemphasis' 1 >> /alsa_report

# Multi Track Internal Clock
#  ; type=ENUMERATED,access=rw------,values=1,items=14
#  ; Item #0 '8000'
#  ; Item #1 '9600'
#  ; Item #2 '11025'
#  ; Item #3 '12000'
#  ; Item #4 '16000'
#  ; Item #5 '22050'
#  ; Item #6 '24000'
#  ; Item #7 '32000'
#  ; Item #8 '44100'
#  ; Item #9 '48000'
#  ; Item #10 '64000'
#  ; Item #11 '88200'
#  ; Item #12 '96000'
#  ; Item #13 'IEC958 Input'
#  : values=9
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='Multi Track Internal Clock' 13 >> /alsa_report

# Multi Track Internal Clock Default
#  ; type=ENUMERATED,access=rw------,values=1,items=13
#  ; Item #0 '8000'
#  ; Item #1 '9600'
#  ; Item #2 '11025'
#  ; Item #3 '12000'
#  ; Item #4 '16000'
#  ; Item #5 '22050'
#  ; Item #6 '24000'
#  ; Item #7 '32000'
#  ; Item #8 '44100'
#  ; Item #9 '48000'
#  ; Item #10 '64000'
#  ; Item #11 '88200'
#  ; Item #12 '96000'
#  : values=8
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='Multi Track Internal Clock Default' 8 >> /alsa_report

# Rate Locking is set off, allows to follow different sources
#  ; type=BOOLEAN,access=rw------,values=1
#  : values=off
#-------------------------------------------------------------
amixer -c 0 cset iface=MIXER,name='Multi Track Rate Locking' off >> /alsa_report



#*****************************************************
#*   IEC958 Playback Default = IEC Status Bits       *
#*****************************************************
# numid=11,iface=PCM,name='IEC958 Playback Default',device=1
#  ; type=IEC958,access=rw---,values=1
# Setting never required
# Do not write
Weiß jemand von Euch, was hier geändert werden muss? Ich hatte den ADC Volume schon mal auf 163 gesetzt, hat aber nix geholfen. Dieses Linux-Zeug ist echt wie böhmische Dörfer. Uli gab auch noch den Hinweis, dass für den Analogeingang eine Sampling Rate definiert werden muss. Wo tue ich das denn am besten?

Puh, Fragen über Fragen! Ich wäre für Eure Hilfe sehr dankbar.

Viele Grüße
Tom

P.S.: Und falls zufällig jemand zufällig einen funktionierenden Stick für die RME HDSP 9652 mit analog/digital rein und (analog)/digital raus für 2-Wege-Stereo am Laufen hat, wäre eine Nachricht sehr willkommen.
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Bei dem kHZ Problem kann ich dir nicht weiterhelfen...
Da könnte man evtl. etwas sehen wenn Du die gesamten Meldungen vom Start bis zur Fehlermeldung postest.

Die Warnung mit den nicht benutzten Eingängen hat einfach den Grund, dass sie vermutlich nicht weiter in der brutefir_config verarbeitet werden...

Hier hilft es die gesamte config Datei zu posten.

Der Übersicht halber besser nicht in dieser Code-Box, oder kommt das automatisch?
tom_on_wheels
Aktiver Hörer
Beiträge: 1141
Registriert: 11.07.2010, 17:53
Wohnort: Berlin
Kontaktdaten:

Beitrag von tom_on_wheels »

Hi Alchimist,

so sieht eine BruteFIR config z.B. für 88all aus, hatte gerade noch mal was verändert, die Meldung a_leftin und a_rightin not in use ist weg, werde gleich mal hören, ob ich ein Signal von Platte bekomme, wobei da ist noch die Einstellung mit der festen Sampling Rate.

Code: Alles auswählen

## DEFAULT GENERAL SETTINGS ##

float_bits: 64;             # internal floating point precision
sampling_rate: 88200;       # sampling rate in Hz of audio interfaces
filter_length: 4096,16;     # length of filters
overflow_warnings: true;    # echo warnings to stderr if overflow occurs
show_progress: false;       # echo filtering progress to stderr
max_dither_table_size: 0;   # maximum size in bytes of precalculated dither
allow_poll_mode: true;      # allow use of input poll mode
modules_path: "/usr/lib/brutefir";   # extra path where to find BruteFIR modules
monitor_rate: true;         # monitor sample rate
powersave: true;            # pause filtering when input is zero
lock_memory: true;          # try to lock memory if realtime prio is set
convolver_config: "/home/audiovero/.brutefir_convolver"; # location of convolver config file

## LOGIC ##

logic: "cli" { port: 3000; };

## COEFFS ##

coeff "lcoeff" {
    filename: "/audiovero/brutefir/filter/play/Cor1L88.dbl";
    format: "FLOAT64_LE";
};

coeff "rcoeff" {
    filename: "/audiovero/brutefir/filter/play/Cor1R88.dbl";
    format: "FLOAT64_LE";
};

coeff "lcoeff2" {
    filename: "/audiovero/brutefir/filter/play/mpCor1L88.dbl";
    format: "FLOAT64_LE";
};

coeff "rcoeff2" {
    filename: "/audiovero/brutefir/filter/play/mpCor1R88.dbl";
    format: "FLOAT64_LE";
};

coeff "lcoeff3" {
    filename: "/audiovero/brutefir/filter/play/dirac.dbl";
    format: "FLOAT64_LE";
};

coeff "rcoeff3" {
    filename: "/audiovero/brutefir/filter/play/dirac.dbl";
    format: "FLOAT64_LE";
};


## INPUT analog, S/PDIF

input "a_leftin", "a_rightin", "d_leftin", "d_rightin" {
    device: "alsa" { device: "hw:0"; ignore_xrun: true; };
    sample: "S24_4LE";
    channels: 12/0,1,8,9;
};

## OUTPUT analog, S/PDIF

output "a_leftout", "a_rightout", "d_leftout", "d_rightout" {
    device: "alsa" { device: "hw:0"; ignore_xrun: true; };
    sample: "S24_4LE";
    channels: 10/0,1,8,9;
#    delay: 0,0;
#    dither: true;
};

## FILTERS ##

filter "leftfilter" {
    from_inputs: "a_leftin", "d_leftin";
    to_outputs: "a_leftout", "d_leftout";
#    coeff: -1;
    coeff: "lcoeff";
};

filter "rightfilter" {
    from_inputs: "a_rightin", "d_rightin";
    to_outputs: "a_rightout", "d_rightout";
#    coeff: -1;
    coeff: "rcoeff";
};

Oh, ich habs begriffen, wie Ihr das immer mit diesen Kästchen zum Scrollen macht ;-)

Grüße
Tom
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Tom,

1.
gleichzeitig analog und digital rein geht nicht. Bei digitalem Eingang muss sich das System auf die externe Clockfrequenz synchronisieren, also dem Eingangstakt folgen. Der wiederum fehlt beim analogen Eingang. Dort muss man selbst der Soundkarte vorgeben, mit welcher Taktfrequenz sie arbeiten soll.

Das ist dann jeweils in der Soundkarteninitialisierung vorzugeben. In /brutefir/start wird diese in einem eigenen Skript durchgeführt. Da stehen dann eine Reihe von amixer-Kommandos drin. Und dabei gibt es eines, welches eben Autosync oder eine interne Taktfrequenz vorgibt.

Im Prinzip muss man dann beim Umschalten eines Einganges, z.B. digital auf analog, eben auch ein zugehöiges Skript aufrufen.

2.
Wenn Brutefir eine broken pipe meldet, dann ist irgendetwas überlastet. Man kann zum einen mit der filter length in der config spielen, z.B. 8192,8 anstelle 4090,16. Dabei verwendet man also grössere Pakete und die intern durchgeführten Fouriertransformationen werden effektiver gerechnet (zu grosse Pakete verschlechtern das Ergebnis allerdings wieder). Oder man schaltet mit float_bits auf 32 bits um, die Rechnungen mit einfacher Gleitkommagenauigkeit sind schneller. Die Rechengenauigkeit sollte trotzdem noch ok sein.

Grüsse, Uli
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Die Brutefir Config scheint mir soweit fehlerfrei zu sein (sofern Du keine Meldung bekommst und Brutefir durchläuft)

Ich würde allerdings für die analoge Wiedergabe die digitalen Eingänge aus dem Skript rauswerfen...

Die Einstellungen im Alsamixer sollten noch überprüft werden (ob die Analogen Eingänge und Ausgänge nicht auf "Mute" stehen)

Was passiert mit der Karte wenn Sie keinen Takt vorgeschrieben bekommt, schaltet sie denn dann nicht auf eine "Standardfrequenz" (meine Asus steht von Hause aus immer auf 44.1) oder macht die Karte dann keinen PieP?
tom_on_wheels
Aktiver Hörer
Beiträge: 1141
Registriert: 11.07.2010, 17:53
Wohnort: Berlin
Kontaktdaten:

Beitrag von tom_on_wheels »

Ich habe 88,1 und 96 kHz am Laufen. Der Fehler war weder die filter length noch float_bits mit 64, sondern dass ich die Dateien auf dem Windows-Rechner mit dem von Uli für irgendeine Gelegenheit empfohlenen linuxfähigen Editor Notepad2 editiert habe. Der Editor versieht jedoch jede conf mit der Endung .txt . Das ist mir eben erst aufgefallen, als ich den Midnight Commander angeschmissen hatte. Schnell im MC die Dateien editiert und siehe da, es läuft.

Nun gehe ich auch noch den analogen Eingang an.

Ich liebe Computer :mrgreen:
Bild
Antworten