使用 GNU/Linux 做為筆電的 OS - Linux

Noah avatar
By Noah
at 2015-09-02T11:48

Table of Contents

※ 引述《Hazukashiine (交大杯麵)》之銘言:
: 不過本人對 JACK 比較不熟,希望下一篇會是對 JACK daemon 處理音訊的簡說哦~
: 推 Bencrie: PulseAudio 的 latency 還好吧,不用 rtkernel 也能 <1ms 09/02 01:49
身為一個天天用jackd的人,我就來略說一下。

我就從latency切入。首先我對Pulseaudio的latency<1ms這件事抱持一個懷疑態度,還有此
外這是不是真的有用?

latency有用的意思是..
1.
DVD播放影片時,按下播放影片按鈕到開始播放的latency是1ms,2ms,甚至1s,其實對觀看
者都沒關係,因為只要能從頭穩定順順的播放到尾,latency是多少沒差。

2.
但是玩3D FPS遊戲時,操縱的按鍵按下去,或者放開按鍵,多久後(latency)畫面上會反
應你的操作結果,這就有差。

關於1 ,雖然latency多少沒差,但是要作到影音同步

關於2 ,latency必須是你按下操作按鍵,比如說按下發射鈕,遊戲繪圖開始畫polygon、
貼圖、計算光線、渲染各種效果等等,這些要在一個很短且穩定的時間內完成。


Jackd達成的事情就是:
1.音訊realtime:低、固定的latency (low block latency),即使影響到桌面操作也在所
不惜(這就跟pulseaudio的哲學不同)
2.不同的音訊軟體render/playback/record 同步
3.內部音訊繞線(routing):管線無限,端視自己的硬體能力,跟windows的DAW有上限不

4.網路音訊:一台電腦不夠?類似Linux算圖農場,可以作音訊的算音農場,在工作室擺個
兩三台組合起來就嚇嚇叫了吧?

跟pluseaudio的情境很不同....

jack session多半可能是這樣
有一個鼓機音源器、一個通用取樣音源機、一個合成音源機、兩個物理運算音源機等等,
然後這些音源還掛上許多的效果器,例如EQ、Limiter(鼓機要掛)、reverb、compressor
,然後按下一個按鈕以後,所有音訊軟體開始運作(不是playback,而是rendering),一
個小節一個小節都要同步,然後你操作midi keyboard即時彈奏,聲音也必須準時播出,不
管彈多彈少音,聲音都即時出現,不能慢拍

這一首中間的間奏2:09~2:42我就是這樣用midi keyboard彈的
https://www.youtube.com/watch?v=RaPbk_oaw_k

假設出現最嚴峻的狀態,螢幕上畫面就算被凍結也沒有關係,只要聲響正確即可。

這跟單單播放一個mp3,播放按鈕按下去,播出聲音是不一樣的要求,音樂製作專業的需要
是,一口氣很多的音樂程式同時演算出聲響,維持同步,還要即時,而且24bit/96khz也要
能運作正確。

關於前述的第三點,這個是Jack不同於Windows ASIO、Mac coreaudio的不同點,就是在ja
-ck下,任何一個DAW(數位音樂工作站)不會獨占整台機器,所有支援jack的音樂製作軟
體在jack底下,會平等的存在,各音訊程式的管線可以互接,這樣彈性非常高,這個哲學就
像Unix本來的哲學,在Windows上,你用了Qbase,同時就容不下同時使用Sonar或Protools
。但是在jack底下這是有可能的,為了編曲方便,我使用Rosegarden,混音Ardour比較方便
,所以我會用Rosegarden播放我寫的樂章,然後管線接到Ardour的各軌作收音。

http://i.imgur.com/Kz7Pd4L.png
http://i.imgur.com/R2Qwfam.png

甚至說電吉他插到電腦以後,一些效果器串一串,再作一個UI,就變成電吉他效果器。

https://www.youtube.com/watch?v=cK9rnITAbF0
例如說這個,我是用無線麥克風透過錄音卡收進電腦,串jack上的效果器群,配樂來自
firefox上的youtube,所以這用到了pulseaudio-jack的橋接,當然我這不是電吉他XD
重點是出來的tone(音色的質感)不差,而這不是靠後製,而是演奏時,就如此,就算
LIVE場,筆電帶著去都可以演奏,當然能做到Rasperri Pi上更好,也真的有人在研究
porting。

最後談談一些迷思:
1.jack一定要配realtime kernel:未必,只要有實踐realtime scheduling的kernel
即可,當然編譯時realtime scheduling必須是設定在高要求,以Debian/Ubuntu系,標明
lowlatency的linux kernel就很夠用了,然後有用PAM的話
http://jackaudio.org/faq/linux_rt_config.html
要作這件事情。

只有在以下連結情況,才真的需要rt kernel,當然目前幾乎沒有人提供事先作好的,所以就
自己下rt patch,自己build囉
http://jackaudio.org/faq/realtime_vs_realtime_kernel.html
我之前也是自己build,不過最近一次升級到Ubuntu14.04+KXstudio,我就懶得做了。

2.jack比pulseaudio優越:如前面所提,這是不一樣的使用情境。pulseaudio是針對一般
桌面應用(再怎麼樣,畫面優先權高於音訊),jack則是針對音樂專業製作(音訊優先,
畫面第二),在系統資源用到接近爆炸時,就可以看到兩者的差別,改用jack不會讓遊戲
比較好玩。

