【TidalCycles】SuperCollider起動時にSuperDirtを自動起動する

簡単なメモですが

スパコラ起動時に「毎回 SuperDirt.start 走らせるのかったるいなー」と思ったら、スパコラに起動スクリプト設定あるんですね。 f:id:very_tired:20190201111324p:plain

メニューからStartup file開いてSuperDirt.start書いて保存。

再起動してみたら実行されました。これで捗る。

...と書いた後、ググったら同じようなこと書いているブログが山のように見つかったorz。自分用メモとして載せておきます

【TidalCycles】Tidal Cycles をインストールする

はじめに

最近本屋を徘徊していたらこんな本があったのを偶然発見。

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens

田所さんの本だ。ライブコーディング本とは・・・日本初かな? TidalCyclesネタなんて超ニッチじゃないでしょうか。売れなさそう・・・・。 そういえばTidalは昔少しだけかじってたんですが、色々やるも「金にならない!」と我に返り、挫折してそのまま忘却。

そして2019年、何か新しいことやってみようと毎年の目標を考えてみるも、フロントエンド業で特にチャレンジしたいものもなく(reactやvueは仕事でやれる)、WebGL金にならないし仕事上の必要性もあまりない。ReactNativeやFlutter、Electronでアプリ作るのも作りたいもネタがない。rust+web assembleyはまだ早い気がする(仕様変更かかりまくりでついていくのが大変)。サーバーサイドやインフラを今からやるものどうなのか。などと考えてる中、ふと本のことを思い出した。どうせ不必要なことをやるなら思い切ってTidalCyclesを再学習してみるか、そしてお金に出来るくらいライブが出来るくらい作り込んでみるのもアリかもしれない。

おそらく堅実に生きるためにすべき勉強することもあるんですが、もう人生色々棒に振り気味の事をやってもいいかなと。今ここでは書けない人生のターニングポイント(負の方向寄り)にいるんですが、悩んでたら段々どうでも良くなってきました。開き直り40半ばのおっさんが挑戦してみます。勉強も、ただやるのもアレなのでやったことをメモ/記録しておきます。

インストール

とりあえず最新版(1.0.7)を入れます。

当方開発マシンはMacなのでこちらを参考にします。 MacOS installation - TidalCycles userbase

atomとgitはすでに入っているので省略。

1.Haskell(8.6.3)をインストール

DLしてまるっと入れます。

2. SuperCollider(3.10.0)をインストール

DLしてまるっと入れます。

3. cabalのアップデートとtidalのインストール

cabalはHaskellのパッケージマネージャーでしょうか。 下記コマンドを実行。

cabal update
cabal install tidal

環境はインストールできたので使えるようにしましょう。

4. SuperColliderにSuperDirtをインストール

tidalでは音響生成エンジンにSuperDartを使うのでスパコラに入れてあげます。 スパコラ起動してエディタを立ち上げたら

include("SuperDirt")

を入力して、入力した行にカーソル置いた状態でcmd + enterでコードを実行。 コンソールにインストール状況が表示されるはず。

5. atomにtidalcyclesパッケージをインストール

packageがあるので入れます。これでatom上から直接コード実行出来るようになります。

これで環境は整ったっぽいです。

動作確認

https://tidalcycles.org/index.php/Start_tidalcycles_and_superdirt_for_the_first_time こちらを参照に動作確認してみましょう。

スパコラを再起動してエディタより

SuperDirt.start

を実行する。

自分の場合ここでエラーが発生。

ERROR: Input sample rate is 16000, but output is 48000. Mismatched sample rates are not supported. To disable input, set the number of input channels to 0.

どうも入出力のフォーマットを合わせないと駄目らしい。 MacなのでAudio MIDI設定から入出力の設定を統一した。

実際のコードを書きます。 atom上で

d1 $ sound "bd sn"

と書いて、cmd + enterで実行。kick & snareが鳴ったら大成功。

終わり

