2007-08-05

 

Intel HD Audio-inställningar

Att få igång HDA-kretsen i bland annat en del laptops kan vara lite knivigt. Probemet är att det finns många HDA-kretsar och ljud-drivrutinen (modulen) som stödjer dem ibland behöver få parametrar för att fungera på rätt sätt. Hur gör man då detta?

Svaret finns att få i ALSA-dokumentationen. Men först måste vi kolla vilken krets som datorn har. Detta gör enklast i terminalen genom kommandot

aplay -l
**** Lista över PLAYBACK hårdvaruenheter ****
kort 0: SB [HDA ATI SB], enhet 0: ALC861VD Analog [ALC861VD Analog]
Underordnade enheter: 1/1
Underordnad enhet #0: subdevice #0


I detta fallet är alltså kretsen av modellen ALC861VD.

För att detta skall fungera måste filen /etc/modprobe.d/alsa-base modifieras. Detta görs genom kommandot

sudo nano /etc/modprobe.d/alsa-base


För att få reda på vad som skall skrivas in, kollar man i listan nedan och får fram att det som ska in i filen /etc/modprobe.d/alsa-base är

options snd-hda-intel model=3stack


för att få utgångarna rätt. Kolla gärna igenom filen och se till att inte options snd-hda-intel återfinns på någon annan rad så att det skapas en konflikt.

Har man en S/PDIF-utgång på kortet kan man istället skriva

options snd-hda-intel model=3stack-dig


Här kommer listan med de olika modellerna av chip som stöds av modulen snd-hda-intel. Först listas chipnamnet, sedan de olika modellbeteckningarna som måste in efter model= i alsa-base-filen. Ibland kan det behövas viss laborering och testande för att få det helt rätt så ha tålamod.

Ursäkta den fula layouten, blogger suger. :(


Module snd-hda-intel
--------------------

Module for Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8),
ATI SB450, SB600, RS600,
VIA VT8251/VT8237A,
SIS966, ULI M5461

model - force the model name
position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)
single_cmd - Use single immediate commands to communicate with
codecs (for debugging only)
enable_msi - Enable Message Signaled Interrupt (MSI) (default = off)

This module supports one card and autoprobe.

Each codec may have a model table for different configurations.
If your machine isn't listed there, the default (usually minimal)
configuration is set up. You can pass "model=" option to
specify a certain model in such a case. There are different
models depending on the codec chip.

Model name Description
---------- -----------
ALC880
3stack 3-jack in back and a headphone out
3stack-digout 3-jack in back, a HP out and a SPDIF out
5stack 5-jack in back, 2-jack in front
5stack-digout 5-jack in back, 2-jack in front, a SPDIF out
6stack 6-jack in back, 2-jack in front
6stack-digout 6-jack with a SPDIF out
w810 3-jack
z71v 3-jack (HP shared SPDIF)
asus 3-jack (ASUS Mobo)
asus-w1v ASUS W1V
asus-dig ASUS with SPDIF out
asus-dig2 ASUS with SPDIF out (using GPIO2)
uniwill 3-jack
fujitsu Fujitsu Laptops (Pi1536)
F1734 2-jack
lg LG laptop (m1 express dual)
lg-lw LG LW20/LW25 laptop
tcl TCL S700
clevo Clevo laptops (m520G, m665n)
test for testing/debugging purpose, almost all controls can be
adjusted. Appearing only when compiled with
$CONFIG_SND_DEBUG=y
auto auto-config reading BIOS (default)

ALC260
hp HP machines
hp-3013 HP machines (3013-variant)
fujitsu Fujitsu S7020
acer Acer TravelMate
basic fixed pin assignment (old default model)
auto auto-config reading BIOS (default)

ALC262
fujitsu Fujitsu Laptop
hp-bpc HP xw4400/6400/8400/9400 laptops
hp-bpc-d7000 HP BPC D7000
benq Benq ED8
hippo Hippo (ATI) with jack detection, Sony UX-90s
hippo_1 Hippo (Benq) with jack detection
basic fixed pin assignment w/o SPDIF
auto auto-config reading BIOS (default)

