[ Jpn | Eng ]

Main Menu



Recent

最近の記事

Search

サイト内検索:

Archive

Powered by
MTOS 5.2.2


Products : Gembox Synth 販売中

ゼムクリップの容器に入ったコンパクトなシンセサイザー「Gembox Synth」を販売中です。

DTMステーション様で紹介していただきました
クリップ箱に収まった4,500円のミニシンセ、Gembox Synthが誕生

詳細はこちら : Gembox Synth


2015/02/07

ユーロラックのパネルを3Dプリントで作ってみるテスト

Twitter Google+ Facebook

ユーロラックモジュールのパネルを3Dプリントで作ってみたらどうかと思って頼んでた奴が届きました。使ったのはDMMのナイロン(ポリアミド)です。前にナイロンを頼んだ時は着色にしたのだけどちょっとムラっぽい仕上がりだったので今回は素地のままでいきます。


作図はいつものBlenderでやります。60mm x 125mmほどの大きさ、パネルを平置きで積層してこんな感じの仕上がりです。もっと黄色っぽいかと思ったら意外と白で通用するくらいの色です。表面はザラザラになります。


パネル部分は2.0mm厚で補強で両サイドにリブを立てています。結構穴の開いた構造ですが強度的には問題なさそうです。裏に好きなようにボス立てたりできるのは3Dプリントの良い所ですね。せっかくなので文字を彫り込んでみました。文字の高さは4mm程度、0.5mm掘っています。しゃきっとはしてませんが読むのに問題はないですね。どこまで小さくできるか限界を試すべきだったかも知れません。


組み立てるとこんな感じ。12HPのスピーカーモジュールです。基板は割と適当です。費用は3000円ちょっと、注文から5日間で届きましたのでアルミでゴリゴリやる前のプロトタイプとしては結構いけそうです。

Posted by g200kg : 1:33 PM : PermaLink

2015/01/25

HTML5 Conference

Twitter Google+ Facebook


さて、今日1月25日、東京電機大学千住キャンパスで「HTML5コンファレンス」が開催されました。という事で展示コーナーで音関係のアプリを展示してきました。



セッションの方は左の写真みたいな感じでWebの最新技術について色々あったのですが、展示の方に張り付いていたのでほとんど見てません。ちょっと残念。右、CodeIQさんでドーナツもらった図。


左、うなだれるPepperくん(撤収中)。右、FirefoxOS、はじめて触った。


左、Webとガジェット連携の例で湿度センサーとの組み合わせ。右はイベント常連のD.F.MacさんのWebRTC経由で動作する「ち~ん」。


左、MicrosoftさんはWindows10とAzure推し。右はKinectを使ったUI、こういうのはなかなか実用までには時間かかると思うけど未来を感じるねぇ。


左、顔認識による「あっち向いてホイ」。右はネット経由で遠隔地で乾杯ができるシステム。


最後はHTML5Quiz大会。あんどうさんのサイン入りDart本をげとしました。うぇい。

という事で無事終了しました。関係者の皆様お疲れ様でした。
しかしあれだね。横浜からだと千住キャンパス結構遠い。


Posted by g200kg : 10:31 PM : PermaLink

2015/01/21

今度の日曜日はHTML5 Conference

Twitter Google+ Facebook

2015年1月25日、今度の日曜日にhtml5j主催、「HTML5カンファレンス」 が開催されます。

HTML5の最新テクノロジーのセッションが目白押しなのですが、勿論WebAudio/WebMIDI系のセッションもあり、Web Music Developers JP代表として@ryoyakawaiさんが登壇されます。そして今年はブツの展示用の会場が設けられるとの事ですので、このブログを見ていただいている方には目新しいネタではないのですが、Webオーディオ系のデモを幾つか展示してきます。

私は多分オーディオ系デモのコーナーに張り付いています。ご都合付く方は是非どうぞ!


主催:html5j
日時:2015年1月25日(日) 10:00-19:00 (受付開始 9:30)
場所:東京電機大学 千住キャンパス1、2号館
参加費:無料
催し:基調講演、一般公演、展示、ハッカソン、ラジオ・・・

