Jump to content
Annons

Firepod i Linux


YogSothoth

Recommended Posts

Hej!

På CryingFreemans begäran startar jag en egen tråd om Firepod i Linux. Jag har nyss köpt en Firepod och tänkte dela med mig lite om hur den funkar och vad som krävs i mjukvaruväg. Själv kör jag Debian, så alla paketnamn och versioner kommer därifrån, men motsvarande borde finnas i andra distar också.

Som svar på CryingFreemans fråga (i den förra tråden) om det saknas något i linux jämfört med windows, är det möjligheten att ställa om till extern synk. Jag har inte grävt i det ännu eftersom behovet inte dykt upp, men enligt utvecklarna är det på gång i senare versioner av drivrutinen.

För att använda firepoden krävs först och främst FreeBoB som är en drivrutin för firewire-kort baserade på BeBoB-firmware. Dessutom krävs Jack med stöd för freebob som druvrutin.

Jag använder följande versioner (debian-dist inom parentes):

libfreebob0 1.0.0-3 (testing)

jackd 0.102.20-1 (experimental)

libjack0.100.0-0 0.102.20-1 (experimental)

qjackctl 0.2.21-1 (testing) (inte helt nödvändigt, men väldigt praktiskt)

Notera att jack-paketen inte finns för i386 i experimental ännu, jag kör amd64.

Jag håller för tillfället på att brottas med två problem som är ganska irriterande:

1. Freebob (eller jack) verkar inte återställa poden ordentligt när man startar om jack, vilket är mindre bra. Krävs ofta omstart för att interfacet skall vakna igen.

2. Hydrogen fungerar inte, kan bero på ovanstående, jag tror att den försöker starta om jack...

Förhoppningsvis går det att lösa genom att installera nyare version av freebob, har för mig att jag läste någonstans om problem med reset av just firepod, men jag hittar det inte just nu.

Vad som däremot fungerar bra är själva inspelningen, har testat 24/96 i ett par kanaler med 2 ms latency (med ardour). Några enstaka klick har kommit med, men jag har inte optimerat prioriteringen för processerna/irq än, så det är ingen större överraskning. Med lite optimering kan man förmodligen komma under 2 ms utan klick.

Just nu är alltså stödet lite skakigt (i Debian) för Firepod, men grundfunktionaliteten finns där. Jag misstänker att läget ser annorlunda ut om några månader, freebob är i ett ganska tidigt stadium ännu (1.0 släpptes i oktober). Kan nog inte rekommendera eventuella nybörjare på linux att köpa en firepod ännu, men har man lite linuxvana och inte ger upp med en gång skall den nog gå att få igång. Jag åtekommer när jag testat lite senare versioner av freebob och trixat med prioriteringar, med förhoppningsvis bättre resultat.

/Andreas

Link to comment
Dela på andra sajter

Annons

Går det att justera in-nivåer på Firepoden också? Jag menar som i exempelvis Alsamixer..

Jag såg att det numera finns paket av libfreebob till bl a Debian, ArchLinux och dynebolic på freebobs site.

Jag har gjort en tillfällig guide på http://linux-daw.blogspot.com/2006/11/fire...ort-ofrdig.html

Det hade varit grymt bra om du kunde kolla autenticiteten i den och återkomma om du saknar något/ser några felaktigheter. 🥰 Jag har försökt att ta med alla steg, eller rent av plagiera freebobs install-howto, men jag har inte testat den själv än eftersom jag saknar firewire-kort.

Valet står mellan firepod och firebox. I nuläget räcker firebox bra, men om man bygger för framtiden så är det kanske lika bra att lägga ut några tusen extra.. 😆

Link to comment
Dela på andra sajter

Hej!

Jasså det är du som har gjort linux-daw bloggen, ser man på... Bra initiativ! Jag tror det stämmer det du skriver där (har bara kikat igenom det snabbt, men det ser vettigt ut), fast eftersom jag använt paket till allting var ju installationen lite annorlunda för mig. Jag har inte behövt kompilera någonting förutom kerneln, för att få bättre realtime-stöd.

Jag har utgått från Debian testing och plockat dom paket som inte fanns/var för gamla från unstable/experimental. Smidigast är nog egentligen att använda apt-pinning, se 3.8-3.10, men jag gjorde det lite halv-manuellt genom att ändra i /etc/apt/sources-list. Kör man med vettig apt-pinning riskerar man inte att som jag oavsiktligt uppgradera hela systemet till experimental 😄 Har nedgraderat nu...

