2009年6月20日 星期六

WMP面版改造教學番外篇(1)

作為WMP面版教學番外篇第一篇, Mirage將會講講歌曲資料的顯示.

眾所周知mp3或wma檔都可以用ID3 tag儲存歌曲資料

而如果想在播放音樂時同時檢閱歌曲資料,例如:

WMPskinSupp2

這個面版除了顯示基本的歌曲資料及CD封面(右邊)外, 亦有顯示聽歌時甚少用到的特殊資料(左邊)

如果想在面版顯示文字類型的歌曲資料,可以在wms檔的view/subview內加入text元素, 為text改一個id, 再改變它的值(value), 而為了方便更新及單位轉換,可以將改變資料的步驟放在Jscript的function內,在播放狀態改變時更新一次.例子可以參考面版改造教學(5)的歌曲作者顯示方法.

雖然方法一樣,但是每個歌曲資料都有獨特的呼叫方法.基本的呼叫方法是:

Jscript的function內:

text的id.value="前置的字(例如例9的 Bitrate: ) "+ player.currentmedia.getiteminfo("呼叫字元") + "後置的字(例如例9的Kbps) ";

wms檔的text內:

value="Jscript: '前置的字(例如例9的 Bitrate: ) '+ player.currentmedia.getiteminfo('呼叫字元 ') + '後置的字(例如例9的Kbps)';"

在上面的面版共顯示了19種歌曲資料, 亦即:

WMPskinSupp

1.歌名,可以在完整模式,進階標籤編輯器及playlist元素作更改,可以直接用tracknametext元素

2. 歌曲所屬專輯,可以在完整模式,進階標籤編輯器及playlist元素作更改,呼叫字元為album

3. 歌曲作者/歌手,可以在完整模式,進階標籤編輯器及playlist元素作更改,呼叫字元為author

4. 歌曲的專輯次序,可以在完整模式,進階標籤編輯器及playlist元素作更改,呼叫字元為originalindex

5.&6.  歌曲長度及播放位置,無法手動更改,可以直接用currentpositiontext 及durationtext元素

7.播放狀態,改變播放狀態時更改,可以直接用statustext元素

8. 檔案類型及大少,無法手動更改,呼叫字元為filetype及 filesize,在此例做了單位轉換及結合為一個text元素

9. 位元速率,無法手動更改,呼叫字元為bitrate,在此例做了單位轉換

10. 歌曲類型,可以在完整模式,進階標籤編輯器及playlist元素作更改,呼叫字元為genre

11. 歌曲情景,可以在完整模式,進階標籤編輯器作更改,呼叫字元為mood

12. 專輯發行日期,無法手動更改,呼叫字元為releasedate

13. 用家前一次播放此曲日期,無法手動更改,呼叫字元為userlastplayedtime

14. 用家播放此曲次數,無法手動更改,呼叫字元為userplaycount

15. 歌曲檔原位置,移動檔案位置就會轉變,呼叫字元為sourceurl

16. 用家歌曲評級,只能在完整模式作更改,呼叫字元為userrating

17. 用家自設資料1,可以在完整模式,進階標籤編輯器作更改,呼叫字元為usercustom1,在此例填了這首歌(Supercell的Melt)在NicoNico動畫的編號, 在呼叫字元中亦有用家自設資料2(usercustom2)

18. 詳細解釋,只能在進階標籤編輯器作更改,呼叫字元為description

在這個例子的更新資料用Jscript function就如下面所示:

function UpdateMetadata()
{metadata.value = player.currentmedia.getiteminfo("author");
al.value = player.currentmedia.getiteminfo("album");
var fs = Math.round(player.currentmedia.getiteminfo("filesize")/104857.6)/10;
ftype.value = "File: " + player.currentmedia.getiteminfo("filetype") + " " + fs + "MB";
bit.value = "Bitrate: " + Math.round(player.currentmedia.getiteminfo("bitrate")/1000)+"Kbps";
gen.value = "Genre: " + player.currentmedia.getiteminfo("genre");
source.value = "Source URL: " + player.currentmedia.getiteminfo("sourceurl");
muud.value = "Mood: " + player.currentmedia.getiteminfo("mood");
userrat.value = "User Rating: " + player.currentmedia.getiteminfo("userrating");
des.value = "Description: " + player.currentmedia.getiteminfo("description");
trackno.value= player.currentmedia.getiteminfo("originalindex");
reldate.value="Release date: " + player.currentmedia.getiteminfo("releasedate");
ulpt.value="User last played time: " + player.currentmedia.getiteminfo("userlastplayedtime");
upc.value="User play count: " + player.currentmedia.getiteminfo("userplaycount");
uc1.value="User custom 1: " + player.currentmedia.getiteminfo("usercustom1");}

