2009年4月24日 星期五

CD-WAV-MP3-CHROMA-轉檔流程

foobar

轉CHROMA的程式

 

轉Chroma的程式已更新

解決了檔案名稱如果有很多"."所造成的問題

感謝皓鈞幫忙測試

 

注意事項:

1.安裝foobar時,請點完整安裝

2.如果foobar找不到那張專輯的tag,可以先不要轉那張專輯(因為需要手動輸入,會很麻煩)

3.麻煩大家將轉過的CD放在DNA後面的那個箱子(避免轉到重覆的專輯)

 

20090423 附註

1. FTP之前上傳中文檔名會亂掉,我已經修正,我把檔案編碼改成繁體中文,並且改成unicode,所以如果有上傳非英文檔名的檔案時,ftp client要有支援unicode

2. cool edit在處理某些太長的檔名時會有問題,請在Add Files之前,先點選Hide Path

 

我們的目的是將CD音軌擷取出來(WAV)

再將WAV轉成MP3(128kbps)再轉回WAV

而這兩個WAV都需要轉成CHROMA

所以一首歌會有兩個WAV

一個WAV會轉成兩個CHROMA

也就是一首歌會轉成四個CHROMA

 

首先放入CD光碟片後,請開啟foobar

點選 檔案 => 開啟音訊

MWSnap007

點選所放入光碟片的光碟機

MWSnap008

點選尋找

MWSnap009

foobar會自動找到正確的標籤資料,點選更新檔

MWSnap010

接著便可以注意到 原本的CD Trackx都變成歌名了!

請點選擷取!

MWSnap011

編碼預設請點選WAV

新增DSP處理,選擇混合聲道到單聲

MWSnap012

點選左下角的更多設定

輸出檔名中的單個檔案請改成

[%list_index%]_%artist%_%album%_%title%

MWSnap013

接著請點選確定

MWSnap014

選擇資料夾,就可以開始轉檔了!

MWSnap015

轉檔中...

MWSnap016

轉檔結果!

MWSnap017

接著要將WAV轉成MP3(128kbps) 再轉回WAV

我們需要透過Cool Edit去做這件事情

因為foobar預設的基本功能 似乎無法精確的指定MP3的bps

請點選File => Batch File Convert

MWSnap018

請點選Add Files

MWSnap019

請點選剛剛那些從CD擷取出來的WAV File

MWSnap020

請確認New Format中的Output Format為MP3

Format Properties為128kbps,44100Hz,Mono

MWSnap021

請確認輸出的位置,接著請點選Run Batch

MWSnap023

在轉檔成MP3之後,接著要將MP3轉回WAV

一樣的流程

Add Files點選剛剛轉好的MP3 File

MWSnap025

Output Format點選WAV

Format Properties 44100Hz,16bit,Mono

MWSnap026

Output Filename Template請修改為*_mp3.wav

中間有一個Delete source file if converted OK

如果您之後不需要MP3 File的話 可以點選

接著可以點選Run Batch開始轉檔囉!

MWSnap027

請把WAV轉CHROMA的程式和剛剛的WAV File放在同一個資料夾內

接著點選 WavConvertChroma.exe

MWSnap030

轉檔中...

MWSnap031

轉檔完後會產生一堆CHROMA File以及一個FileList.txt

一個WAV File會轉換成兩個CHROMA File

FileList.txt的內容為剛剛所轉檔的檔案列表

這是為了日後要加這些標籤資料匯入資料庫要用的

請大家將FileList.txt重新命名為FileList_自己的ID_日期.txt

總之這個檔名上傳時注意一下不要和大家重複就好

MWSnap032

最後請大家將WAV File、CHROMA File以及FileList_自己的ID_日期.txt上傳 就大功告成了!

 

Nas Server 我已經裝好設定好了

可以透過FTP連線

IP: 140.116.82.199

帳號: scream

密碼: 和186的密碼一樣

請上傳到Public這個資料夾中!

另外請以專輯名稱在Public資料夾內 再創一個資料夾