Med rätt apt-pinning skall det gå att köra nedanstående för att installera det som inte finns i testing:

apt-get install -t experimental libjack0.100.0-0 jackd

Angående mixer-inställningar har jag hittils bara använt pottarna på framsidan och ardours egna reglage. Jag läste någonstans (förmodligen på freebob-devel) att BeBoB-mixern inte var någon egentlig mixer utan mer av en patchbay. Firepodens windowsdrivrutiner har ingen egen mixer, bara en liten applet där man kan välja latency, synk-källa och samplingsfrekvens. Latency och samplingsfrekvens kan man ställa in med jack (eller qjackctl), synk går inte att ändra ännu, men jag tror det sparas om man ändrar i windows.

Hur det är med Firebox vet jag inte, såg att den har egen mixer i ett gammalt nummer av Studio. Än så länge är det inget jag saknar, men jag har mest gjort test-inspelningar ännu och lyssnat i hörlurar. En av pottarna på framsidan ställer mixen mellan hårdvaru- och mjukvarulyssning. Hårdvarulyssningen ger ingång 1-8 i en monomix, mjukvarulyssning ger utgång 1 och 2 (stereo). Funkar rätt bra men man använder väl mest ändlägena.

OT:

Sitter just nu och experimenterar med BruteFIR, skall försöka använda några utgångar på burken som ett digitalt delningsfilter (är lite hifinörd). Har kommit så långt att jag får ut diskant i den ena hörluren och bas i den andra, men med ganska stor delay... Inte så användbart än, mest för att testa priciperna. Målet är att köra mina hembyggda monitorer med djupkorrigering(=delay för diskanterna) och kanske DRC eller linkwitz-transform.

/Andreas

Link to comment
Dela på andra sajter

Bara en liten uppdatering innan jag går o lägger mig:

Hydrogen funkar visst med jack/freebob, det vara lite SBK som hindrade det från att mata ut något ljud. När man väl kopplar ihop utgångarna med ingångarna på firepoden funkar det (DOH!).

OT: Har gjort ett test med brutefir ut i högtalarna och det funkar! med låg latency! Nu skall det väl bara vara att fippla lite med jack.plumbing så att programmen kopplar sig som jag vill när jag startar dom, så är man hemma.

Gonatt!

/Andreas

Link to comment
Dela på andra sajter

Jasså det är du som har gjort linux-daw bloggen, ser man på... Bra initiativ! Jag tror det stämmer det du skriver där (har bara kikat igenom det snabbt, men det ser vettigt ut), fast eftersom jag använt paket till allting var ju installationen lite annorlunda för mig. Jag har inte behövt kompilera någonting förutom kerneln, för att få bättre realtime-stöd.

Jag har utgått från Debian testing och plockat dom paket som inte fanns/var för gamla från unstable/experimental. Smidigast är nog egentligen att

Angående mixer-inställningar har jag hittils bara använt pottarna på framsidan och ardours egna reglage.

Jag har tagit initiativ till bloggen, ja, men jag hade inte tänkt att det bara skulle vara jag som gör den. 😕 lundberg här på forumet har precis gjort sin första insats, och jag hoppas att det blir fler. Att skriva begripligt om Linux audio är ett digert jobb, än så länge.

Jag hade tänkt att skriva ihop nåt om de paket som finns för FreeBoB men det är så mycket som ska göras =)

Stort tack för din detaljerade redovisning för allt! Eftersom jag bara använder Linux så är jag lite tveksam till att köpa grisen i säcken. Det hade ju varit ett öde att behöva installera Windows för att kunna utnyttja Firepoden till max, eller ens över huvud taget. 😆 Nu vågar en fegis ta första klivet!

Det där med BruteFIR låter tufft. Tack, återigen. 😉

Link to comment
Dela på andra sajter

  • 2 år senare...

Nu var det ju ett tag sen ni postade här men jag är nyfiken på hur det funkade med bruteFIR, funderar på att köra en liten standalone linux enhet som försteg med fjärr. Behöver ett högpassfilter till mina toppar och ett lågpass för en basmodul, vore fint att få till en linkwitz transform för basen också. Så, har ni några rekommendationer vad gäller setupen, kernel, filtergenerering osv.? Rumskompensation är ju helt klart intressant också.

Link to comment
Dela på andra sajter

Så, har ni några rekommendationer vad gäller setupen, kernel, filtergenerering osv.? Rumskompensation är ju helt klart intressant också.