ALC882/885
3stack-dig 3-jack with SPDIF I/O
6stack-dig 6-jack digital with SPDIF I/O
arima Arima W820Di1
macpro MacPro support
auto auto-config reading BIOS (default)

ALC883/888
3stack-dig 3-jack with SPDIF I/O
6stack-dig 6-jack digital with SPDIF I/O
3stack-6ch 3-jack 6-channel
3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
6stack-dig-demo 6-jack digital for Intel demo board
acer Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
medion Medion Laptops
targa-dig Targa/MSI
targa-2ch-dig Targs/MSI with 2-channel
laptop-eapd 3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)
auto auto-config reading BIOS (default)

ALC861/660
3stack 3-jack
3stack-dig 3-jack with SPDIF I/O
6stack-dig 6-jack with SPDIF I/O
3stack-660 3-jack (for ALC660)
uniwill-m31 Uniwill M31 laptop
toshiba Toshiba laptop support
asus Asus laptop support
asus-laptop ASUS F2/F3 laptops
auto auto-config reading BIOS (default)

ALC861VD/660VD
3stack 3-jack
3stack-dig 3-jack with SPDIF OUT
6stack-dig 6-jack with SPDIF OUT
3stack-660 3-jack (for ALC660VD)
auto auto-config reading BIOS (default)

CMI9880
minimal 3-jack in back
min_fp 3-jack in back, 2-jack in front
full 6-jack in back, 2-jack in front
full_dig 6-jack in back, 2-jack in front, SPDIF I/O
allout 5-jack in back, 2-jack in front, SPDIF out
auto auto-config reading BIOS (default)

AD1981
basic 3-jack (default)
hp HP nx6320
thinkpad Lenovo Thinkpad T60/X60/Z60

AD1986A
6stack 6-jack, separate surrounds (default)
3stack 3-stack, shared surrounds
laptop 2-channel only (FSC V2060, Samsung M50)
laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J)
ultra 2-channel with EAPD (Samsung Ultra tablet PC)

AD1988
6stack 6-jack
6stack-dig ditto with SPDIF
3stack 3-jack
3stack-dig ditto with SPDIF
laptop 3-jack with hp-jack automute
laptop-dig ditto with SPDIF
auto auto-config reading BIOS (default)

Conexant 5045
laptop Laptop config
test for testing/debugging purpose, almost all controls
can be adjusted. Appearing only when compiled with
$CONFIG_SND_DEBUG=y

Conexant 5047
laptop Basic Laptop config
laptop-hp Laptop config for some HP models (subdevice 30A5)
laptop-eapd Laptop config with EAPD support
test for testing/debugging purpose, almost all controls
can be adjusted. Appearing only when compiled with
$CONFIG_SND_DEBUG=y

STAC9200/9205/9254
ref Reference board

STAC9220/9221
ref Reference board
3stack D945 3stack
5stack D945 5stack + SPDIF
macmini Intel Mac Mini
macbook Intel Mac Book
macbook-pro Intel Mac Book Pro

STAC9202/9250/9251
ref Reference board, base config
m2-2 Some Gateway MX series laptops
m6 Some Gateway NX series laptops

STAC9227/9228/9229/927x
ref Reference board
3stack D965 3stack
5stack D965 5stack + SPDIF

STAC9872
vaio Setup for VAIO FE550G/SZ110
vaio-ar Setup for VAIO AR

If the default configuration doesn't work and one of the above
matches with your device, report it together with the PCI
subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel
ML (see the section "Links and Addresses").

Note 2: If you get click noises on output, try the module option
position_fix=1 or 2. position_fix=1 will use the SD_LPIB
register value without FIFO size correction as the current
DMA pointer. position_fix=2 will make the driver to use
the position buffer instead of reading SD_LPIB register.
(Usually SD_LPLIB register is more accurate than the
position buffer.)