將專輯的檔案上傳至新建的專輯資料夾內

 

非常感謝大家!!!

2009年4月14日 星期二

Cell 介面

這篇是講BBB學長的graphGen所要用的介面
也是用之前的OpenESL介面來改

介面要修改的部分:

  • repository的讀取
    • 不需要port type
    • 增加property (stateful, load)
    • 沒有版本控制 少一層資料夾與版本判別
  • project存取
    • for component
      • 刪除input/output port、port type、id
    • for diagram
      • 增加兩個property : Core/Duplication
  • diagram介面
    • 增加一個按鈕以供輸入Core/Duplication值

repository的部分 下面是我拿來測試的xml

  1: <?xml version="1.0" encoding="utf-8"?>
  2: 
  3: <Module name="IDCT" version="0.00001">
  4:     <!-- Input ports -->
  5:     <in_port type="data">in</in_port>
  6: 
  7:     <!-- Output ports -->
  8:     <out_port type="data">out</out_port>
  9:     
 10:     <property name="stateful" value="true"/>
 11:     <property name="load" value="400"/>
 12: 
 13: </Module>


比較有問題的是
如何在Yellow Dog Linux 6.1下安裝Eclipse
JAVA SDK的部分 我已經抓到IBM的for ppc64的版本了
Eclipse的安裝也照
http://www.yellowdog-board.com/viewtopic.php?f=29&t=4633
說的下載5個套件 去安裝
可是...裝的怪怪的 現在還打不開
我還要再看看到底裝對了沒

BBB學長看看有什麼地方不對 或是哪裡還要加東西的
再跟我說吧

-----------------------------------------------------------
090414

終於在YDL 6.1下面裝好Eclipse了
可是只有3.2版的
所以出現一些class找不到之類的問題
從897個problem改到現在
還剩4個 好像是新增的method 我再看看要怎麼改

現在是用按鈕來開啟對話框的方式 輸入整個project的"core num"跟"duplication"值 只是...找不到地方讓它顯示
變成說使用者到底有沒有輸入過這兩個值
在畫面上是看不出來的 怪怪的

附上在Yellow Dog Linux 6.1版安裝Eclipse的方法



  • 先從YDL的【新增移除軟體】那邊安裝Eclipse
    除了SDK其他相關的都要裝
    開啟一次 讓他初始化

  • 安裝 IBM JDK
    (因為sun沒有ppc版的 GCC的java又非常慢)
    到這裡
    http://www-128.ibm.com/developerworks/java/jdk/linux/download.html
    要註冊一個IBM帳號
    找 "32-bit" iSeries/pSeries 版本。
    (雖然PS3是64bits 還是要裝32bits版的 不然會超級麻煩 有一些套件怎樣都找不到)
    抓 ibm-java2-ppc-sdk-5.0-9.0.ppc (69.4MB)
    安裝 再建立一個連結
      $ ln -s /opt/ibm/java-ppc-50/jre/bin/java /usr/local/bin
    用which java及java -version檢查 java路徑及版本是否正確

  • 降版本安裝 Eclipse (3.2.2版)
    (搭配6.1的Eclipse有很多問題 很多功能都無法正常運作 所以要裝回6.0版用的)
    到YDL 6.0的repository
    http://ftp.yellowdoglinux.com/pub/yellowdog/yum/6/base/RPMS/ 抓下列檔案
        eclipse-ecj-3.2.2-14.ydl.1
        eclipse-rcp-3.2.2-14.ydl.1
        eclipse-cdt-3.1.2-3
        eclipse-jdt-3.2.2-14.ydl.1
        eclipse-platform-3.2.2-14.ydl.1
    用rpm移除6.1版的 (要忽略相依性)
      $ rpm -e --nodeps eclipse-ecj-3.2.2-14.ydl6.1
      $ rpm -e --nodeps eclipse-rcp-3.2.2-14.ydl6.1
      $ rpm -e --nodeps eclipse-cdt-3.1.2-3
      $ rpm -e --nodeps eclipse-jdt-3.2.2-14.ydl6.1
      $ rpm -e --nodeps eclipse-platform-3.2.2-14.ydl6.1
    再安裝6.0版的 (還是要忽略相依性)
     
    $ rpm -ivh --nodeps eclipse-ecj-3.2.2-14.ydl.1
      $ rpm -ivh --nodeps eclipse-rcp-3.2.2-14.ydl.1
      $ rpm -ivh --nodeps eclipse-cdt-3.1.2-3
      $ rpm -ivh --nodeps eclipse-jdt-3.2.2-14.ydl.1
      $ rpm -ivh --nodeps eclipse-platform-3.2.2-14.ydl.1

  • 安裝GEF舊版本
    eclipse plug-in安裝法
    自己開資料夾把plug-in跟features裡的東西copy過去

