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-12-15

 

MIDI - introduktion

Att få MIDI att fungera i Linux kan verka knepigt till en början, speciellt om man är van vid annat operativsystem där man har ljud från start. Det första du bör göra är att kontrollera om modulen snd_seq är laddad och det gör du genom följande kommando:
$ lsmod | grep snd_seq

Om modulen inte ser ut att vara aktiv så ordnas detta genom att först ladda modulen. Observera att du måste vara superanvändare/root.
# modprobe snd_seq

När du startar om datorn kommer modulen att behöva laddas igen och för att slippa tänka på det råder jag till att öppna filen /etc/modules och där lägga till "snd_seq" (utan citationstecken) på en egen rad längst ner i dokumentet. Spara och stäng. Vet du inte hur du gör detta kan du använda följande kommando:
# nano /etc/modules

Genom 'ctrl' + 'x' stänger du nu. Tryck sedan 'j' för att spara. Det minst komplicerade sättet att nu få ljud är att använda Qsynth och jag vill verkligen rekommendera det programmmet. Har du Ubuntu finns det i Ubuntus förråd (repositories). För övriga distributioner kan jag inte svara på hur du får tag i det, men jag tror inte det är särsilt svårt. Qsynth är en mjukvarusynth som är enkel att använda och den kan köras under både ALSA och JACK. Själv är jag förstås förtjust i JACK eftersom man då också kan använda Rosegarden som sequencer tillsammans med Qsynth. (Du kan ställa in vilken ljuddrivrutin Qsynth ska använda i programmet.)

Andra alternativ är MusE eller seq24och vilket som är bäst är som det brukar vara - en smaksak. Rosegarden är min favorit eftersom jag då kan hantera både MIDI och audiospår i samma projekt. Även MusE klarar visserligen detta men Rosegardens struktur passar mig bättre.

I Qsynth kan du använda soundfonter för att få ljud och det finns fria sådana att ladda ner lite överallt på internet. De har filändelsen .sf2 och jag kan för enkelhetens skull rekommendera att du har tillgång till åtminstone en soundfont som följer GM-standarden (General MIDI). Klicka på "Setup" och sedan "Soundfonts". Nu kan du ladda din soundfont i Qsynth och klicka "Ok" för att stänga dialogrutan.


Figur 1: Ladda en soundfont.

För att testa om det fungerar rekommenderar jag att du, om du inte redan har en, letar reda på en MIDI-fil på internet och sparar ner den på hårddisken. Installera sedan Rosegarden, öppna programmet samtidigt som du har JACK och Qsynth igång.

Uppe till höger i Rosegarden finns en ikon som ser ut som ett klaviatur och ett grönt kort och om du för musen över så står det "Hantera MIDI-enheter". Klicka på den. Under rubriken "Enhet" ser du nu texten "General MIDI Device" och under "Anslutning" bredvid "General MIDI Device" finns en klickbar ruta där du har några olika alternativ. Där väljer du alternativet som ser ut ungefär enligt följande: "130:0 Synth input port (6004;0)(write)". Nu kan du öppna din MIDI-fil och bör höra ljud när du spelar den.


Figur 2: Skicka MIDI-signalen till Qsynth.

Tips: Om du har ett Sound Blaster Live! ljudkort finns ett ännu enklare sätt att komma igång med MIDI direkt i Rosegarden utan att Qsynth används. Klicka på "Settings" i verktygsraden och sedan på "Configure Rosegarden".


Figur 3: Välja automatisk soundfont-laddning

Där har du sedan tre alternativ, hos mig heter de på svenska "Allmänt", "Sequencer" och "Notation". Välj "Sequencer", alltså alternativet i mitten. Där finns en kryssruta där du kan välja "Ladda ljudsamplingar" till Soundblasterkort vid start. Kryssa i den. Nu måste du lokalisera filen "asfxload" eller sfxload" och om den finns på din dator ligger den troligen i /usr/bin. Hittar du den inte är paketet troligen inte installerat och då måste du så klart göra det.

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. :)

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