NB: If you get many "azx_get_response timeout" messages at
loading, it's likely a problem of interrupts (e.g. ACPI irq
routing). Try to boot with options like "pci=noacpi". Also, you
can try "single_cmd=1" module option. This will switch the
communication method between HDA controller and codecs to the
single immediate commands instead of CORB/RIRB. Basically, the
single command mode is provided only for BIOS, and you won't get
unsolicited events, too. But, at least, this works independently
from the irq. Remember this is a last resort, and should be
avoided as much as possible...

The power-management is supported.


Hoppas att detta hjälper några.

2007-05-11

 

UbuntuStudio släppt!

Efter lite längre väntan än vad som förutspåtts är äntligen UbuntuStudio släppt!

UbuntuStudio bygger på Feisty Fawn, dvs. Ubuntu 7.04 och är inriktat på musik-, bild- och videoskapande.

Läs mer på http://ubuntustudio.com

Andra bloggar om: , , , ,

Etiketter: , , , ,


2007-04-25

 

Firewire i Jackd

Freebob som krävs för Firewire-ljudkort finns med som standard, inkompilerat från Jackd version 0.102.20. Har du en version som är lika med eller högre än detta kan du således använda Firewire-ljudkort med BeBoB + några till ljudkortsvarianter. Läs vidare under Firewire.

Kolla din version med kommandot

jackd --version

2007-01-17

 

Rädda Jop.. Ardour - död eller levande!

Pga en intressekonflikt har Ardour förlorat sin huvudsponsor. Detta i ett kritiskt skede precis innan Ardour 2 ska släppas. De behöver $8000 donerat innan den 28e febuari, för att Paul Davis ska kunna fortsätta som heltidsutvecklare. I skrivande stund har de fått in $992.

Kolla högst upp till höger på sidan för mer information: http://ardour.org/

2006-12-19

 

JACK - QJackCtl


Figur 1: Huvudfönstret i QJackCtl

QJackCtl kan användas för att konfigurera Jack, under knappen Setup.

Här kan bland annat ställas in om man vill att Jack ska köras i realtid, vilken storlek det ska vara på ljudbufferten (Frames/Period), vilken samplingsfrekvens som ska användas och hur många perioder som ska användas (Periods/Buffer). Man kan även ställa in med vilken prioritet Jack-servern ska köras, vilken drivrutin som skall användas osv. Under Display-fliken går det även att ställa in att alla kopplingar ska ritas ut med bezier-kurvor istället för raka linjer, vilken ökar läsbarheten en aning.


Figur 2: Inställningsfönstret i QJackCtl

I nedre högra hörnet visas ett uträknat värde på latency vid olika buffertstorlekar och samplingsfrekvenser. Det ändras när inställningarna gör det.

PATCHBAY

I patchbay-fönstret kan man spara en aktuell konfiguration, skapa nya kopplingar eller modifiera befintliga.


Figur 3: Patchbayfönstret i QJackCtl

Formatet på spar-filen är XML. Patchbay-fönstret är bra att använda när man t ex har en speciell kopplingshierarki i Jack och vill spara den för att arbeta senare. Man sparar då både MIDI- och Audio-kopplingar i en och samma fil.


CONNECTIONSFÖNSTRET


Figur 4: Connectionsfönstret i QJackCtl

Connectionsfönstret används för att göra audio- och MIDI-kopplingar mellan programmen. Det har två flikar, en för ljud och en för MIDI. Att koppla ihop två portar sker genom att man markerar dem och klickar på Connect.

 

JACK - grunder

JACK (Jack Audio Connection Kit) är ett lager som finns mellan ALSA och de program som används.

Jack används för att transportera ljud-data mellan olika program och ljudenheter, med sig själv i mitten som en typ av kopplingsplint. Den är byggd för låg latency och för synkron uppspelning. Jack är motsvarigheten till Windows-världens ASIO och WDM och till Mac-världens CoreAudio och GSIF, eller ReWire och DirectConnect.

Jack kan även användas till att sända internet-radio via Icecast, skapa AC3-ljud från fem ljudkällor, eller skriva ner ljuddata till filer på hårddisken.

