blog - 最新エントリー

VOCALOID3 ボーカロイド公式 調教完全テクニック

カテゴリ : 
図書
執筆 : 
kuha 2013-04-15 17:12
ボーカロイド公式 調教完全テクニック
発売日: 2013/4/28

ヤマハミュージックメディアより、VOCALOID3の歌声を人間に近づけるテクニックを紹介した本が出る。(ヤマハの國井さんから送っていただきました。有難うございます)ボーカロイドの歌声調教に関する本格的な解説本としては初めて。教科書的な存在になると思われる。

著者は、本学インタラクティブメディア学科で非常勤講師を勤める虹原ぺぺろんP氏。氏は音声学などにも造詣が深く日本語の子音と母音の関係から歌声を分析したボカロの調整を行なう方法論を確立しており、氏の作る歌モノ楽曲は限りなく人間のボーカルに近いことで知られている。本書では、各歌声ライブラリーごとの音域やテンポ、特徴に合わせた手法や、ささやき声、裏声、破裂音補正などマニアックな唄い方の調性など、本格的に解説されいる。音域&テンポマップは各歌声ライブラリーの特徴が見やすい図にまとめられている。

氏は、本学の授業でも作詞・作曲やMIDI打ち込みを指導してくださっているが、しっかりとした理論に基づく講義は説得力があり、分かりやすい。

ふかさくえみ「購買のプロキオン」

カテゴリ : 
図書
執筆 : 
kuha 2013-04-10 12:01
購買のプロキオン (ひらり、コミックス)

デジタル漫画家として活躍しているふかさくえみ氏が初のアナログ単行本を出しました。緑を貴重とした爽やかな製本です。彼女、当ゼミの一期生で、卒業制作は週刊少年ジャンプ「第3回デジタルマンガ賞」で佳作をとり、連載にもなったデジタルマンガ「マルラボライフ」です。この作品は、平成18年度文化庁メディア芸術祭マンガ部門の審査委員会推薦作品にも選ばれています。
http://www.asahi-net.or.jp/~sb9e-fksk/marulabo/flash01/maru_01.html

今回は単行本で、少女もの初挑戦だそうです。アマゾンでも買えます。カスタマーレビューの評価も高いです。
この単行本を機に、作画ソフトをFlashからComicStudioに変えたそうです。
構成は、少女モノの短編マンガで6つの話から成っています。
なかでも、「ツバキ准教授の門限」は、舞台のモデルが工芸大だそうで、KOOGEIネタが満載で、学生食堂の温泉卵などが出てきます。あとがきには「パワー丼」にも言及されていて、面白い。ふかさく氏のいっそうの活躍に注目したいですね。
http://www.asahi-net.or.jp/~sb9e-fksk/

東京工芸大学芸術学インタラクティブメディア学科のスプリングスクールでボーカロイド講座を行うことになりました。

日時 3月27日()15:00-16:00
場所 東京工芸大学中野キャンパス
講師 虹原ぺぺろん氏
内容 特別講師としてインタラクティブメディア学科で音楽制作指導を行っているボカロPの虹原ぺぺろん先生によるボーカロイドのレクチャーです。今回は講義形式で、ボーカロイドでの作曲ノウハウなど、作品制作に関わるお話を講義して頂きます。

取り急ぎ、速報でした。

Mac OSXのMax/MSP/Jitterにkinectをつなぐ

カテゴリ : 
コンピュータ » Max/MSP
執筆 : 
kuha 2012-11-09 17:31
ゼミスペのiMacにMax/MSPからkinectにアクセスできるようにつなげました。ソフトはJean Marc氏のjit.freenect.grabです。
http://jmpelletier.com/freenect/

Mac用のkinectドライバは、 OpenKinectプロジェクトのlibfreenect libraryを使っているようで、Xbox360用kinectでもちゃんと動きます。

ダウンロードパッケージは、以下にまとめてあります。
https://github.com/jmpelletier/jit.freenect.grab/downloads#download_64612

ダウンロード、解凍後、Cycling 74フォルダに移動後、使えるようになります。

helpを立ち上げ、kinectをデバイスopenし、qmetroでサンプリングすると、デプス映像とRGB映像がキャプチャされます。

motorでkinectの仰角を動かしたり、3D加速度センサの値を取得したりなどは、すぐにできますが、Jitterの知識がないと、応用は難しそうです。
AppleのText To Speechは,テキストファイルを人間の声で読み上げてくれるソフトウェアだが,AppleScriptを使えば、読み上げた声をaiffなどのオーディオファイルに保存することができる.

以下のスクリプトは、Web上にあるテキストをダウンロードして、テキストファイルに保存し,それをTTSで読み上げた音声をaiffファイルに保存する.
このスクリプトをTwitToSpeechというフォルダに保存し、デスクトップに置いて使用する.
処理の流れは以下の通り.