在這個面版中唯一一個圖像歌曲資料就是19. CD封面,CD封面能在完整模式加入,在進階標籤編輯器作更改,在呼叫及更新方法會與文字資料不同.

首先新加一個subview (在此例 id="cdcover"),不設定backgroundimage,將resizebackgroundimage設為true,再在view元素加一句:

ontimer="setvisibility();"

此句意思為在一定時間(約五秒)定期執行名為setvisibility()的Jscript function

在Jscript加入同名的function,並寫入

function setvisibility(){

if(cdcover.visible==false )
      {cdcover.visible=true;
           cdcover.backgroundimage = "WMPImage_AlbumArtlarge";
              }

          else{cdcover.visible=true;}

這個function是在執行時如果subview(cdcover)無顯示時顯示subview(cdcover)並更新CD封面為subview(cdcover)的背景圖,其餘時間一切依舊.但是究竟subview(cdcover)在何時被關閉呢?就是在播放狀態改變時執行的Jscript function,亦即:

wms檔內:

<view
scriptFile="nekoSP.js"
titlebar="false"
title="WMP Custom Skin"
ontimer="setvisibility();"
backgroundimage="bigcdbgi.bmp"
clippingcolor="#CCCC00"
onload="checkPlayerState();"
>

<player
OpenState_onchange="checkPlayerState(); "
PlayState_onchange="checkPlayerState(); "/>

Jscript的function內:

function checkPlayerState()
{UpdateMetadata();

cdcover.visible=false; //就是這句

if(player.currentMedia.ImageSourceWidth>0)
{theme.openView('vpl');}
else
{vpl.close();}
}

面版改造教學(5)用到的checkPlayerState() 再加一句cdcover.visible=false; 每次播放狀態改變時subview(cdcover)都會先消失一段短時間,然後setvisibility()會在五秒內重開subview(cdcover)並更新圖像.

這樣大費周章更新CD封面的原因是想面版在更新歌曲資料時更暢順,如果直接更新CD封面而無先行關閉subview(cdcover),面版會有近三十秒的假死狀態…\x x/

資料參考:WMP skin "Miku", "CDcase", forum link

在上面的歌曲資料大部分都只有資料檢查及整理時才會使用,所以用家可以自己決定使用的資料,其他未有提及但可用的呼叫字元可以在MSDN內找到,各位可以試試.當然使用資料不能太多,否則會影響面版外觀.

2009年6月13日 星期六

遲來的CD開箱文- Supercell & unformed

其實這兩隻Vocaloid 的CD開箱文應該在4月尾寫的…

Supercell

首先講講Supercell,

這隻CD是使用Vocaloid聲音合成軟件初音ミク合成的.作曲填詞的是Ryo

而他創作的曲目以戀曲為主, 在Nico動畫上大受歡迎,

其中四首歌(恋は戦争, メルト, ブラック★ロックシューター, ワールドイズマイン)更因長居Vocaloid週刊排行榜頭30位被台灣Nico動畫聽眾戲稱為四聖獸…

現在他的所在團體Supercell終於做出其他Vocaloid使用者仍未做到的事,

在2009年3月日本的Sony Music為Supercell發行同名專輯, 是第一隻使用Vocaloid製作的商業音樂CD.主打曲是メルト.

參與繪圖製作的插畫家有三輪士郎,redjuice、huke、スガ、マクー、119

這隻初回生產限定版CD是我與朋友合資在旺角信和用Amazon Japan代訂的.

但是到六月頭才從朋友手中真正首次接收這隻CD…(心中大跳肯肯舞)

收錄曲目:

  1. 恋は戦争
  2. ハートブレイカー
  3. メルト                                                   ★Mirage Special Pick 
  4. ブラック★ロックシューター
  5. くるくるまーくのすごいやつ                    ★Mirage Special Pick
  6. ライン
  7. ワールドイズマイン                                ★Mirage Special Pick
  8. 初めての恋が終わる時                          ★Mirage Special Pick
  9. 嘘つきのパレード
  10. その一秒 スローモーション
  11. ひねくれ者
  12. またね

IMG_0424ed

這個就是封面, 插畫家是三輪士郎,圖片在DVD的メルトPV亦有出現

IMG_0425ed

內容: CD,限定版才有的DVD及畫冊

 IMG_0434ed

CD盒背面, 是封面的延續

IMG_0427ed

CD盒內部, 看那精美的CD設計…IMG_0428ed

DVD和CD盒內頁, 圖畫取材自恋は戦争, 白圓圈是曲目.

IMG_0430ed

曲目,曲詞介紹,旁邊的是那首歌的插畫.IMG_0433ed

壓軸…限定品:畫集,含插畫,畫家及Ryo評述,超珍貴!

重新混音的歌曲水準超棒,令人覺得買錢用得其所.

 

unformed

至於今次開箱文的第二主角,3月尾發行的unformed

與Supercell不同,雖然都是用Vocaloid軟件初音ミク製作

但是由doriko作曲填詞,MOER發行的unformed比較類似同人CD

doriko所作的曲很多都有童話故事的名詞在內.曲風既有輕快曲亦有抒情曲,而且有深遠意味的歌詞,適合重複聽歌細細回味.

這隻CD是在信和直接買回來的.

收錄曲目:

01. Rainbow Outline
02. 夕日坂                                                                             ★Mirage Special Pick
03. ぶちぬけ!2009!
04. G-A-M-E
05. Winter Alice                                                                     ★Mirage Special Pick
06. 通勤快速
07. みっくりすます (fromジングルベル
08. Astraea -blue mix-
09. 歌に形はないけれど
10. Alive
11. モノクロアクト
12. letter song                                                                        ★Mirage Special Pick
13. 歌に形はないけれど (Piano Re-arrange Ver.)                     ★Mirage Special Pick


IMG_0441ed

初回生產的CD,連限定海報,與普通版的不同處只有CD盒封面不同,但是這個封面美多了

IMG_0437ed

簡潔的CD盒背面

IMG_0438ed

CD盒內部,曲目寫在CD面上

IMG_0439ed

精美的曲目,曲詞介紹

重新混音的歌曲感覺是更自然及耐聽.

 

今次購入CD估價:

unformed初回限定版:HKD260

Supercell初回限定版:HKD600/2

聽著CD看著畫集的快樂:無價

2009年6月3日 星期三

WMP面版改造教學(6)



今次Mirage示範的面版是在教學(4)的面版上加上Playlist和Openfile掣
在按了Openfile掣後就會開啟"開啟"視窗(上圖右邊)
Playlist則在面版上方, 顯示現時的播放清單.(上圖例則是"開啟"視窗的Vocaloid資料夾)

首先是openfile掣, 只要在buttongroup加一個掣的設定就可.(慣例,自行設定mappingcolor)

< buttonelement
mappingcolor="#A0A0A0"
onclick="JScript:var temp=theme.openDialog('FILE_OPEN','FILES_ALL'); if(temp) player.URL=temp;"
cursor="hand" uptooltip="Open file" />


jscript的意思是呼叫Window開啟"開啟"視窗.
內置的playlist則可以在view內加一個subview, 亦即以下的程式.(可以改動大部分""的數值)

< subview
id="playlist"
zindex="1"
top="0"
left="0"
width="300"
height="200"
visible="true">

< playlist
backgroundimage="testplist.bmp"
foregroundcolor="#FFFEEC"
itemplayingcolor="#FFFFFF"
itemplayingbackgroundcolor="#FFE00C"
id="myplay"
columns="name=Name;duration=Time;artist"
columnsVisible="false"
top="5"
left="5"
width="290"
height="190"/>



P.S.如果想設定playlist為外置面版, 可以參考教學(4)(5)的effect/video設定,
不過將內部的effect或video屬性改為上面的playlist屬性就可.


testplist.bmp 簡單的黃昏背景圖...


基本的WMP面版改造教學至此將近尾聲,
如果由教學(2)至(6)全部組件加入面版, 應該可以有一個可以應付大部分功能的WMP面版
剩下的部分(面版部件放置, 圖片, 功能增減)則是依賴各位的藝術天分
Mirage將會在將來不定期發佈特殊的面版設定和設計理念.希望各位多多支持!!