No nazdar,
pomocí nástroje HDAAnalyzer (http://www.alsa-project.org/main/index.php/HDA_Analyzer) jsem si sešteloval parametry zvukovky, mám větší zesílení mikrofónu, než mi dovoloval mixér, u mikrofonního vstupu jsem si vypnul napájení mikrofónu (nemám elektret, mám místo něj dynamickej, vlastně repráček), výstup LFE má vyšší úroveň, proto u zesilovače nemusím nastavovat vstupní citlivost tak vysoko, že je trochu slyšet brum, navíc jsou basy hutnější, příjemnější. Prostě krása. Má to ale jeden háček- hejbnu s mixérem a nastavení je v defaultu.
Vygeneroval jsem si ale skript, kterej když spustím, znovu se použije moje nastavení (zase dokud nesáhnu na mixér).
Proto bych rád, aby to moje nastavení bylo trvalý. Dá se to nějak udělat?
Tady je obsah onoho skriptu:
#!/usr/bin/env python
import os
import struct
from fcntl import ioctl
def __ioctl_val(val):
# workaround for OverFlow bug in python 2.4
if val & 0x80000000:
return -((val^0xffffffff)+1)
return val
IOCTL_INFO = __ioctl_val(0x80dc4801)
IOCTL_PVERSION = __ioctl_val(0x80044810)
IOCTL_VERB_WRITE = __ioctl_val(0xc0084811)
def set(nid, verb, param):
verb = (nid << 24) | (verb << 8) | param
res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0))
FD = os.open("/dev/snd/hwC0D0", os.O_RDONLY)
info = struct.pack('Ii64s80si64s', 0, 0, '', '', 0, '')
res = ioctl(FD, IOCTL_INFO, info)
name = struct.unpack('Ii64s80si64s', res)[3]
if not name.startswith('HDA Codec'):
raise IOError, "unknown HDA hwdep interface"
res = ioctl(FD, IOCTL_PVERSION, struct.pack('I', 0))
version = struct.unpack('I', res)
if version < 0x00010000: # 1.0.0
raise IOError, "unknown HDA hwdep version"
# initialization sequence starts here...
set(0x17, 0x300, 0x6100) # 0x17036100 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6200) # 0x17036200 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6300) # 0x17036300 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6400) # 0x17036400 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6500) # 0x17036500 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5100) # 0x17035100 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5200) # 0x17035200 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5300) # 0x17035300 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5400) # 0x17035400 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5500) # 0x17035500 (SET_AMP_GAIN_MUTE)
set(0x19, 0x300, 0xa01b) # 0x1903a01b (SET_AMP_GAIN_MUTE)
set(0x19, 0x300, 0x901b) # 0x1903901b (SET_AMP_GAIN_MUTE)
set(0x1a, 0x300, 0xa01b) # 0x1a03a01b (SET_AMP_GAIN_MUTE)
set(0x1a, 0x300, 0x901b) # 0x1a03901b (SET_AMP_GAIN_MUTE)
set(0x1b, 0x300, 0xa01b) # 0x1b03a01b (SET_AMP_GAIN_MUTE)
set(0x1b, 0x300, 0x901b) # 0x1b03901b (SET_AMP_GAIN_MUTE)
os.close(FD)