2009年4月13日 星期一

Lab 相簿開張

The album is powered by Picasa

http://picasaweb.google.com.tw/wolfgang1791arwen

這個相簿在老師創立wolfgang帳號時就同時建好了,只是一直沒有公開。我發現實驗室的照片記憶已經停留在以前很久了,希望大家在離開這實驗室前都能留下些痕跡。

簡單來說,就是要大家今年別再讓 Lab 旅遊喇掉啦!

2009年4月10日 星期五

建立SCREAM Lab. 研究用的音樂資料庫

2009/4/10

準備就緒了嗎? 可以開始了嗎?

Storage要在那裡呢?

--------------------------------------------------------------------------------------------

首先我要感謝冠廷起頭了一個非常棒的研究, 大家知道, 本來冠廷要做的研究是把一首.wave的曲子跟他的樂譜在時間對起來, 對於像二胡一樣的樂器獨奏這不算什麼, 但是對於複音演奏, 這就有一點難了. 目前冠廷還是先用Bach無伴奏來做, 雖說Bach無伴奏看起來其時是單音的, 不過因為提琴的弓法, 同時可以出現多個音. 對於一些曲子, 他的方法已經可以有不錯的效果, 過一陣子, 在他的畢業論文裡, 我們應該可以看到他的方法加上文森的方法, 可以再現出義崧學長的二胡合成一樣的成果, 只是現在難度更高, 他們合作的成果也更吸引人了.

不過,



無心插柳的結果是, 冠廷順手實做了音樂資料庫搜尋的幾篇論文, 再加上他的努力, SCREAM Lab. 跨進了這個領域. 目前的計劃是用先用.wav來查.wav, 當然也可以用.mid來查.wave以及用.wav來查.mid. 不過, 這種研究需要大量的測試資料. 而資料庫要不就用別人的, 要不就自己建. 網路上雖然多的是.mp3, 不過access人家的.mp3我怕有麻煩, 於是就想自己建算了. 我想實驗室CD不少, 我家裡也有一堆, 而各位應該加裡也有, 所以第一步可以想的就是把這堆CD弄進電腦. 等這堆弄完, 我們做研究有一點名氣, 再去網路上抓.mp3, 免得IFPI來查我們的電腦. 不過要冠廷一個人來建構大的資料庫實在不可能. 所以我請冠廷規劃一下要怎麼做. 以下是他會準備的一些程式:

1. .wav轉Chroma Feature

2. 將1.的Chroma Feature再轉出兩個Feature檔

3. 音樂對應Feature之資料庫, 資料庫也許仿之前的幫師大或黑膠規畫的那麼做.

然後請大家配合做以下的工作:

1.首先請大家使用軟體將CD音軌歌曲轉成. wav與.mp3 個一個file (建議使用foobar2000), 可以從你手上的CD已級實驗室裡有的CD開始.

2. 請將這些.wav 與由.mp3轉回的.wav放在兩個資料夾內

3. 對任一個資料夾, 將我撰寫的執行檔也放在一起

4. 接著請執行我寫好的執行檔

5. 每一個檔案將轉換出chroma files

6. 請將所有的.wav, .mp3以及chroma files上傳至資料庫

