見出し画像

2024/1/6 poi3@ForestLimit ライブ振り返り

poi3というイベントにライブ出演した。
今回は一人でAudioVisualをやってみる、ということにチャレンジした。

ライブの記録映像

客席側からの視点は自分では見られないものなのでそれを録画しておくべきか、とも思ったが自分で振り返るための記録映像なら手元を撮っとくべきかと思い直した。
こっちの方が会場に来てくれたお客さんからは見えない視点だから価値があるような気もする。
いや、2台用意できるなら両方撮っといた方が良いか。

振り返り

超シンプルな構成図

普段VJをやる時はOSC受けの初期化コード以外は基本的に持ち込まず、ゼロから書いていくようにしている。
音楽のみのライブの際も、せいぜいトラックごとの初期音色だけ決めておいてシーケンスの打ち込み等は即興でやるようにしている。
ただ、今回は一人でAudioとVisualをやらないといけなくて手が足らなくなるので、幾らかは準備することにした。

TouchOSCの使い方はいつもVJやる時と同じものを使っている。
過去記事にファイルもあるので今回は説明を割愛。

大体経験則で音の方にかかりきりになって手が離せなくなりがちなので、hydraである程度組んでおくことにした。
昨年やったexperimental live(GW大晦日にやった)では音も映像も何も準備せず始めるというのを試みてみたが、やっぱりやってみたからこそ手が足らないのが分かったってのはある。
普段は表現に関わるコードを持ち込むことを良しとしていないが、今回は30分という尺も決まっているので特例的に許可した。
事前のコード状態をcommitし忘れたので、最終状態のコードだけ貼っておく。

{

setResolution(1024*2,1024*2)
bpm=135
msg.setPort(8888)

tgl0 = 0
tgl1 = 0
tgl2 = 0
tgl3 = 0
mom0 = 0
mom1 = 0
mom2 = 0
mom3 = 0
fad0 = 0
fad1 = 0
fad2 = 0
fad3 = 0

msg.on('/tgl0', (args) => tgl0 = args[0])
msg.on('/tgl1', (args) => tgl1 = args[0])
msg.on('/tgl2', (args) => tgl2 = args[0])
msg.on('/tgl3', (args) => tgl3 = args[0])
msg.on('/mom0', (args) => mom0 = args[0])
msg.on('/mom1', (args) => mom1 = args[0])
msg.on('/mom2', (args) => mom2 = args[0])
msg.on('/mom3', (args) => mom3 = args[0])
msg.on('/fad0', (args) => fad0 = args[0])
msg.on('/fad1', (args) => fad1 = args[0])
msg.on('/fad2', (args) => fad2 = args[0])
msg.on('/fad3', (args) => fad3 = args[0])

a.show()
a.setScale(1)
a.setBins(5)
a.setSmooth(.01)
a.setCutoff(4)

}

osc(60, .1, .2)
.modulate(voronoi([4,6].fast(.2)).kaleid([4,6,2].fast(1./8)), ()=> tgl2 * fad2)
.posterize([8,16].ease('sin').fast(.2))
.scale(()=>a.fft[0] * .26 + .5)
.kaleid([2,1,2,3])
.rotate(Math.PI/8)
.modulateScale(noise(4).kaleid(2), ()=>a.fft[0]*4)
.kaleid([6,12,6].fast(2))
.diff(shape([3,2].fast(.1),.2,.05).repeat([1,2],[1,2]).rotate(Math.PI).modulateScale(noise(4,.5).kaleid(2), .5))
.color(1,1,()=>a.fft[0] * .3 + .7)
.diff(src(o0).posterize([2,4,8].fast(1./6)).saturate(1.05).hue(.13).scale([.5,.5,.5,1.05].fast(.5)).mult(solid(), ()=>1-tgl1))
.posterize([1,1,1,1,1,1,0].fit(99999,1.3).fast(16))
.out(o0)

speed=.25

src(o0)
.luma(.5, .0)
.thresh(.5, .0)
.mult(
  src(o0)
.luma(.5, .0)
.thresh(.5, .0)
.scale(1.15)
)
.color(1,.01,.1)
.hue(()=>time*18)
.out(o1)

