React/ReduxのBoilerplateを作った

React/Reduxを使ってちょっとしたもの(楽器とか)を作ろうと思ったとき、
実験用のコードを書くよりも環境構築に時間がかかってあほらしいので、
自前でboilerplateを作った。

既存のboilerplateを使えばいいのだけれど、
余分なもの、自分が理解していないものが混じっているのは嫌だったので、
自分が使う範囲のものだけを含めたminimalなものにした。

nishaya/react-redux-boilerplate

特別なことは何もしていないが、
.eslintrc の下記の箇所は意図的に緩くしてある。

  no-mixed-operators: 0
  no-console: 0
  • no-mixed-operators: オシレータの処理などで演算子の優先順位を明示すると長くなるのでオフ
  • no-console: UglifyJSのdrop_consoleで落とすのでオフ

PUSH TURN MOVE

電子楽器のUIデザインに関する本が出るらしい。

f:id:nishaya:20170412090607p:plain

PUSH TURN MOVE
4/18(火) よりKickstarterで募集開始。

気になる内容は、

  • Jean-Michel Jarreによる序文
  • サウンド: ソフトウェア/ハードウェアにおける音の可視化
  • コントロール: ノブ、フェーダー、タッチストリップ、ボタン、スクリーンなど、さまざまなコントロール要素
  • レイアウト: 電子楽器・コントローラのインターフェースデザインにおける原則とテクニック
  • コンセプト: ハード/ソフト/AppにおけるDAWs, Grids, Modular, Collaborative, Radial, Gesturalといったコンセプト
  • ユーザ: ユーザビリティ、ワークフロー、体験デザイン - UCDについて
  • 歴史: 電子音楽をとりまくインターフェースの進化 - テルミンからAbleton Liveまで
  • 楽器メーカーの開発者インタビュー

などなど、280ページ

必読の予感。
電子書籍版でいいから早く読みたい。

シーケンサを作る準備

Reactでシンセサイザーを作ったので、
次はシーケンサを作りたいと思っている。

最低限押さえておきたいのはこのあたり

  • ズレのないタイミング制御
    • AudioScheduledSourceNode.start(when) を使う
    • テンポの変更を演奏にリアルタイム反映
  • 明快なUI
    • 一音一音打ち込みたいという気持ちもあるが、今回のメインはそこじゃない
    • 頻度、密度、スケール、分散といったパラメータから生成
  • モジュール式のシーケンスエフェクト
  • パターン
    • 手頃な数(32くらい)を保存したい
    • 保存先、Firebaseいいかなと思うけど一旦localstorageで

最終的には、Teenage EngineeringのOP-1みたいなものが
ブラウザで動くようになるといいなと思っている。