我這樣做是要試試壓過的.mp3是否也可以有好的效果. 我會準備HD空間給大家.

好吧! 我再做一個球給keiko, 那就是一旦他的系統弄好, 那麼我們在天涯海角, 只要有網路, 都可以回來這裡聽音樂, 雖說只是SCREAM Lab的人要來聽音樂不必搞這麼大陣仗.

不周之處, 請大家指教.

2009年4月7日 星期二

SCREAM Lab 台北團聚會

對不起.我生病了, 膝蓋又在痛. 這次聚會先取消. 過一兩周再看看.

非常抱歉!

引用 Lab 大當家的話:

四月十日左右, 去台北跟學長學姐聚聚.

畢業的學長姐比較少有人會看到這個 blog ,趁這次機會,把聚會時間地點放在這邊,然後寄出 email 邀請,順便推廣一下!

邀請的人:

  • 秘密:bff
  • 92 級:al
  • 93 級:water, kiki, Royce, bazoo
  • 94 級:mobo
  • 95 級:kiwi, Keiko
  • 其他隱藏在台北的 SCREAMer
    • 有幾位過去的專題生在台北唸書
    • buffett 可能會出沒在台北

時間:

  • 稍稍跟 water 討論了一下,預計是四月十日星期五的晚上!

地點:

  • 聽 mobo 說,老師是台北中山北路的老饕,老師有要推薦餐廳嗎?

SLIM 改版 - ㄚ凡

目前計畫要做的事:

  • 加上用GEF製作的介面

基本上是先拿之前給OpenESL用的介面過來套用

  • 加入component測試環境

就是在我們設計出一個新的component時
系統能依據使用者的輸入資料
建立一個測試環境
提供一組components與待測試的component連接
分別負責餵資料和輸出資料的動作
至於資料是否正確 還是要component的作者自己判斷

--

【加入component測試環境】的實作方式
應該是要分別針對pcm raw data、mp3這些不同的資料型態,先寫好一些測試用的components
使用者只需填好需要設定的資料屬性,系統就能自動連接並產生xml檔,進行單一component的測試

--

目前知道的就是這些
如果還有哪些要注意的地方 或是有什麼問題或建議
也麻煩提出來 謝謝

--
090327

這幾天在改GEF的介面
把學長的GraphGen跟SLIM要用的介面同時修改
下面列的是SLIM的介面需要修改的地方
(從OpenESL介面來改)

  • repository的讀取
    • component的XML描述不同
      • port type只有data/signal兩種
      • port id 應該是只作連接用 是否可以不用讀進來
    • <Property>
      • property有ro_runtime屬性 需要在介面中讓使用者改嗎 要的話就得多增加一個屬性來對應 不然一個屬性沒辦法對應兩個值
      • 沒有版本控制 少一層資料夾也不用做版本判別
  • project存取
    • 還要去問一下 有些xml檔裡有<Config>用來記錄Watchdog是否開啟 有些xml檔則是沒有這個tag  如果要記錄<Config>我想在目錄選單裡加一個頁面來設定watchdog的開啟
    • 還有 在<Filter>裡有<item>似乎是存這個component的屬性 可是有的xml裡沒有這個tag 有的是只有部分屬性 我不太清楚他的作用
    • 連線(buffer)有property要存 ex.type, maxsize

附上一個component的xml

<SMPFilter version="0.1">
  <!-- Filter Spec Here -->
  <!--     One XML should contain only 1 filter spec -->
  <Filter name="freader" version="2.0">
    <InputPort name="control" type="signal" id="0" />
    <OutputPort name="output" id="0" />
    <OutputPort name="read_filename" type="signal" id="0" />
    <OutputPort name="read_progress" type="signal" id="1" />
    <!-- Properties to export (changable)-->
    <!-- default: runtime read only (default true) -->
    <Property name="buffer_size" value="65536" runtime_ro="true"/>
    <Property name="repeat" value="0" runtime_ro="false"/>
    <Property name="filename" value="" runtime_ro="true"/>
    <Property name="read_dir" value="0" runtime_ro="true"/>
    <Property name="filter" value="" runtime_ro="true"/>
  </Filter>
  
  <!-- Filter Property (Java GUI) : parse when Java UI is present-->
  <!--    original Exampleinterface.xml -->
  <Frame name="freader" width="400" height="150">
    <label name="label1" caption="Buffer Size" gridx="0" gridy="0" />
    <textField name="buffer_size" text="65536" fill="horizontal" gridx="0" gridy="1" columnNum="6" />
    <button name="button1" caption="OK" gridx="0" gridy="2" />
  </Frame>
