YoutubeやSpotifyをそのままスクラッチ・ループ・エフェクト再生できるアプリを作りました。

ちょっと前にも似たようなの作ったけど、進化版。 YoutubeやSpotifyで流している音をそのままスクラッチしたりループさせたりできるアプリを作りました。 YoutubeやSpotify,Macのミュージックアプリ、その他なんでも再生している曲(音ならなんでも)に対し…

Macで流れている音楽をなんでもスクラッチするアプリを作りました。

Macで流れている音楽をなんでもスクラッチするアプリ "Scratch Now" を作りました。 www.youtube.com Spotify,Youtube, ミュージックアプリやDAWからの出音など、Macでなっている音ならほぼ全てスクラッチできます。 仕組みとしては、仮想ループバックデバイ…

Spleeterを使ってMacで流れる音楽を(5秒遅れで)楽器毎に音量調整できるアプリを作った(v0.2)

Late5をv0.2にアップデートしました。 変更点: ・パート毎のPAN調整ができるようになりました ・選んだパートだけをスクラッチできるようになりました。 ・音質が向上しました(多分)。 Late5 v0.2 ダウンロードはこちらから github.com デモ動画。ボーカ…

Spleeterを使ってMacで流れる音楽を(5秒遅れで)楽器毎に音量調整できるアプリを作った

Late5 Spleeterを使って、Macで流れる音楽のボーカル・ドラム・ベース・ピアノ・その他のパートを個別にリアルタイムで音量調整できるアプリを作りました。 下記からダウンロードできます。 github.com デモ。Spotifyで流している曲の楽器を個別に音量調整し…

mrubyでのありがちなミス4つ

よくやってしまう+これからもやってしまうこと。 (2014/4/28追記:1つめにmruby-clang-plugin紹介) (2014/4/6追記:4つめ) mrb_funcall()の可変引数部分は全部mrb_valueじゃないといけない。 ついついintなどをそのまま突っ込んじゃう。可変引数なので何を入…

CRubyのGVLとビジーループ

mrubyのVMのマルチスレッド対応がgithubにて議論されています。multi-thread support on the RiteVM #1657自分もthread-safeなVMが欲しいなぁと思っています。STM32F4DiscoveryにFreeRTOS載せて使ってみたい。 並行・並列処理の戦国時代? さて、マルチコアが…

秋葉原のmrubyイベントでデモさせてもらった。

秋葉原で開催された東京Rubyプレゼンテーション2014にパネラーとして参加させていただきました。[twitter:@monamour555]さんの紹介に多謝。自己紹介でホストベースのmirb について簡単にデモしましたのでスライドおいて置きます。http://www.slideshare.net/…

カスタムアロケータとC++のnew

