Skip to content

Instantly share code, notes, and snippets.

@mohayonao
mohayonao / sch-drumloop-1.js
Created June 15, 2012 03:16
Timbre.js - T("schedule")を使って簡単なドラムループを作る
/**
* Timbre.js - T("schedule")を使って簡単なドラムループを作る(1)
* このコードは以下のURLで貼り付けて試すことができます.
* http://mohayonao.github.com/timbre/eval.html
*/
// まず, ドラムトラックのようなものを用意します.
// この足し算オブジェクトに各楽器(ハイハット, スネア, バスドラ)を加えて,
// 必要なときに bang() メソッドで発音させます.
@mohayonao
mohayonao / 00_intoroduction.js
Created June 22, 2012 07:43
Timbre.js - 自分だけの timbre オブジェクトを作る
/**
* 自分だけの timbre オブジェクトを作る
*/
// とても簡単
// コンストラクタを作って timbre.fn.register で登録します
function Silent() {
}
timbre.fn.register("silent", Silent);
@mohayonao
mohayonao / scalable_mml.pl
Created June 23, 2012 23:47
Kyoto.pmでつくったやつ
use strict;
use warnings;
my $bpm = 160;
my $samplerate = 48000;
my $scale = [0, 2, 3, 5, 7, 8, 10]; # minor
{
package Sine;
@mohayonao
mohayonao / README.md
Created July 5, 2012 11:50
timbre.js - ドラック&ドロップ逆再生する
var FFT = (function() {
"use strict";
var FFT = function() {
initialize.apply(this, arguments);
}, $this = FFT.prototype;
var FFT_PARAMS = {
get: function(n) {
return FFT_PARAMS[n] || (function() {
@mohayonao
mohayonao / CommentedWebBeeper.js
Created July 12, 2012 00:26
WebBeeper 2A03 にコメントをつけたやつ
/**
* WebBeeper 2A03
* Origin : http://www.g200kg.com/en/docs/webbeeper
* Author : g200kg氏
* Comment: mohayonao
* Blog : http://mohayonao.hatenablog.com/entry/2012/07/12/093004
*/
var app;
var audioif;
バージョン番号が日付ベースになりました。
`T("noise", 0.8)`, `T("pink", 0.4)` のように
ノイズジェネレータのコンストラクタで mul の設定ができるようになりました。
※ T("pink") オブジェクトは他のノイズジェネレータより音が大きいので適宜調整してください。
`T("perc")` が PercussiveEnvelope から ADSREnvelope になりました(動作は同じはず)
@mohayonao
mohayonao / custom-should.js
Created July 27, 2012 13:25
だいたいあってたらOKになるテスト
var should = require("should");
var i = require("util").inspect;
var NEARLY_PRECISION = 1/1000000;
if (! Object.getOwnPropertyDescriptor(should.Assertion.prototype, "nearly") ) {
Object.defineProperty(should.Assertion.prototype, "nearly", {
get: function() {
this.nearlyflag = true
return this;
(function(window) {
if (window.Float32Array) return;
var unsigned = 0;
var signed = 1;
var floated = 2;
function TypedArray(klass, arg, offset, length) {
var a, b, bits, i, imax;
if (Array.isArray(arg)) {
@mohayonao
mohayonao / LoadBinaryForIE9.js
Created February 12, 2013 12:23
IE9でXMLHttpRequestを使ってバイナリファイルを読み込むやつ
var path = "";
var callback = function(array) {
console.log(array.length);
};
var xhr = new XMLHttpRequest();
xhr.open("GET", path);
xhr.responseType = "arraybuffer"; // IE9はこれが効かない.
xhr.onreadystatechange = function() {