</SMPFilter>


應該還有其它的地方要改  目前我只發現這些
現在關於 repository的讀取 部分已經改好了

project存取 的部分還有些疑惑要去釐清



----------------------------
090407

讀寫project的部分大致上也弄好了

<Buffer from="0:0" from_port="output" id="0" to="1:0" to_port="input" type="default" maxsize="53" />

port id還是要保留  不然SLIM會沒辦法讀取
可是為了讓GEF比較好讀取連線 所以連線兩端的port name還是留在xml中

    <Filter name="freader" id="0" version="2.0" positionX="61" positionY="88" height="98" width="200">
      <item name="buffer_size" value="655360" />
    </Filter>

比較麻煩的地方是當時OpenESL的module裡並沒有property值可讓人修改
但SLIM的component都有property
在儲存project的時候也就要把這些改過的property存起來
這邊我是先找出哪些property有改過
再把他們用<item>這個標籤來存

剩下的部分是在介面中呼叫SLIM

2009年4月1日 星期三

SLIM UML

兩年前也上過凱堂大哥上的UML課程,當時因為SLIM要OPEN出去,所以老師希望我對SLIM做一些UML的diagram和文件。

當初還買了兩本書來看
UML 2.0 學習手冊
這本還不錯,滿淺顯易懂的
UML 2.0 技術手冊
這本就講的比較詳細了

對SLIM的UML有興趣的話,可以下載看看
裡面包含了大多的diagram以及EA的檔案
只是內容可能不太完善或者完美,請大家見諒
下載
當時的投影片
sequence diagram
slim analyzing

2009年3月31日 星期二

ICASSP 2009 Tutorials

以下節錄自系辦寄來的通告信。想問大家有人有要參加的嗎?維城學長說IRCAM的葉中興博士應該會來。

IEEE-ICASSP 2009
國科會全額補助國內學生參加密集課程(Tutorials),請多利用。

本補助原則為先申請先補助,申請從速,額滿時隨時截止。申請者必須具備學生身分。申請請上網填申請表:http://speech.ee.ntu.edu.tw/~RA/tutorial

額滿後主辦單位會通知獲補助之學生及其受補助課程,及補辦課程註冊之程序。補辦註冊時受補助學生需先自行繳交註冊費(每門課程60元美金),待大會結束後請將在會場取得註冊費之正本收據郵寄至國立台灣大學電機二館531室,再由大會發放補助款。(這部份好像最麻煩 = =)

IEEE-ICASSP 2009在4月19-20日3個時段共安排17場密集課程(Tutorials)。http://www.icassp09.com/Tutorials.asp

聽完課後要繼續聽presentations也是可以。

2009年3月19日 星期四

騰雲駕霧程式競賽

睽違已久的趨勢程式競賽又再度出現了,對當時還是大學生的我而言,趨勢的比賽是一個大消息,開口粥大師最近較忙,就由小弟我來代貼有關比賽的資訊。注意!3/24(二) 12:20-13:30 在成大資工4263有舉辦說明會。另外請隨時注意官方blog所公佈的 training course 消息。

以下是資訊來源:

騰雲駕霧程式競賽官網: http://www.trend.org/fd/tabid/66/Default.aspx

騰雲駕霧程式競賽官方 blog: http://www.wretch.cc/blog/trendnop09

騰雲駕霧程式競賽官方 blog: http://keikoblog.blogspot.com/2009/03/blog-post_10.html