mruby Advent Calendar 2013 - Qiitaの19日目の記事です。 mrubyでカスタムアロケータを使う mrubyを使うときは、まずmrb_open()を呼ぶわけですが、mrb_open_allocf()という独自のアロケータを指定できる亜種があります。 mrb_state* mrb_open_allocf(mrb_al…

STM32F4DICOVERY+Wi-Fiモジュール+mrubyでWebサーバ

STM32F4DISCOVERYでmrubyを動かせましたが、次になにかしたいなと思っていたところ、簡単にマイコンに接続できるWi-Fiモジュールの存在を知りました。GAINSPAN GS1011シリーズ このモジュールは、マイコンとシリアル通信上でATコマンドを使って簡単にWireles…

¥1,650で買えるARM基板STM32F4DISCOVERYでmrubyを動かす

今までchipKIT Max32でmrubyを動かして遊んでいたわけですが、最近STMicroelectronicsのSTM32F4DISCOVERYという評価ボードを知りました。 STM32F4DISCOVERY ARM Coretex-M4 STM32F407VGT6 Microcontroller 1MB Flash 128KB + 64KB RAM 秋月電子で\1,650で販…

mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方がまだよくわからないので実験してみた

Matzがmrubyのarenaの使い方について書かれています。Matzにっき(2013-07-31) _mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方自分も時々arena_overflowになって悩まされていたのですが、いまいちわからないままあやしいところをmrb_gc_arena_s…

Safariをハイジャックしてmrubyを動かす

F-Scriptを真似して、SafariをハイジャックしてSafariの中でmrubyを動かしてみました。ハイジャックするといってもgdbでプロセスにアタッチしてFrameworkを読みこませる方法なので、XCode必須。今はメッセージの引数に使える型に制限がありますが、そのうち…

ホストベースなirbでmrubyとラジコンと戯れる その2

mrubyを使ったホストベースなirbその2です。 動画 コマンド #fileコマンド Rubyファイルを読み込んで、ボード上で実行させます。 #reconnectコマンド 一旦USBを抜いて、再度挿し直した時に復帰する機能です。 開発サイクル この2つのコマンドを使えば、コ…

ホストベースなirbでmrubyとラジコンと戯れる

@bovensiepenさんという方がArduino Due上でmirbを動かしています。http://blog.mruby.sh/201305201003.html自分も以前chipKITMax32で試したのですが、メモリが厳しすぎてまともに動きませんでした。どうもコンパイルするときにメモリをかなり使ってしまうみ…

SoundFlowerbedに音量コントロールをつけてみた。

MacでアプリやYoutubeの音を録音するのにSoundFlowerが便利でよく使っています。http://cycling74.com/products/soundflower/ SoundFlower SoundFlowerはいわゆる仮想サウンドデバイスで、SoundFlowerに出力すると、SoundFlowerの入力側に入ってくるという仕…

mrubyのメモリ使用量(リベンジ)の続き

mrubyのメモリ使用量(リベンジ) - kyabの日記では、参考サイトを元にmrb_open()直後までのメモリ使用量を約30kb減らすことができました。 total allocated size = 77858 malloc count = 1458 max memory usage = : 8381936 ただ、これはMac上のllvm-gccで…

mrubyのメモリ使用量(リベンジ)

2014/2/20追記 以下のメモリ削減はあくまで当時のmrubyに対する変更です。今でも有効かわかりませんし、#pragma packを使うと動作しない場合もあるとかないとか、、試す方は注意ください。また当時はmrbconf.hの#define を直接編集していますが、現在はbuild…

chipKit Max32でのmrubyビルド再考

引き続きArduino互換機chipKit Max32でmrubyを動かすシリーズです。 今まではchipKit Max32のIDEであるMPIDEのライブラリフォルダにmrubyのソースを丸ごとコピーするという方法を取って来ましたが、MPIDEのライブラリフォルダは*.c/*.hの配置に制限があった…

mrubyのメモリ使用量 on chipKit Max32

01/26追記: 測り方間違ってるぽいです! こちらを参照ください。mrubyのメモリ使用量(リベンジ) - kyabの日記 以下誤り! chipKit Max32上でのmrubyのメモリ使用量を調べてみました。といってもmrb_open()しただけの状態です。mrbconf.hはこんな感じで、TI…

Arduino互換機+mrubyでラジコンを自動走行してみた

2014/2/20追記 下記はRSTRING_PTR()を誤った使い方をしています。mrb_valueにRSTRING_PTR()マクロを使った場合に取り出した文字列は終端がNULLとは限りませんのでご注意 前回までで、chipKIT Max32上でmrubyプログラムをさくさく開発できるようになりました…

chipKIT Max32上でのmruby中速開発

2014/2/20追記 下記はRSTRING_PTR()を誤った使い方をしています。mrb_valueにRSTRING_PTR()マクロを使った場合に取り出した文字列は終端がNULLとは限りませんのでご注意 前回、LEDの制御ができました。 しかし、バイトコードをCに埋め込む方法だと、毎回mrub…

mrubyでLEDを点滅させる

2014/2/20追記 下記はRSTRING_PTR()を誤った使い方をしています。mrb_valueにRSTRING_PTR()マクロを使った場合に取り出した文字列は終端がNULLとは限りませんのでご注意 Arduino互換機 chipKIT Max32でmrubyを動かす - kyabの日記でchipKIT Max32でのmruby動…

Arduino互換機 chipKIT Max32でmrubyを動かす

chipKIT Max32というArduinoのMPUをPIC32にした基板上でmrubyが動作しました。とりあえずやり方をメモ。 chipKIT Max32 スペック PIC32MX795F512L 80MHz ROM:512Kb, RAM:128Kb 3.3V動作 Arduino/Arduino Mega用のシールドが大体動く(?) 大抵のArduinoスケッ…

Arduino互換機 chipKIT Max32でmrubyを動かす

2013.2.1追記: 最新の方法は以下参照してください。 chipKit Max32でのmrubyビルド再考 - kyabの日記

Objective-CコードからCの構造体を簡単ログ出力(with MacRuby)

MacRubyでプロジェクトを作成すれば、Objective-Cのコード中から簡単にCの構造体をダンプできる。Ruby側。NSValueに詰め込まれた構造体と型名を受け取って、ダンプするユーティリティ。 class Util def self.dump_struct_withName(o,klass_name) if (o.kind_…

後書きスタイルでデコレータ

こういう書き方って有りなんだろうか。 class Proc def sorround_by(&block) block.call self.call block.call end end lambda{ puts "one" puts "two" puts "three" }.sorround_by{ puts "-------" } 結果: ------- one two three -------普通は def sorro…

enumが結構良いかもしれない

ActionScriptのArrayの中身は、Ruby等と同様どんな型も受け付けるのがちょっと嫌で、haXeに乗り換えてやろうかと思い、構文を斜め読みしていたところ、列挙型(enum)が結構見慣れない感じで新鮮だった。以下公式サイトからの引用を少し修正しただけですが。 e…

WYWIWYM(What You Write Is What You Mean)

WYSIWYG - Wikipedia(What You See Is What You Get)という言葉がある。プログラミングの世界でも、書かれていることがプログラマが意図する(頭の中にある)ことそのものに近づいて来ている。その流れが非常に速くなり、必要なコストも低くなってきている。…

パーサジェネレータはシンタックスハイライターも生成すべき

DSLが流行ってくると、それ用のシンタックスハイライターも次々と作らなきゃならなくなる。例えば、RSpecでdescribeとかitがifとかclassとかと同等の色つきしてもらえるとありがたい。 お気に入りのエディタでscalaのキーワードが色つきになってくれないのは…

DSLの次

ここ最近、(自分だけかもしれないが)、当分の流行りはやっぱりDSLになるんじゃないかな。と思う。Ruby/Python、JavaScriptへの注目があり、その中で古くて新しいLispが見直されて本が出たりでクロージャ、無名関数は常識になってきた。C#/C++0xへの導入も…