Tyvärr har Jack lite svårt att samexistera med andra ljudhanterare, såsom esd, aRts och andra. Det kan därför vara nödvändigt att starta upp Jack medan inga andra program använder ALSA, eller om de gör det, stänga av programmen för att starta upp Jack först.

JACK KOMMANDOVÄXLAR

Jack i sig själv har inget grafiskt gränssnitt, men det finns några grafiska klienter till Jack, varav QJackCtl är den vanligaste. Alla inställningsmöjligheter i QJackCtl har som sig bör motsvarigheter om man kör Jack från kommandoraden. Syntaxen för dessa är dock en aning förvirrande. Till exempel kan -d användas två gånger på samma rad med olika betydelser. Det finns dessutom -D som betyder en tredje sak. Intrigen tätnar.

Först och främst, när man använder Jack bör man specificera vilken drivrutin man ska använda för att köra servern. Detta gör man med växeln -d. För att använda Jack med ALSA-drivrutinen skriver man:

jackd -d alsa


Andra drivers som kan användas är coreaudio, dummy, oss, portaudio eller om man har firewire-stöd inkompilerat; freebob. Absolut vanligast är att köra med alsa eller freebob.

Om vi fokuserar på alsa-drivrutinen så har den ett antal inställningsmöjligheter, bland andra:

För att återgå till de allmäna kommandona för Jack är -R (eller --realtime) den som ändrar Jack till att köra i realtidsprioritet. Man kan även sätta vilken prioritet man vill köra Jack i med växeln -P och ange ett nummer mellan 0 och 100. Rekommenderat värde är någonstans nära 70, se annan artikel.

JACKSTART

Ett annat program, eller egentligen samma fast med andra växlar, är jackstart, som startar jackd-servern med realtidsegenskaper för vanliga användare. Har man en realtidskärna är detta det rekommenderade sättet att starta Jack.

Ett exempel, att starta Jack med ALSA på första ljudkortsenheten med samplingsfrekvensen 96kHz, en buffertstorlek på 2x256 samples och prioritet 70 ger:
jackstart -R -P 70 -d alsa -r 96000 -p 256 -n 2 -d hw:0

Ett stående tips är att kolla vad det finns för olika drivrutiner genom att köra jackstart/jackd med växeln --help:


jackd -d alsa --help
jackd -d coreaudio --help
jackd -d dummy --help
jackd -d freebob --help
jackd -d oss --help
jackd -d portaudio --help



NÖDVÄNDIGA INSTÄLLNINGAR


Förutom att få till Jack, bör man även skapa sig ett litet temporärt filsystem som Jack kan använda för att temporärspara sin data. De flesta Linux-distributioner idag har journalförande filsystem (Ext3, XFS, ReiserFS etc.), vilket gör att data bara skrivs med vissa intervaller. Vid ljudhantering i realtid producerar detta XRUNS (buffertspill).

Man konfigurerar detta genom att i sin filsystems-tabell /etc/fstab skriva in följande på en egen rad:

none /tmp/jack tmpfs defaults 0 0


Editera genom att (som root) t ex skriva:

nano /etc/fstab


Det finns andra sätt att optimera sitt system, och dessa kommer vi att gå igenom i ett annat avsnitt.

2006-11-28

 

Nytt Linuxforum

Numera finns det ett forum för att ställa frågor om ljudproduktion i Linux, på svenska. Hoppas att så många som möjligt söker sig dit. Det finns på tidningen Studios forum.

Vi ses där. :)

2006-11-21

 

VST i Ardour (ej färdig)

Denna instruktion är än så länge inte universell. Den riktar sig främst till Ubuntu-användare. Därmed inte sagt att det inte går att använda sig av den för att få en fungerande Ardour2-beta med VST-stöd, men vissa paket-namn för libraries och liknande kan skilja sig åt. Jag kommer att skriva en mer generell senare, men jag vill bara få ut den här först, så att ni kan se att det kan göras.

