PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   音樂軟體討論區 (https://www.pcdvd.com.tw/forumdisplay.php?f=21)
-   -   foobar 2000的SimPlaylist筆記...!! (https://www.pcdvd.com.tw/showthread.php?t=948328)

vxr 2011-11-08 03:50 AM

引用:
作者狂人日記
高手高手!!! 這些語法都去哪裡才能學? 你是跟誰學的?

自己學...
http://wiki.hydrogenaudio.org/index....28a.2Cb.2Cc.29

因為本行就是幹coding..:jolin:..
所以看這種相當結構化的語言沒太大難度...:flash:..
要教學也是找的到:
http://www.foobar2000.com.cn/thread-1135-1-1.html
但是商業邏輯的設計就是各憑本事了..

oScARSh 2011-11-08 12:36 PM

引用:
作者狂人日記
高手高手!!! 這些語法都去哪裡才能學? 你是跟誰學的?

foobar2000本身在DUI的function,variable和formatting在foobar2000目錄底下就有了
然後各種component的語法, 如果作者有心的話會做出一個教學文件, 或是網上有wiki

coding的程度大概只要國高中計算機概論沒有睡覺
加上一點美術的概念

一般都寫得出來啦

除了少數component比較複雜
但是這串文章的SimPlaylist只要會內建的語法就OK了

vxr 2011-11-08 05:48 PM

非常經典的跑馬燈設計:..
不管是title formatting也好..
或著其他程式語言..
都可能有類似這樣的設計...
值得可學習的...
首先考量到文字移動和空白插入...
我想達到兩個目標:
1. 隨意插入空白
2. 我想左就左, 想右就右
我大概粗淺講一下...
插入空白是介於文字和文字之間..
也就是說我可以想成空白是作為偏移的關鍵點...
A部分文字+B部分空白+C部分文組成ABC三區塊..
我可以進行推論, 假設左移的話..
ABC=>BCA=>CAB=>ABC=>...loop
如此這樣反覆...
我把ABC三區塊模擬成個別的buffer..
我可以這樣猜想, A是首先要出現的..
第一次出現全部文字然後往左偏移減少...
A剛開始的buffer size等於整個文字大小(Lt)...
所以它是可顯性的, 我把它命名為:fBuffer...
然後我定義一個offset, offset是步進增加的...
對於fBuffer來說, 內存放的文字往左偏移..
必定是減少, 所以, fBuffer=Lt-offset
所以offset是起始計算, 從0起跳, 展現形式如下:
$puts(offset,$mod(%playback_time_seconds%,$get(titleLen)))
同樣是用餘數解來計算, 這樣的作法其實相當廣泛使用...
既然fBuffer=Lt-offset.., 左移後, 右邊接的肯定是空白(B)..
對於空白存放的緩衝區而言, 我命名為sBuffer...
他同樣也是左邊移動, 並且是以步進的方式...
因此對於sBuffer來說, sBuffer=Lt-offset, 往左移動..
但是請注意, 這個空白一開始是不可見的, 而是往左偏移後才出現...
那剩下的就是一開始完全看不到的C部分文字, 往左移動..
這個一開始不可現的buffer, 我命名為bBuffer
bBuffer往左移, 但是值得注意的是, 他是要和sBuffer大小一起合算...
也就是說, len(sBuffer)+len(bBuffer)=Lt, 剛好等於整串文字的大小..
結果就是Lt=fBuffer=len(sBuffer)+len(bBuffer)
這樣的平衡式在偏移的時候才不會發生問題...
那對於bBuffer的大小來看...
他是往左偏移, 可是一個重點是, 他卻是往左增加..
這點要注意!..從sBuffer開始起算....
sBuffer=Lt-offset, offset位置之後是接...
那要算進sBuffer的話, 必須要把sBuffer的大小給扣除..
也就是說, bBuffer=offset-len(sBuffer), 並且左偏移遞增文字...
那最後得出三個式子:
fBuffer=Lt-offset
sBuffer=Lt-offset
bBuffer=offset-len(sBuffer)
這三個式子的差異, fBuffer可顯性但持續減少; sBuffer一開始不可顯, 但往後顯示...
bBuffer必須要等待sBuffer完整出現後, 才會步進顯示...
fBuffer是由右往左移, 請注意! 是由右往右, 可採用$right偏移..
同樣sBuffer也是由右往左, 一樣採$right進行偏移..
最後的bBuffer是重點了, 他是往左..., 但是它是由左往右遞增..
請注意是由左往右遞增, 所以採用$left...
先把前置條件都完整寫出來...
$puts(spaceNum,2)
$puts(titleLen,$len(%title%))
$puts(space,$repeat(' ',$get(spaceNum)))
$puts(offset,$mod(%playback_time_seconds%,$get(titleLen)))
那麼fBuffer由右往左:
$puts(fBuffer,$right(%title%,$sub($get(titleLen),$get(offset))))
sBuffer同樣也是:
$puts(sBuffer,$right($get(space),$sub($get(titleLen),$get(offset))))
再來bBuffer是由左往右遞增:
$puts(bBuffer,$left(%title%,$sub($get(offset),$get(spaceNum))))
最終再將每一個給get出來:
$get(fBuffer)
$get(sBuffer)
$get(bBuffer)
因此整個左偏移跑馬燈設計就出來了...
再次提出完整代碼:
$puts(spaceNum,2)
$puts(titleLen,$len(%title%))
$puts(space,$repeat(' ',$get(spaceNum)))
$puts(offset,$mod(%playback_time_seconds%,$get(titleLen)))
$puts(fBuffer,$right(%title%,$sub($get(titleLen),$get(offset))))
$puts(sBuffer,$right($get(space),$sub($get(titleLen),$get(offset))))
$puts(bBuffer,$left(%title%,$sub($get(offset),$get(spaceNum))))
$get(fBuffer)
$get(sBuffer)
$get(bBuffer)

還有一個換方向的, 稍微更改寫法如下, 有興趣者可以自行理解:
$puts(spaceNum,2)
$puts(titleLen,$len(%title%))
$puts(space,$repeat(' ',$get(spaceNum)))
$puts(offset,$mod(%playback_time_seconds%,$get(titleLen)))
$puts(bBuffer,$right(%title%,$sub($get(offset),$get(spaceNum))))
$puts(sBuffer,$right($get(space),$get(offset)))
$puts(fBuffer,$left(%title%,$sub($get(titleLen),$get(offset))))
$get(bBuffer)
$get(sBuffer)
$get(fBuffer)

狂人日記 2011-11-08 09:57 PM

我都是網路下載人家介面已經做好的版本

找一個自己喜歡的介面下載,頂多自己多加個asio和wv,tta的支援

我下載人家已經做好的,我現在想把版本升級到最新的1.1.9

我就直接把1.1.9的檔案丟到舊版本裡面去

版本號是升級了,不過面板上的按鍵都不能用了(Play.Stop等...)

請問要如何能夠正常升級到新的版本??

這個播放器界的火狐實在有點複雜,真的很強,不過是高手專用,生人勿近

rxkonami 2011-11-08 11:14 PM

引用:
作者oScARSh
這個我也有玩過
特色是相當好設計, 有smooth scrolling和它不用用到column UI

當然是有些缺點所以我放棄了
第1就是它就真的只能開Default UI去啟動這些東西,
也就是再也不能用Panel Stack Splitter去設計自己的格式
第2就是它不能把grouping收起來只剩album title
就像下圖一樣, 這對我來說蠻重要的

http://dl.dropbox.com/u/30865799/fb2k.png

oScARSh大,要怎麼設定才能自動上網抓歌詞?:confused:
我用的是foo_uie_lyrics3~不過每次都只顯示歌手及專輯名稱
而不會自動抓歌詞...

oScARSh 2011-11-09 12:13 AM

lyric3我不會用~ 之前抓下來也不知道怎用 :ase

我是用古老的foo_uie_lyrics.dll

rxkonami 2011-11-09 12:30 AM

引用:
作者oScARSh
lyric3我不會用~ 之前抓下來也不知道怎用 :ase

我是用古老的foo_uie_lyrics.dll

剛換成foo_uie_lyrics.dll,不過仍然不會顯示歌詞? :cry:

oScARSh 2011-11-09 12:55 AM

線上歌詞庫裡面沒有的就找不到了
先拿一點熱門的歌去試吧

像我大部份還是得用key-in的 :p

vxr 2011-11-09 05:46 AM

小弟就是因為要key-in..
所以從以前到現在打死都不用lyrics元件..:laugh:..

狂人日記 2011-11-10 01:26 PM

我弄了個面板,但是不知道怎麼把它安裝到foobar裡面

他有附一個fcl檔案,我匯入但是不成功

請問各位foobar高手能否教我一下


所有的時間均為GMT +8。 現在的時間是04:05 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。