shape(3, .3, .0)
.mult(shape(3, .28, .0).invert())
.repeat(2,4)
.kaleid([5,3].smooth().fast(1./8))
.rotate(0,.1)
.kaleid(4)
.repeat(2,2)
.scrollY(0,.1)
.kaleid([6,3])
.color(1,.1,.1)
.hue(()=>time*8)
.out(o2)

src(o0)
.saturate(10.25)
.layer(src(o1))
.mult(src(o2).thresh(.01,0).invert().brightness(-.1), ()=>tgl2)
.add(src(o0).scale(1.25), ()=>fad1)
.add(src(o2), ()=>tgl2)
.rotate([.3,-.1,3,.4,.2].ease('sin').fast(.2))
.mult(noise(8,888).pixelate(1,1).thresh(.25), ()=> tgl0 * .9)
.blend(src(o3).rotate(.01).scale(.999).brightness(-.001), ()=> fad0 * .7 + Math.round(fad0) * .3)
.out(o3)

render(o3)

多少何行か書き足したりパラメータをいじった以外は、そこまで大きくは変えてない。
幾つか大きく見栄えが変わる行だけコメントアウトしたり、トグルスイッチで絵的な変化を与えるようにしてある。
もう少しスイッチだけで抜き差しできるような処理をたくさん仕込んでおく方が良かったかもな。

また普段はあまり使わないAudioReactiveを取り入れて映像に変化を与えるようにしてみた。
ただ4つ打ちでほとんどずっと定期的に音がなっている状況だと、あまりAudioReactiveである必然性は薄いような気もした。
まぁ普通にシーケンス組むよりはノイズモジュレーションされた値の動き方になるとは思うので、どういう表現部分に使うかは探求する余地が十二分にあるかな。
あとAudioReactiveは実際に現場で調整しないと、実際どれぐらいの入力になるのか読めないな、とも思った。
マイク入力じゃなくてLaptopに引き込んで、それを使う方が妥当だと思う。

音に関してはRoland SH-4dのみでのマシンライブ。
一応各パートの音色だけ決め打ちにして、更に一小節のシーケンスだけ打ち込んでおくところまで用意した。
ドラムキットで刻むところから始めて、少しずつパートのボリュームを上げながら入れていく。
30分尺での展開自体はそこまで意識して練習してないこともあり、個人的にはやや単調になってしまったところはあるかなという印象。
本当は32step, 64stepに長さを拡張しながらリードを鳴らしたり、ということをやるつもりだったが完全に忘れていた。
ラスト付近はリバーブとディレイでドローンっぽい持続音のみに持っていくというのをやりたかったので、それが出来たのは前回のマシンライブからの進歩かな。

総括

マシンライブのスキルをもうちょっと磨く必要がある。
30尺での展開とかを意識しながら即興やれるようにするか、あらかじめ展開込みで複数パターンを用意しておくか。
いや、でもそれはそれでパターン間の繋ぎ方が難しいかもな。
結構音色自体を変化させたりしちゃうし。
あるいはSH-4dのみにこだわらずAbletonLiveに引き込んで、1パートだけ30尺で変化するような音を入れても良いのかもしれない。
それを全体進行の要にすると何かと便利かもしれん。

映像に関してももう一捻り欲しい感じかな。
本当に今出してる音に合わせたものを出力しているのか、とか考えるとやや疑問だし。
あと安易にkaleidしちゃうのもな、と思うものの収まりの良さでついやっちゃうんだよなぁ。
音楽側をかなり省力化しないことには、あまり凝ったコードを書いたりする時間的余地はなさそう。
逆に考えるとコーディングに固執せず、簡単に操作できるようなインターフェース込みでがっつり準備してしまった方が良いのかも。

究極的には音と映像を同じ入力装置から操作するべきかなという気はしている。
それがコーディングなら尚良い。
SonicPiのv5ではhydraがサポートされるようなので、非常に楽しみ。
後はTidalCyclesもやりたいがAppleSiliconでうまく環境構築できてないんだよなぁ。

ま、2024年初ライブとしてはそんなに悪くない滑り出しってとこかな。
今年も研鑽を積んでいくぞ!


この記事が気に入ったらサポートをしてみませんか?