とりあえず色々やってみようと思います。昔一瞬かじりましたが、その当時の記憶は完全に消えているので最初から勉強し直しです。しんどいぞ。

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens

本を買おうかは悩み中。

次はシーケンス組むorビート組む、のどちらかをやってみようかなと。昔作ったtdサンプルの残骸がどこかにあったはず・・・。

React NativeをXCode10でビルドする

色々試した結果のまとめ。

ビルドまでのまとめ

Expo(create-react-native-app)は使わない

create-react-native-app で生成したプロジェクトを npm run eject を使ってReact Nativeのプロジェクトに変換し、それをビルドしようとしたが、様々なエラーが出て、ビルドまで辿り着けそうになかったので、一旦使うのはやめることにした。通常の手法 react-native init your-project-name でプロジェクトを生成することにした

iOSのビルド

生成したプロジェクトをそのままビルドしようとしても出来なったのXCodeのプロジェクトの設定を変更した

FIles>ProjectSettingsからAdvancedボタン押下後の設定画面で下記を参考に設定

https://github.com/facebook/react-native/issues/7308#issuecomment-230198331

まだエラーが出る

アプリ自体のビルドに成功したが、エミュレータからアプリに起動後中の部分でエラーが出る。

先に書いたメモ参照。

verytired.hateblo.jp

雑感

Expoだけならさっくり動かせるが、アプリのビルドまでやると相当手間がかかる。Androidまでやるとなるとどうなることやら....

react-nativeのiosビルド後表示される 「bundling failed: Error: Unable to resolve module /../react-transform-hmr/lib/index.js」の対応

react-nativeを react-native run-iosiosエミュレータを起動させようとすると、赤い画面で「bundling failed: Error: Unable to resolve module /../react-transform-hmr/lib/index.js...」と表示されjsが走らなかった。

キャッシュをクリアしてやる必要がある模様。

キャッシュクリアで処理開始。

react-native start --reset-cache

この状態で別ウィンドウで

react-native run-ios

を実行してやると正常動作となった。

oh-my-fishのインストール中のエラー

oh-my-fishをインストールしようとして

Existing installation detected at /Users/username/.local/share/omf
Would you like to remove the existing installation? (y/N): <W> fish: No TTY for interactive shell (tcgetpgrp failed)
setpgid: Inappropriate ioctl for device

上記のようなエラーが出た場合

rm -rf ~/.local/share/omf
rm ~/.config/fish/conf.d/omf.fish

古いファイルを削除して対応する。

ref.

github.com

fish 導入

導入理由

現状zsh使っているけど、困りもしてないし思い入れも無いので、単なる気分転換での導入です。

導入

# fish入れる
$ brew install fish fzf ghq peco

# 末尾に /usr/local/bin/fish を追加
$ sudo vi /etc/shells

# デフォルトシェルを fish に変更
$ chsh -s /usr/local/bin/fish


# fisherman入れる
$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher

#oh-my-fish入れる
$ curl -L https://get.oh-my.fish | fish
$ omf install bobthefish

# テーマ変更用にフォント入れる
$ git clone https://github.com/powerline/fonts.git
$ cd fonts/
$ ./install.sh
# iTermなどのターミナルの設定画面から直接フォント指定する

# ブラウザからテーマを変更
$ fish_config

pecoでの履歴呼び出し

プラグイン追加

fisher add oh-my-fish/plugin-peco

~/.config/fish/config.fish に設定を書く

function fish_user_key_bindings
  bind \cr 'peco_select_history (commandline -b)'
end

Ctrl + R で履歴を呼び出す。

z / pecoでのディレクトリ移動

fishermanからzをインストール

fisher add jethrokuan/z

~/.config/fish/config.fish に処理を書く

function peco_recentd
        z -l | peco | awk '{ print $2 }' | read recentd
        cd $recentd
        commandline -f repaint
end

バインドを追加

function fish_user_key_bindings
  bind \x1b peco_recentd
end

Ctrl + [ で移動履歴を呼び出す。