読み上げボイスは,Kathy
このスクリプトを保存するフォルダ名(TwitToSpeech)とフォルダの置き場(desktop)を指定する.
 読み上げられるテキストファイルtextPath(test.txt)と音声ファイルaiffPath(test.aiff)がこのフォルダに保存される.
tweetURLで目的とするURLを指定する。

try - end tryでは、"URL Access Scripting"を使って、tweetURLで指定したWeb上のコンテンツをテキストファイルtextPath(test.txt)に上書き保存する。

テキストファイルの中身をシェルのcatコマンドを使って、tweetWordsに入れて、TTSで読み上げた音声をオーディオファイルaiffPath(test.aiff)に保存する.

最後のコメントアウトされている行は,テキストの内容をダイアログボックスに表示させて確認するときに使う.

set voiceOfHuman to "Kathy"
set folderPath to (path to desktop folder from user domain as text) & "TwitToSpeech:"
set textPath to folderPath & "test.txt" as Unicode text
set aiffPath to folderPath & "test.aiff"
set tweetURL to "http://blossom.media.t-kougei.ac.jp/~kuha/tweet02.php?c=5&d=0"

try
	with timeout of 30 seconds
		tell application "URL Access Scripting"
			activate
			download tweetURL to file textPath replacing yes with progress
		end tell
	end timeout
on error
	display dialog "Download Error"
end try

set tweetWords to do shell script "cat " & (POSIX path of textPath)
say tweetWords using voiceOfHuman saving to aiffPath
--display dialog stringOfMessage

ただし、"URL Access Scripting" は、OSX Lionから廃止になったので,上のスクリプトが使えるのは、Snow Leopardまで.
Lion以降からは、OSXのコマンドのcurlを使って,do shell script "curl http://・・・ "などとする.

以下の例は、curlを使った例。
ちなみに、curlは、Lionだけでなく、Snow Leopard以前でも使える。

tweetURLで指定したURLの内容をcurlで、tweetWordsに入れ、write でtextPathで指定したテキストファイルに保存している。

set voiceOfHuman to "Kathy"
set folderPath to (path to desktop folder from user domain as text) & "TwitToSpeech:"
set textPath to folderPath & "test.txt" as Unicode text
set aiffPath to folderPath & "test.aiff"
set tweetURL to "http://blossom.media.t-kougei.ac.jp/~kuha/tweet02.php?c=5&d=0"

try
	with timeout of 30 seconds
		set tweetWords to do shell script "curl " & tweetURL
	end timeout
on error
	display dialog "Download Error"
end try

try
	set saveFile to open for access file textPath with write permission
	set eof of saveFile to 0
	write tweetWords to saveFile
end try
close access saveFile

say tweetWords using voiceOfHuman saving to aiffPath
--display dialog stringOfMessage

Google Maps APIのMap styleの変更

カテゴリ : 
コンピュータ » プログラミング
執筆 : 
kuha 2012-10-26 20:30
Google Maps APIのMap featuresは、道路、景色、ビルなど地図上の要素で、これらを指定して、地図のスタイルやデザインを変えることができる。
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#MapTypeStyleFeatureType

これらのstyleを個別に指定するには、Stylersのcolor, hue, saturationなどの要素をMap featureごとに指定すればよい。

以下の例は、stylesをグローバルにJSON形式で定義し、paintRoad()とpaintLandscape()という関数で、colorを別個に指定している。

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 10px; padding: 10px }
      #map_canvas { height: 100% }
    </style>
    <title>Google Maps API Styled Maps サンプル</title>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
    //<![CDATA[
			   
var map;
var latlng_koogei = new google.maps.LatLng(35.463536,139.32945);
// stylesをグローバルで定義
var styles = [
	{
		featureType: "road",
		elementType: "geometry",
		stylers: [
			{ color: "" },
		]
	},
	{
		featureType: "landscape",
		elementType: "geometry",
		stylers: [
			{ color: "" },
		]
	}
];

function initialize() {
	//地図の設定
	var opts = {
		zoom: 15,
		center: latlng_koogei,
		mapTypeId: google.maps.MapTypeId.ROADMAP
		//mapTypeId: google.maps.MapTypeId.SATELLITE
		};
	map = new google.maps.Map(document.getElementById("map_canvas"), opts);
}// initialize()の最後

function paintRoad() {
	var value = document.getElementById("mapcolor1").value;
	styles[0].stylers[0].color = value;
	map.setOptions({styles: styles});
}
function paintLandscape() {
	var value = document.getElementById("mapcolor2").value;
	styles[1].stylers[0].color = value;
	map.setOptions({styles: styles});
}

//]]>
</script>
  </head>
  <body onLoad="initialize()">
    <p>Google Maps API Geo Codingサンプル</p>
    <div id="map_canvas" style="width:500px; height:300px"></div>
    <div>
      道路の色を#rrggbbで入力:
      <input id="mapcolor1" type="textbox" value="#ff0000">
      <input type="button" value="Paint" onclick="paintRoad()">
    </div>
    <div>
      景色の色を#rrggbbで入力:
      <input id="mapcolor2" type="textbox" value="#00ff00">
      <input type="button" value="Paint" onclick="paintLandscape()">
    </div>
  </body>
