投稿

5月, 2015の投稿を表示しています

フェスに出演しました 3

イメージ
アイヌ文化フェスティバル2021に出演しました。 備忘録として。 前日仕込み とはいっても音響は自前の機材をほとんど使わないので、使いそうなモノ(ワイヤレス関連と卓まわり特にPC、インターフェイス関連)だけよりわけて荷揚げです。 スピーカー、卓、PCCなど場所を指定して置いてもらいました。 奥のモニター。いつもの場所にスタンドで立ててもらいました。 メイン&前モニター。 前モニターは場所が厳しくてこの位置に。同軸なので軸外の音の変化がすくないのが良い。 メインはラインアレーなんで、客席では明瞭度が高い。舞台上では、低音の回り込みは少なく客席からの跳ね返りは大きく感じられる。 卓廻り。手前がCL3。奥がCL5。 手元全貌。 PCはいつも通りの右側に戻しました。台本は箱馬を重ねた上にのっています。 緑のトレーは3Dプリンターで作ったもの。RIVAGEに合わせて作ったので、CLには収まりが悪く、ちょっと斜めになっています。 写ってませんがヘッドホンは自前のを引っ張り出してきました。 TBマイクは借りた58です。 案の定、照明、映像に時間がかかり、隙間で音出しして、あとはレイヤーやユーザーデファインドキーの設定に時間を費しました。 カスタムレイヤーの設定 CLのいやらしいところはMIX/MTXのレイヤーがインプットの側のブロックに出せないところ。 こんな風にNanoPadをCentraLogic上に置いちゃうと、MIXにアクセスしにくくなってしまう。 最初はNanoPadをどけながらいじっていたんだけど、かなり面倒。 カスタムレイヤーがみっつ設定できるので、A2に出力用のカスタムを設定したらとたんに便利になりました。LS9的な使い勝手が復活です。 ユーザーデファインドキーの設定 これはLS9にも設定してるんだけど、comp1/EQ/Home画面のbookmark、TB On/Off、TB画面を呼びだせるようにしておくと便利です。 何だか調子が悪い?..本番中に止まる 他団体のリハがお先で進んでいくんだけど、何だか調子が悪い感じ?繋がらないチャンネルがあったり、出音が変だったり… 曰くDanteを目一杯使っていて、かつDanteとMADI変換してるところがあって上手くいってないのではないか、あとCL5自体もおかしい、とのこと。まぢか。困る

Pythonでlambdaをいじる。俺switch使ってみたバカだなもっと単純だ編

実際に今書きかけのRasPi用のpythonスクリプトに使ってみました。 いいね!見違えるほどスッキリ! でも、やっぱり条件が先がいいし、無駄なものがいっぱいついてる... ながめているうちに気がついた。 もっと単純でよくね? クイックソートの例でいうと前回はこうでした。 box=lambda *x:x unbox=lambda x:x[-1] do=box switch=unbox qs=(lambda xs : (lambda le = [x for x in xs[1:] if x<=xs[0] ] , gt = [x for x in xs[1:] if x>xs[0] ] : switch( do( [] ) if xs == [] else False or do( qs( le ) + [ xs[0] ] + qs( gt ) ) ) )() ) そもそもelse False orいらない。 式1 if 条件1 else 式2 if 条件2 else ...最後の式 と続けても問題ないみたい。 box=lambda *x:x unbox=lambda x:x[-1] do=box switch=unbox qs=(lambda xs : (lambda le = [x for x in xs[1:] if x<=xs[0] ] , gt = [x for x in xs[1:] if x>xs[0] ] : switch( do( [] ) if xs == [] else do( qs( le ) + [ xs[0] ] + qs( gt ) ) ) )() ) でも、これがいいんじゃね? box=lambda *x:x unbox=lambda x:x[-1] do=box

Pythonでlambdaをいじる。ちょっと闇なswitch編

イメージ
結局やりたいことは、 スイッチの古い状態と新しい状態とプレイヤーの状態から次の動作を決めて出力し、 新しい状態を古い状態として保存する、 の繰り返しです。 ~if~else~でも構築できるんだけど、条件が多いと書きにくいし、見てもよくわからないものになってしまいそう。 スイッチ的なものがあればなあ。ってそもそもPythonにはswitchないし... そこをかんがえてみました。 前回のクイックソートを例に。 通常のdef関数定義 def qs( xs ) : le = [x for x in xs[1:] if x<=xs[0] ] gt = [x for x in xs[1:] if x>xs[0] ] if xs == []: return [] else: return qs( le ) + [ xs[0] ] + qs( gt ) lambda式で関数定義 qs=(lambda xs : (lambda le = [x for x in xs[1:] if x<=xs[0] ] , gt = [x for x in xs[1:] if x>xs[0] ] : [] if xs == [] else qs( le ) + [ xs[0] ] + qs( gt ) )() ) これをスイッチ風にします。 まず準備。 box=lambda *x:x #タプルに入れる unbox=lambda x:x[-1] #最後の要素を返す do=box #良さげな名前にする switch=unbox #同上 これを使います。するとこんな風になります。 qs=(lambda xs : (lambda le = [x for x in xs[1:] if x<=xs[0] ] , gt = [x for x in xs[1:] if x>xs[0] ] : switch

Pythonでlambdaをいじってみた。まだ闇じゃない編

イメージ
CDとかメモリープレイヤーとか1台でやっている小さな公演チームがあるのですが、機器トラブルが多いのです。 それで、Raspberry pi2を使って、そういうところで使えるような再生機を作れないかとあれこれ試し中です。 Volumioを使って、USBオーディオI/F使って、LCD付けて、スイッチ付けて、でできそうです。 実際の再生はmpdにやらせて、コントロールはmpcでします。 スイッチとmpcを関連付けるのとLCD表示は、Pythonで書かなければいけませんが、ネットで探すといろいろあるようです。自分でいちから書く必要はなさそうです。 ただし、舞台で必要な動作はホームユースのAV機器とはだいぶ違うので、そこは自分で考えなくてはいけません。 そういうわけで久しぶりにPython(2.7です)をさわりました。 最近はすごいH本を読んでいたせいですっかり頭が関数方面にもっていかれてて、先人のオブジェクト指向なちゃんとしたコードがうまく頭に入ってきません。 そのうちなぜかlambda式が可愛く思えてきました。 lambda式でどこまでいけるか?試したところをメモっておきます。 lambdaはダメな子?それとも... lambdaはPython的な意味での文が使えない。つまり 代入ができない if:~elif:~else:とかforループとかwhileとかが使えない printできない(python2.7ではね) という制限がある。大きな関数を書くようにはできてないようです。 でもこれって?関数好きにはたまらない仕様なんじゃないの? まず、代入から。 ブロックの中での代入はできませんが、デフォルト引数の仕組みを使って、名前に式を代入(束縛)しておいてブロック内で使うことはできるようです。 単純な例。ちなみに()かっこでくくると改行は自由です。そこも気に入った。 func=(lambda x: #一番外側。     (lambda y=x+1: #内側一つ目。外側の引数を参照         (lambda z=x+y: #内側二つ目。外側の引数を参照             x+y+z #式本体。         )() #内側二つ目のlam