Förvänta dig inga underverk av rumskompensering. Det är inte samma sak som att förbättra en högtalares prestanda (som t ex linkwitz transform):

https://www.studio.se/index.php?showtopic=47807

https://www.studio.se/index.php?showtopic=59175

Link to comment
Dela på andra sajter

Men en linkwitz transform borde väl kunna åstadkommas digitalt med ett "shelving" filter och två parametriska eq tex. Det jag tänker är att alla standard filter går att göras digitalt och dessutom blir dom exakta, vilket inte dom analoga blir beroende på små avvikelser i komponenter osv, plus att man kan justera tonkurvan efter rummet (det var det jag mena med rumskompensation), främst då i basområdet. Men resonanser i rummet blir ju svårt att göra nåt åt utan akustiska åtgärder, jag hade mer i åtanke att man korrigerar det generella basstödet som finns i rummet och beroende av högtalarnas placering.

Här är en bra tråd på diyaudio, http://www.diyaudio.com/forums/showthread....mp;pagenumber=1

Dr Ulrich Brüggemanns acourate ( http://acourate.com/ ) verkar använda bruteFIR, men tycker hans program är lite väl dyrt.

Det saknas ju helt klart receivers med vettiga filter som går att justera manuellt, och istället för att köpa separat försteg+filterbox (dcx2496 tex) så tänkte jag att det vore fiffigt om man kunde kombinera alltsammans i en dator, kanske tom. kan fixa mjukvaru dts avkodning.

Link to comment
Dela på andra sajter

Postat (redigerat)

Just nu har jag monterat ner stereon inför flytt, men på slutet körde jag pulseaudio->jack->brutefir->jack->alsa, och det funkade väl sådär... Har iofs sålt firepoden, så jag körde på det inbyggda realtek-kortet som gav mer xruns än man kan räkna till. Det hela blev iallafall ganska labilt, pulseaudio och andra jack-applikationer hängde sig titt som tätt, men förmodligen berodde det på alla xruns som i sin tur förmodligen berodde på taskig hårdvara/drivrutiner. Pulseaudio var ett klart lyft på så sätt att det mesta kan samsas om ljudkortet och de flesta program stödjer det på ett eller annat sätt. Tom. spotify i wine funkade bra om man bortser från ovanstående problem.

Viktigt är att köra med en relativt fräsch kernel (2.6.26 eller så och uppåt), det har hänt en hel del med rt-stödet på senare tid. Jag kör inga special-patchar utan nöjde mig med att ändra i /etc/security/limits.conf. Finns ganska mycket info om detta på nätet. Kan nämna att jag har fått meka en hel del med trial and error för att få systemet någorlunda stabilt, men jag tror som sagt att det är betydligt lättare med ett vettigt ljudkort. Realtek-kortet har t.ex. en hårdlänkad IRQ som alltid delas med usb-hubben i datorn (dom sitter på samma IC), inte så lyckat iom att jag kör USB-mus/tangentbord som genererar friskt med IRQ-anrop...

Om man inte måste ha låglatency-ljud för inspelning kanske det är lättare/stabilare att köra brutefir via någon annan backend, kanske pulseaudio->jack->brutefir->alsa, men jag vet inte på rak arm vad som är lämpligast. En liten fördel med att köra brutefir direkt till alsa är att man låser utgångarna, så att inget annat program av misstag skickar ut bas i diskantkanalerna, vilket kan bli dyrt.

Jag körde GNU Octave (matlab-liknande program) för att generera mina filter, det funkade bra, men jag minns inte riktigt var jag hittade infon om matten/koden bakom. Jag har octave-koden kvar för att kunna generera andra filter, kan pm:a den om du är intresserad. Har för mig det finns en brutefir/drc-wiki med bra info också. Jag har enbart kört hög/lågpass, linkwitz-transform/drc har jag inte vågat mig på än, men så länge man hittar/kan skriva kod för att generera koefficienterna så skall det inte vara nåt problem. Tänk bara på att testa på låg volym så du inte steker högtalarna om något blivit fel.

PS Att kompensera för baffelsteg och liknande borde gå bra, drc däremot vet jag inte riktigt hur bra det funkar i praktiken, det känns spontant minst några nivåer trixigare. Dessutom blir väl korrigeringen ganska lokal i sweetspoten.

/Andreas

Redigerat av YogSothoth
Link to comment
Dela på andra sajter

Kul! Jag vill gärna titta på koden för att generera filter, känner mig ganska ringrostig på FIR filter om jag ska vara ärlig (har läst en kurs i digital signalbehandling, men det var längesen). Det jag har tänkt att göra är att dela ett par 2-vägare med en basmodul så det är ingen risk att jag bränner diskanterna. Jag får börja med att få till branta högpass/lågpass som låter bra, ska försöka mäta upp med mätmick också. Sen får jag se hur myket man behöver justera tonkurvan i basområdet, framförallt är jag intresserad av att få basen att gå längre ner i frekvens genom använda linkwitz överföringsfunktion fast på digital väg.

Link to comment
Dela på andra sajter

Postat (redigerat)

Det gick visst inte att bifoga filer i pm, men jag hittade wikin jag svamlade om tidigare, mina script är i princip kopierade rakt av därifrån. Jag kan tyvärr inte så mycket dsp, har mest klippt och klistrat lite. Koden på sidan använder fir1-funktionen för att generera hög/lågpass, men det finns en fir2-funktion också som jag tror skall fixa mer generella fir-filter. Hoppas det ger något iallafall.

edit: fixade länken

/Andreas

Redigerat av YogSothoth
Link to comment
Dela på andra sajter

  • 2 år senare...

Hej!

Jasså det är du som har gjort linux-daw bloggen, ser man på... Bra initiativ! Jag tror det stämmer det du skriver där (har bara kikat igenom det snabbt, men det ser vettigt ut), fast eftersom jag använt paket till allting var ju installationen lite annorlunda för mig. Jag har inte behövt kompilera någonting förutom kerneln, för att få bättre realtime-stöd.

Jag har utgått från Debian testing och plockat dom paket som inte fanns/var för gamla från unstable/experimental. Smidigast är nog egentligen att använda apt-pinning, se 3.8-3.10, men jag gjorde det lite halv-manuellt genom att ändra i /etc/apt/sources-list. Kör man med vettig apt-pinning riskerar man inte att som jag oavsiktligt uppgradera hela systemet till experimental 😄 Har nedgraderat nu...

Med rätt apt-pinning skall det gå att köra nedanstående för att installera det som inte finns i testing:

apt-get install -t experimental libjack0.100.0-0 jackd

Angående mixer-inställningar har jag hittils bara använt pottarna på framsidan och ardours egna reglage. Jag läste någonstans (förmodligen på freebob-devel) att BeBoB-mixern inte var någon egentlig mixer utan mer av en patchbay. Firepodens windowsdrivrutiner har ingen egen mixer, bara en liten applet där man kan välja latency, synk-källa och samplingsfrekvens. Latency och samplingsfrekvens kan man ställa in med jack (eller qjackctl), synk går inte att ändra ännu, men jag tror det sparas om man ändrar i windows.

Hur det är med Firebox vet jag inte, såg att den har egen mixer i ett gammalt nummer av Studio. Än så länge är det inget jag saknar, men jag har mest gjort test-inspelningar ännu och lyssnat i hörlurar. En av pottarna på framsidan ställer mixen mellan hårdvaru- och mjukvarulyssning. Hårdvarulyssningen ger ingång 1-8 i en monomix, mjukvarulyssning ger utgång 1 och 2 (stereo). Funkar rätt bra men man använder väl mest ändlägena.

OT:

Sitter just nu och experimenterar med BruteFIR, skall försöka använda några utgångar på burken som ett digitalt delningsfilter (är lite hifinörd). Har kommit så långt att jag får ut diskant i den ena hörluren och bas i den andra, men med ganska stor delay... Inte så användbart än, mest för att testa priciperna. Målet är att köra mina hembyggda monitorer med djupkorrigering(=delay för diskanterna) och kanske DRC eller linkwitz-transform.

/Andreas

Om någon annan läser tråden så innehåller Firepod eller FP10 ingen mixer utan det är pottarna på fronten som gäller oavsett operativsystem.

/Anders

Link to comment
Dela på andra sajter

Bli medlem (kostnadsfritt) eller logga in för att kommentera

Du behöver vara medlem för att delta i communityn

Bli medlem (kostnadsfritt)

Bli medlem kostnadsfritt i vår community genom att registrera dig. Det är enkelt och kostar inget!

Bli medlem nu (kostnadsfritt)

Logga in

Har du redan en inloggning?
Logga in här.

Logga in nu
×
×
  • Skapa ny...