http://events.html5j.org/conference/2015/1/

Posted by g200kg : 5:07 AM : PermaLink

2015/01/05

WebAudioDesignerにGUIデザインエディタを統合する

Twitter Google+ Facebook

去年末くらいからWebAudioDesignerというWebAudioAPIのツールを作り始めていて、足りないものはまだたくさんありますが、やろうとしている事がなんとなく見えてきたかなと思っています。
WebAudioDesignerには3つのモードがあります。初期状態のDesignモードではWeb Audio APIの各種ノードを繋いでいって音を出す事ができます。また、ツマミやキーボードなどのコントローラーからパラメータを操作するように接続する事もできます。

Layoutモードではツマミやキーボードなどのコントローラーだけが表示され、GUIパネルの上に好きなように配置できます。

そしてPlayモードではGUI付きの完成したアプリケーションとして動作させる事ができます。

最終的にはできたものをローカルファイルとしてダウンロードできるようにしたいのですが、そのあたりはまだ途中です

WebAudioDesignerで作ったGUI付きのサンプルはこちら:
WebAudioDesignerサンプル

Posted by g200kg : 12:32 PM : PermaLink

2015/01/01

あけましておめでとうございます

Twitter Google+ Facebook

Posted by g200kg : 9:00 AM : PermaLink

2014/12/29

Base64/Base64Url エンコーダー/デコーダー

Twitter Google+ Facebook
なんかBase64/Base64Urlのエンコーダー、デコーダーを必要になる度に書き直している気がする。探せばいくらでもある事はあるし、毎回書いても大した事ないと言えばないのだけど、それなりに面倒なのでここに割と潰しが効きそうな感じの奴を置いておく事にします。

エンコーダーの方は文字列でもバイト配列でも受け付けて第2引数にtrueを渡すとBase64Urlになります。デコーダーの方は入力は文字列でBase64/Base64Urlのどちらでもデコードでき、第2引数にtrueを渡すと出力が文字列、省力するとバイト配列で戻します。 頑張ればもうちょっと短くなるかも知れないけど、これくらいなら満足かなぁ

WTFPL(Do What The Fuck You Want To Public License) v2 ライセンス : http://www.wtfpl.net
//Licensed under WTFPLv2
function EncBase64(x,base64url){
	var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	var r = "", d = 0, bits = 0, l = x.length, get = function(i){return x[i]};
	if(base64url)
		tab = tab.replace("+/","-_");
	if(typeof(x) == "string")
		get = function(i){return x.charCodeAt(i);};
	for(var i = 0; (i < l) || bits; ++i){
		d <<= 1,++bits;
		if(i < l)
			d = (d << 7) + (get(i) & 0xff), bits += 7;
		while(bits >= 6)
			r += tab[(d >> (bits -= 6)) & 0x3f];
	}
	if(!base64url)
		r += "===".substr(0,((r.length + 3) & ~3) - r.length);
	return r;
}
function DecBase64(x,str){
	x = x.split("=")[0];
	var tab = "-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	var r = [], d = 0, bits = 0, l = x.length;
	for(var i = 0; i < l; ++i){
		d=(d << 6) + ((tab.indexOf(x[i]) - 2) & 0x3f);
		if((bits += 6) >= 8)
			r.push((d >> (bits -= 8)) & 0xff);
	}
	if(str)
		r = String.fromCharCode.apply(null,r);
	return r;
}


※いや、これ、atob()/btoa()が動かない環境がまだあるとばっかり思っていたので作ったのだけど、今の最新のブラウザはどれもatob()/btoa()をサポートしてるんですね orz。ただまあBase64Urlをatob/btoaでやるにはパディングの処理とか文字の置換が必要なのでその辺だけ前後処理が必要になります。後はデコード結果を直接配列で取りたい時とかは使えるかも。まったく無意味という訳でもないので許してください。

Posted by g200kg : 3:43 PM : PermaLink

g200kg