image

我們公司辦的比賽,有興趣的人,尤其是學長弟妹可以參加唷!節錄一些重點:

「騰雲駕霧程式競賽」由趨勢科技主辦,IBM生物資訊研發中心協辦,該單位將提供硬體設備贊助。競賽籌備小組自3月10日起將至台北科大、台大、清大、交大等9所大專院校進行巡迴說明…

  • 說明會時間地點

    3/11(二) 12:20-13:30
    北科大
    綜合科館第三演講廳

    3/11(三) 13:00-14:00
    台大
    資工系 102

    3/12(四) 12:10-13:20
    台科大
    IB510

    3/16(一) 12:20-13:30
    中山
    電資大樓 F1001

    3/17(二) 11:00-12:00
    中央
    工五館 207

    3/18(三) 15:00-16:00
    清大
    資電館 127

    3/19(四) 12:20-13:30
    交大
    工三 122

    3/23(一) 14:00-16:00
    中正
    地震館 215

    3/24(二) 12:20-13:30
    成大
    成大資工 4263

  • 報名資格
    大學生、研究生、每隊四人(不多不少唷),可跨校!
  • 報名
    3/20-5/15:將開放網路報名,6月份將安排參賽者接受第一階段的網路遠距教學!
  • 比賽方式
    • 初賽
      7/1:網路公佈題目。
      7/8:00:00 停止收件。
      7/22:公佈入圍名單。
    • 決賽訓練課程
      7/30 ~ 7/31:到趨勢上課!
    • 決賽
      8/18 ~ 8/19:決賽入圍。今年也有可能不會在台北士林劍潭青年活動中心,會改去 IBM 生物資訊研發中心吧?機器都在那邊,或是要很炫的自己遠端 deploy 到伺服器海中,那就不必到現場了!
  • 頒獎
    8/20:頒獎。往年頒獎典禮都蠻有心的,會找飯店,以前有去過晶華酒店,典禮有簡單的點心、可邀請家人朋友、找記者來採訪(不過記者好像都不會來-_-|)
  • 獎項(這好像是最重要的)
    1st:NT$500,000
    2nd:NT$300,000
    3rd:NT$200,000
    4th:NT$150,000
    5th:NT$100,000
    6th ~ 10th:NT$50,000
    預聘書現在只給前三名了
  • 題目
    好像沒提到,但是跟雲端運算有關就是!
  • 競賽網站
    http://www.trend.org/fd/tabid/66/Default.aspx
  • 附註
    比賽中會需要各式各樣的人,寫 UI、寫程式、寫文件、上台 presentation、找 bug、做 testing 都會,所以記得要把團隊技能平均問題,不要只點某一、兩樣技能唷!

我是工作人員,不管有什麼疑難雜症、難以啟齒需要匿名的問題,我都可以代為傳達唷!

2009年3月18日 星期三

在 blog 上貼 YouTube

網友 Alvin 最近詢問怎麼在 blog 上嵌入 YouTube 一類的元件,所以就來跟大家介紹一下,順便騙騙文章數,掩飾一下自己江郎才盡了…

步驟一

YouTube 之類的服務都有提供物件語法給大家複製到自己的網頁上,參考下圖可以看到網頁有一區標示著嵌入

ScreenHunter_01 Mar. 18 21.28

步驟二

滑鼠移過去,還會發現有自訂的功能。使用者可以根據自己的需求調整,調整後,就是把 <object> …開頭的語法複製起來。image

步驟三

開啟自己 blog 文章編輯的 html 模式,以 WLW 為例,就是切換到程式碼模式。 接著就勇敢的貼上吧!

ScreenHunter_04 Mar. 18 21.55

成果

最後,就可以看到成果了!

其他

其他像是 mp3, quicktime 等格式的多媒體資料,基本上只要 host 有提供 object 來嵌入,都可以在網頁上產生美美的元件。

結語

ㄜ,感覺教學最後就要來個結語,那就: Yes, We Can!