3.jack播放一般音訊有困難:2010年以前是這樣沒錯,就是平常用pulseaudio,作音樂才
啟動jack但是現在有alsa-jack pluseaudio-jack的bridge了,如果使用KXstudio這套dist
ribution,他有一個音訊管理程式Cadence,可以開機時就自動幫你把jack還有各個bridge帶起來,之後玩遊戲、看網路影片等等都跟原來
pulseaudio、alsa無異。

4.jack只能用Linux自己的Dssi Ldspa LV2等規格的效果器或者音源:其實現在連vst vsti
也已經可以用了,並不是勉強可用,目前很多已經到堪用階段,甚至有linux native vst
效果器,其中有些還賣錢呢。

就大概一些淺談

--
嘻,我也編了《女友廁所練歌 但歌詞好像...》XD
流行電音版 http://youtu.be/YkhevfgNplw

--
Tags: Linux

All Comments

Brianna avatar
By Brianna
at 2015-09-05T11:37
感謝大大對 jack 的介紹哦~ >w<
Hardy avatar
By Hardy
at 2015-09-07T11:12
不管什麼效果 pulseaudio 就是狂輸 ladspa ,超慢的
Tracy avatar
By Tracy
at 2015-09-10T22:32
沒 rt kernel 別說聲音了,任何東西要 1ms 都很難
Damian avatar
By Damian
at 2015-09-13T17:32
其實推完我就後悔了 XD 環境沒描述也不是 general case
Hedwig avatar
By Hedwig
at 2015-09-16T12:09
另外想請教 jack vs jack2 比較推哪個
Sierra Rose avatar
By Sierra Rose
at 2015-09-18T05:50
專業推
Liam avatar
By Liam
at 2015-09-22T01:09
專業推
Andy avatar
By Andy
at 2015-09-24T15:39
之前我是讀網頁的手冊,只是想問問實際用起來的差異 XD
Hamiltion avatar
By Hamiltion
at 2015-09-26T23:30
推荐文章。
Elvira avatar
By Elvira
at 2015-09-30T16:32
十多年前就有廠商想推 Linux 桌面,不知死到那裡去了
推廣這種事還是隨緣的好
Carol avatar
By Carol
at 2015-10-01T05:53
十多年前光本地化就是個大問題了 orz
James avatar
By James
at 2015-10-01T19:55
十年前的桌面環境……。
Susan avatar
By Susan
at 2015-10-06T18:21
其實VD逐漸成熟以後,LINUX桌面也不是啥太大問題了.
反正都在VDI上面跑 XD
Callum avatar
By Callum
at 2015-10-10T16:07
十年前的gnome2還好吧...
Delia avatar
By Delia
at 2015-10-15T10:47
我也還在用gnome2fork~
Rebecca avatar
By Rebecca
at 2015-10-16T10:59
有陣子流行小筆電 那是我看過Linux桌面比較流行的時期
Brianna avatar
By Brianna
at 2015-10-20T08:41
我筆電用KDE,桌電用MATE XD
Susan avatar
By Susan
at 2015-10-23T09:12
推專業

Ubuntu 右邊數字鍵不能按

Charlotte avatar
By Charlotte
at 2015-09-02T10:19
不曉得按到什麼東西 數字鍵右邊就不能使用了? 就是整個右邊 num lock / * - 7 8 9 4 5 6 1 2 3 0 . 重開機也沒有用應該也是改到config了~ - ...

centos 7 網路設定問題

David avatar
By David
at 2015-09-02T09:30
大家好: 新手請教近期用centos 7 1503 最小安裝了一台實體主機 但一直無法連上外網,區網是可用都ping的到區網上的主機,gateway也ping的到 但ping外網就無法正常了其它區網內的電腦設定也都相同卻能上網 是centos 7 有需額外設定嗎? 網路環境 IP:192.168.1.70 ...

Shell Scripts for迴圈的小問題

George avatar
By George
at 2015-09-02T03:15
※ 引述《SSID2244 (ssid)》之銘言: : 大家好 最近在學習shell scripts (用在修改大量數據) : 遇上一個問題,我想寫一個for的多重迴圈 在這裡我先簡化問題為雙迴圈好了 : for ((i=1;iandlt;=5;i=i+1));do : for ((j=1;j ...

Shell Scripts for迴圈的小問題

Sandy avatar
By Sandy
at 2015-09-02T01:02
大家好 最近在學習shell scripts (用在修改大量數據) 遇上一個問題,我想寫一個for的多重迴圈 在這裡我先簡化問題為雙迴圈好了 for ((i=1;iandlt;=5;i=i+1));do for ((j=1;jandlt;=5;j=j+1));do ...

掛上的 nfs 是否能轉成 xfs?

Bethany avatar
By Bethany
at 2015-09-01T22:41
各位大大好... 現在的情況是這樣的: Server 端的作業系統為 CentOS 6,client端為 CentOS 7。 Client 端要掛 server 端所分享的 nfs 資料夾(該資料夾已掛在一 xfs 的分區)過來。 然而我還想在這個 nfs 資料夾上做 project quota,是故 ...