</html>

NIME 2013 May 27-30, Daejeon + Seoul, Korea

カテゴリ : 
イベント
執筆 : 
kuha 2012-10-19 20:59
NIME 2013の日程がアナウンスされている。

May 27-30, 2013 | Daejeon + Seoul, Korea Republic
Call for participation
http://nime2013.kaist.ac.kr/call_for_participation/

Important dates
Paper/performance/installation submissions and workshop proposals due: February 1, 2013
Review notification: March 16, 2013
Camera-ready paper deadline: April 21, 2013
Google Maps APIで表示する地図は、styleOptionsを使ったスタイル付き地図で配色などのグラフィカルな要素を変更できる。

Google Maps JavaScript API v3 Styled Maps
https://developers.google.com/maps/documentation/javascript/styling?hl=ja

stylesというJSON形式のデータで、オプションを指定する。
たとえば、

var styles = [
{
	featureType: "road",
	elementType: "geometry",

	stylers: [
	{ color: "#FF00FF" },
	]
}
];

のようにJSONで定義されたデータで構成される。[]で囲われた部分が配列で、{}で囲われた部分がオブジェクトである。

これにアクセスするには、JSONはオブジェクトと配列を組み合わせた形なので、オブジェクトの部分は、.(ドット)でプロパティ値を書いてつなぎ、配列の部分は[0]などのように、添字の数字で指定する。

alert(styles[0].stylers[0].color);

styles[0].stylers[0].color = "#FF0000";

などとする。
この例は、最初の行で、color属性の値を画面に出力し、
次の行で、color属性の値を書き込んでいる。
おもしろそうな講演です。

東京芸術大学先端芸術表現科特別講義
題目「言語,情動,芸術」

講師 岡ノ谷一夫 先生(東京大学教授,東京芸術大学客員教授)
日時 2012年10月17日(水)18:00 -
会場 東京芸術大学 上野キャンパス 美術学部中央講義棟第3講義室
入場無料 予約不要

概要
芸術は,言語と並んで人間と人間以外の動物を分かつものと言える。しかし,ヒトと動物の非連続性を指摘することではなく,非連続性に対して連続的な説明を与えるのが生物学の立場であり,芸術への科学の接近法である。芸術の至近要因と究極要因を,前適応と創発の概念のもと生物学的に理解する枠組みを検討する。
JSONで、twitter APIにアクセスして、特定のハッシュタグを持つつぶやきを取って来て、表示するには、たとえば、JQuerryだと、

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
var showResults = function() {
  var keyword = $('#text1').val();
  var count = $('#num1').val();
  var query = encodeURI(keyword);
  $("#message").html('<ul>');
  $.getJSON('http://search.twitter.com/search.json?callback=?&q=%23' + query + '&rpp=' + count,
    function(data){
      $.each(data.results,function(){
        $('#message').append('<li>' + this.text);
      });
    }
  );
  $("#message").html('</ul>');
}
</script>
<body onLoad="showResults()">
Hash Tag : <input type="text" id="text1" value="museum">
How many : <input type="text" id="num1" value="5">
<input type="button" value="submit" onclick="showResults()">
<div id="message"></div>
</body>
</html>

などとする。この例は、ハッシュタグ#museumのつぶやきを取ってくる。

また、phpだと、

<?php
$hashtag = "museum";
$count = "10";
$url = "http://search.twitter.com/search.json?callback=?&q=%23{$hashtag}&rpp={$count}";
$json = file_get_contents("$url");
//jsonを連想配列に変換
$data = json_decode( $json , true ); 
//配列の中身を表示する
$str03 = "";
foreach ($data as $key1 => $val1) {
    foreach($val1 as $key2 => $val2) {
    //[resules][番号][text]を表示
        $str01 = $val2[text]."";
        echo "01 = $str01<br>";
		$str02 = preg_replace("/http(\S)+/i","",$str01,-1);
		$str02 = preg_replace("/RT /","",$str02, -1);
		$str02 = preg_replace("/[#@](\S)*\s/i","",$str02, -1);
		$str02 = preg_replace("/[#@](\S)*$/i","",$str02, -1);		
	    echo "02 = $str02<br>";
		if(preg_match("/^[!-~ ]+$/", $str02)) {// 半角英数字の場合だけ
		    echo "03 = $str02<br>";
			$str03 .= $str02;
		}else{
		    echo "03 = <br>";
		}
    }
};
echo "<p><b>$str03</b></p>";
?>

などとする。
この例は、http://や#ハッシュタグや@返信などの文字を削除し、半角英数字の文字のみ残している。
スポンサードリンク
検索

blogカテゴリ一覧

blogger一覧

blogアーカイブ