Frågor kan ställas i kommentarfunktionen om det är något som inte fungerar.


INNAN DU BÖRJAR

För att bygga Ardour 2 beta med VST-stöd behövs följande verktyg (minst):

gcc/g++ 3.x
scons 0.96
python 2.3.4
gettext 0.12.1
pkgconfig 0.8.0
libtool

Dessutom behövs ett antal kodbibliotek (libraries):

JACK 0.100
XML2
art_lgpl 2.3.16
samplerate 1.0
raptor
lrdf
glib 2.10
GTK+ 2.8 (plus andra GTK krav som pango, ATK och Cairo)
libgnomecanvas
sndfile 1.0.16
liblo
boost
wine-dev

Eftersom jag inte har dykt in i det med avsikten att dokumentera från början så kommer jag inte ihåg vilka kodbibliotek som jag installerade. Dessutom kan det variera vilka man måste installera beroende på vad som finns installerat på maskinen innan man börjar. Därför är det svårt att få med allt. Hoppas att ni har överseende med det i den här preliminära versionen.


VST SOFTWARE DEVELOPMENT KIT

Dessutom måste man ha VST SDK (Software Development Kit) 2.3 för att få in rätt stöd.

Detta kan laddas hem ifrån http://ygrabit.steinberg.de/~ygrabit/public_html/index.html. Klicka på länken där det står: "VST Audio Plug-Ins SDK 2.4 Revision 1"

Läs och klicka därefter på länken som lyder: "Proceed to read the VST PlugIns SDK Licencing Agreement"

Läs sedan igenom licensvillkoren och klicka längst ner på sidan där det står "I AGREE (Download Version 2.3)".

Fyll i förnamn, efternamn, epost och kryssrutan "I agree Licensing Agreement*".

Klicka på "Send form". Ladda sedan ner VST SDK 2.3 och spara undan det på lämpligt ställe, där ni helst ska kunna hitta det.




Dessutom behöver man alltså källkoden till Ardour 2 (i skrivande stund är den senaste Ardour 2.0 beta 8) som man hämtar här:

http://ardour.org/releases

och packar upp den i katalogen /usr/src/ med

$ cp ardour-2.0beta8.tar.bz2 /usr/src/
$ cd /usr/src/
$ tar jxvf ardour-2.0beta8.tar.bz2


VST-STÖD

I källkodsbiblioteket för Ardour (/usr/src/ardour-2.0beta8/) finns en katalog som heter libs/fst/

Kopiera in VST SDK 2.3 i /libs/fst katalogen.

unzip vst_sdk2_3.zip
unzip vstsdk2.3.zip
cp -R vstsdk2.3/ /usr/src/ardour-2.0beta8/libs/fst/

Sen skapar vi en katalog:

cd /usr/src/ardour-2.0beta8/
mkdir /libs/fst/vst

Sen kopierar vi in alla *.h (header-filer) från libs/fst/vstsdk2.3/source/common/ till /libs/fst/vst med kommandot:

cp libs/fst/vstsdk2.3/source/common/*.h libs/fst/vst/

För att kompilera Ardour använder vi programmet scons. För att skilja programmen åt installerar vi Ardour i /usr/local/ genom att använda PREFIX=/usr/local såhär:

scons VST=1 PREFIX=/usr/local

När allt har konfigurerats klart och det ser okej ut, kör:

scons install

Det kan hända att det inte går igenom över huvud taget, eftersom vissa kodbibliotek saknas eller liknande. Oftast kan man få en hint om detta via felmeddelandet. Någon detaljerad genomgång blir det inte i detta temporära dokument. Vi önskar lycka till ändå!


TESTA

Kör installationsprogram för VST-plugins via Wine, lägg .dll-erna i en katalog dit sedan miljövariabeln VST_PLUGINS sedan pekar, t ex:

export VST_PLUGINS=/home/username/audio/vst

kör igång ardour, och räkna med att det kan gå lite långsamt att starta upp. =)

/usr/local/bin/ardourvst &

This page is powered by Blogger. Isn't yours?