TidalCyclesの音色と実行パターンに関するメモ
音のパターンを数字や処理で見るのは直感的でないため、ある程度思い通りのリズムにするには実践しながらクセのようなものを体験し、習得しなければいけない。なので、いろいろ試していった所感をメモっていきたいと思う。
今回検証するのはn
に関して、音色の操作/
と*
を使う場合に、どのようなサイクルで数値が適用されるのかを公式のサンプルを使って確認した。
d1 $ s "drum [cp hh] odx*2 arpy*2" # n "[1 3 5 0 2]/2"
コードからまずパッとわかるのは、7つの要素で構成され、「drum」「cp」「hh」「odx」「arpy」5つの音色がある。♩ ♫ ♫ ♫というリズムでそれらの音が鳴る。
これにn
を使って数値パターンをコントロールパターンに入れ込み、音色を変化させている。別の言い方をすると、コントロールパターンを見ると特に番号の指定がないので、すべての要素の音色が0 0 0 0 0 0 0
になっており、この0の並びに対してn
を使って数値を代入していく。
数値パターンは/2されることによって、コントロールパターンが2回再生されるまでに入れ込みが終わりきるようになっている。ここが理解しづらい。そもそも7つの要素に対し、5つの数値をどのように入れ込むのか、その数値がさらに/2されるとどう入れ込まれるのか。
検証するために、各音の要素をnumbers
に置き換え、数値を読み上げてもらった。結果は以下の通りだった。
# n "[1 3 5 0 2]" の場合 1 3 3 5 0 0 2 # n "[1 3 5 0 2]/2" の場合 1 1 1 3 3 3 5 5 0 0 0 2 2 2 # n "[1 3 5 0 2]*2" の場合 1 5 0 1 3 5 0
先述のように、/2が付いていることでひとつの数値パターンが最後まで入れ込まれるまでにパターンを2回再生することを必要としている。
また数値の重複にも着目したい。/2が付いていない方は、5つの数値を7つの要素に当てはめるため、3と0がひとつ増えている。次に/2の方は、5を中心として左右が3つずつになった。何回再生してもこの通りになったため、ユークリッドシーケンスのように何かしらのルールで不足分を補っているようだった。
上記のパターンをアナログに書き起こすと以下のようになる
d1 $ slow 2 $ s "drum:1 [cp:1 hh:1] [odx:3 odx:3] [arpy:3 arpy:5] drum:5 [cp:0 hh:0] [odx:0 odx:2] [arpy:2 arpy:2]"
*2についても調べてみた。1パターンの間に2回数値が入れ込まれるわけはないので、あまってしまう数値を自動で取り除くようだった。
補填と除去のどちらにせよ、アルゴリズムに則ると利用者がコントロールできるパターンではなくなってくることが今回わかった。これは悪い意味ではなく、ライブコーディングにはこのようなランダム性を表現に取り入れてこその楽しみがあると再認識できた。
Rails の chartkick.js のエラーを解決する
開発環境構築中に下記のエラーが表示された。
Asset filtered out and will not be served: add Rails.application.config.assets.precompile += %w( chartkick.js )
to config/initializers/assets.rb
and restart your server
config/initializers/assets.rb
に Rails.application.config.assets.precompile += %w( chartkick.js )
を書き加えろとのことなので、そのようにした。
そのあと再起動して、解決しました。
ndenvとnode -vのバージョンが合わない時の解決策
ごちゃごちゃしていたのを整理したのでメモっておく。
$ node -v v11.2.0 $ ndenv versions system * 8.9.4 (set by /Users/yagyosan/project/.node-version)
最初はこの状態。
nodeを参照している場所を変える
ndenvのPATHなどを .bash_profile
をすでに書いてある前提で...。
$ which node /usr/local/bin/node $ brew uninstall --ignore-dependencies node $ exec $SHELL -l $ which node /Users/yagyosan/.ndenv/shims/node % node -v v8.9.4
ついでにnpmも変える
$ which npm /usr/local/bin/npm $ npm uninstall -g npm $ rm -rf /usr/local/lib/node_modules $ brew prune $ which npm /Users/yagyosan/.ndenv/shims/npm
これですべてndenvの支配下になった。
参考
Nodeのバージョン管理をndenvにしたけどうまくバージョンが切り替わらなかったときのメモ - dackdive's blog
同一端末で異なるGithubアカウントのリポジトリにpushする
仕事で使っているGithubアカウントとは別のアカウントにpushしたかった。
git config --local
だけいじってもできなかったのでやり方を調べた。
こちらを参考にしました。
キーを作ってGithubに登録するまで
$ cd ~/.ssh $ ssh-keygen -f test -t rsa -b 4096 -C "user@example.test" Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in test. Your public key has been saved in test.pub. The key fingerprint is: SHA256:qroLmktztqEO9MNKky8ZMjEjEiiHQNMAjiyiFU+VXrs user@example.test The key's randomart image is: +---[RSA 4096]----+ |B=+ .... | |O o= . . | |==. .. . . | |X. . . | |+= S. | |+.+ .E | |+BoB . | |==O +. | |===*. | +----[SHA256]-----+
で、ここで出てきた test.pub
をGithubのSettingsから追加する。-f
の後はファイル名なので自分の好きな名前で、あとアドレスも自分が使いたいアドレスを入れる。
~/.ssh/config
に接続先を設定するまで
~.ssh/config
を作成して、下記のコードを入れる
# user github Host github-user HostName github.com User git Port 22 TCPKeepAlive yes IdentitiesOnly yes IdentityFile ~/.ssh/test
ここで気をつけることは以下のとおり
user
の部分はなんでもいいので自分が使いたいアカウント名とかつけておくといいかもIdentityfile
は先ほど名前をつけたシークレットキーの方を指定する
git push するまで
ここに関しては参考リンクをそのまま見てもらった方がわかりやすいので、そちらを見てください。 Hostとアカウント名を間違えないようにだけ注意。
以上です。これで合法的にサボりながら趣味の開発できます。
nannou をインストールする
nannou はRustで使えるクリエイティブコーディング用のフレームワークで、最近世に出てきたもの。
Web Assembly とRustへの関心が高まっていく中で、「まあそのうちRustでもクリエイティブコーディングできるようになるんだろうな」と思っていたら見つけた。やっぱりあるのね。
まだまだ新しいソフトウェアなのでしばらく人柱になってみようと思う。
やり方
Getting Started に書いてある方法をそのままやっただけなので割愛。詰まりそうなとこなどメモ。
rustup
コマンドが見つからない
Rust のインストール直後にrustup
してもコマンドないよって言われるので、下記のコードを.bash_profile
ファイルに追加して、ターミナルなりPCを再起動する。
export PATH="$HOME/.cargo/bin:$PATH"
このくらいだと思う。カンタン。あとは nannou をgit clone
してきてビルドして、必要なプラグインをインストールするところまでできたら導入完了。
TidalCycles をインストールする
ライブコーディングやりたくてTidalCyclesをインストールしてみた。
Tidal-bootstrap を使う方法とManual install があるが、今回は後者の方法にする。 開発環境は macOS High Sierra です。
やり方
上記を参考に進めたので大枠の流れは割愛。
cabal install が通らない
cabal install tidal
するときに以下のエラーが表示される。
clang: error: unknown argument: '-no-pie' `gcc' failed in phase `C Compiler'. (Exit code: 1)
gccがいけないのかなと思ったけど、こちらの方法を試してみたところ通った。
$ sudo vim /Library/Frameworks/GHC.framework/Versions/8.4.2-x86_64/usr/lib/ghc-8.4.2/settings
で、("C compiler supports -no-pie","YES")
となっているところを ("C compiler supports -no-pie","NO")
に変更すればOK。
注意点
あと SuperCollider 慣れてない人は、include("SuperDirt")
するときに、行全体を選択して command + return して実行するとか、ライブラリインストールし終わったらアプリケーションを再起動するか Language > Recompile Class Library するとか、細かいところにハマりポイントがあるかもしれない。
とりあえずインストール自体はここまで
nodebrew install で Failed to create the file と怒られたときの解決法
nodebrew install
時に Failed to create the file と怒られた。
% nodebrew install-binary v7.9.0 Fetching: https://nodejs.org/dist/v7.9.0/node-v7.9.0-darwin-x64.tar.gz Warning: Failed to create the file Warning: /Users/yagyosan/.nodebrew/src/v7.9.0/node-v7.9.0-darwin-x64.tar.gz: Warning: No such file or directory 0.0% curl: (23) Failed writing body (0 != 941) download failed: https://nodejs.org/dist/v7.9.0/node-v7.9.0-darwin-x64.tar.gz
ディレクトリがないとのことなので作ってあげたら通った。
% mkdir ~/.nodebrew % mkdir ~/.nodebrew/src % nodebrew install-binary v7.9.0 Fetching: https://nodejs.org/dist/v7.9.0/node-v7.9.0-darwin-x64.tar.gz ######################################################################## 100.0% Installed successfully