2018年11月23日金曜日

デジタルミキサーによるCUEシステム再考まとめ

2018年10月21日日曜日

ZOOM LiveTrak L-12 の5系統モニターは CUE ボックス代わりになる?

4年前に「バンド演奏のモニター問題」という投稿をしましたが、去年、ZOOM LiveTrak L-12 というデジタルミキサーが出ていることにいまさら気が付きました。これがなんと5系統のヘッドホンモニター出力を持ち、ミキサーのシーンの扱いのようにそれぞれのモニター出力のミキシングができるという、いわゆる CUE ボックスのような機能を持つものらしいのです。

藤本健の “DTMステーション”
こんなデジミキを待っていた!ZOOMのコンパクトな12chミキサー、LiveTrak L-12が万能で超便利!

モニター機能については軽めに触れられています。

DiGiRECO
ZOOM / LiveTrak L-12

モニター機能について多めに書かれています。メトロノーム機能も各モニターごとに音量設定できるとか。

Sound & Recording Magazine
「ZOOM LiveTrak L-12」製品レビュー:マルチトラック録音とオーディオI/O機能を持つ12chミキサー

「モニター音に内蔵エフェクトはかからない」という気になる情報が…ボーカルさんはリバーブがかかった音をモニターしたいはず…と思ったら「LIVETRAK L-12ファームウェア・アップデート」にて「エフェクト音をモニターアウトに返す機能」を追加、とのこと。これなら問題なさそう。

あとはミキサーからどうケーブルを伸ばしてみんなのヘッドホン、イヤホンにつなげるか、ですね。リハーサルスタジオならなんとかなるか…

このまま録音する場合は生ドラムの録音が問題になりますが、これも今は YAMAHA EAD10 という素晴らしいものがあるので、リハーサルスタジオの方でこういうモニターできるミキサーと EAD10 はレンタル器材としてリクエストしたい!

12CHデジタルミキサーで、USB 経由と SD カードにマルチ録音ができて、5人までの CUE ボックスができて6万円弱ならかなりお得。用途的には Roland HS-5 とガチンコかもしれません。いつの間にか JamHub は生産終了でフェードアウトしてるし…

これでなんとかみんな自分の音が聞こえるようにしてバンドの精度を上げていきたい…

2018年8月24日金曜日

canActivate で interval() は使えない

Angular6 で AuthGuard とか Resolve とか使い始めて RxJS6 にも慣れてきて面白くなってきて、AuthGuard の canActivate で timeout() 使ったらサーバへの問い合わせを定期的に行ってエラーが返ってきたときに画面遷移を行うってのができるのでは?と思ってググってもなかなか情報が見つからないので、とりあえずこんなふうに書いてみました。
  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
    return interval(10000)
      .pipe(
        mergeMap(() => {
          return this.httpClient.get('/isAuthorized')
            .pipe(
              map(response => {
                return response.authorized;
              })
            );
        })
      );
トランスパイルは通りました。が、一回しか HTTP アクセスが発生しません。
デバッガで canActivate() を出たあとを追ってみたところ…

pipe(first()) \(^o^)/オワタ

https://github.com/angular/angular/blob/master/packages/router/src/pre_activation.ts#L248
  private runCanActivate(future: ActivatedRouteSnapshot): Observable<boolean> {
    const canActivate = future.routeConfig ? future.routeConfig.canActivate : null;
    if (!canActivate || canActivate.length === 0) return of (true);
    const obs = from(canActivate).pipe(map((c: any) => {
      const guard = this.getToken(c, future);
      let observable: Observable<boolean>;
      if (guard.canActivate) {
        observable = wrapIntoObservable(guard.canActivate(future, this.future));
      } else {
        observable = wrapIntoObservable(guard(future, this.future));
      }
      return observable.pipe(first());
    }));
    return andObservables(obs);
  }
timeout() の Observable を返しても最初の1回目の Observable<boolean> しか使わない、ということですね。
まあ、Guard は Route の許可をするかどうかの位置にあるものなので、一度表示した Route を拒否することは想定していない実装ということではないかと思います。
おとなしくコンポーネント内で interval() 回して画面遷移させるようにします…
そうそう、interval() の unsubscribe() も忘れずに…

2018年6月7日木曜日

Workshy Get It On コード分析(メインのみ)




Spotify でかかってきてかなり気に入ったのでコードをとってみました。
すると、この柔らかくスムースな響きからは想像していなかったんですが、b9 b13 とかオルタードテンションが使われているコード進行のようです。

key=B で # が5個付くやつです。
1行目: 通常のコード
2行目: 度数表記
3行目: 度数でオンコードをテンションに直したコード
F#dim7 on G#  |  G#7 on C  |  C#m9  |  EM7 on F#  |  F#7 on C#  |  BM9
Vdim7 on VI  |  VI7 on I#  |  IIm9  |  IVM7 on V  |  V7 on II  |  IM9
VI7(b9 b13)  |  VI7 on I#  |  IIm9  |  V7sus4(9 13)  |  V7 on II  |  IM9
基本は VI II V I の循環で、VI -> II、V -> I のときにアプローチのパッシングコードがある感じです。後半の
IVM7 on V  |  V7 on II  |  IM9
はよく使うものだと思いますが、前半の
VI7(b9 b13)  |  VI7 on I#  |  IIm9
はこの曲の特徴の根幹のような感じです。VI7 の b9 は I に b13 は V に解決しつつベースは VI7 の3度に移動して柔らかさを維持しているようです。

コードもさることながら、メロディもちょっとコード分析を惑わすような内容でした。
なので、動画の方では1コーラスのメロディを入れています。

3小節目の VI7 on I# のところでコードトーンは III(E#) なのに、メロディは E# から E に上がって半音でぶつかっています。スケールトーンではあるんですが、長くいるのでコード的に変わってしまっている気もします。

5小節目の Vdim7 on VI のところでコードトーンは I#(B#=C) ですが、思いっきり C# を踏んでます。C# C B と半音で下がるメロディですが、こちらもスケールトーンではあるんですが、長くいるのでコード的に変わってしまっている気がします。

もしかしたらぶつかるときだけバッキングで調整をしているかもしれませんが、ぶつかっていてもそのまま気にしていない気もします。

こういうときどう考えればいいんですかね…聴感上気にならないレベルであれば OK というのは作る上ではいいとして、突き詰めた場合、プロの仕事などでは一般的には避けられているのか、それともなんらかの説明の付け方があって OK なのか…

この辺悩み続けている気がします。

2018年5月15日火曜日

7b5(13) コードのボイシング

思いついた曲のモチーフのコード進行が想定したイメージにたどり着けないまま数日経っていたんですが、なんとかたどり着けたので、今回考えたことのメモをしておきます。

Im11 IV7b5 II7(b9) V7(b9 b13)

でかなり近い所まで来ていたんですが、メロディは Im11 の 11th から IV7b5 の 13th で終わっているので、IV7b5 に 13th を入れようとしたのが苦労の始まり…
そのまま混ぜると 13th と 7th が半音でぶつかって聴感上もたぶん NG でした。なので 7th を抜いて IV6b5 としてみるとイメージから遠のいてしまう…これだと聴いた感じ #VIIb5 on IV で流れ的にも合っていません…

ルート自体変えて他のコードにしてみたり、メロディ自体を変えてみたり色々やってはみたものの、どうも元の状態の方が良かったのでもとに戻って調べなおしたり、いろいろ悩んだ結果、やっと見つけました。

何ということはない、単純に 13th を追加して IV7b5(13) で、ボイシングで 7th を 13th の1オクターブ下にするというものでした。要はボイシングの問題だったようです。

キー Dm での IV7b5, IV6b5, IV7b5(13) の聴き比べ動画です。メロディとコード進行のしっくり感では圧倒的に IV6b5 より IV7b5(13) ではないかと思います。7th はやはり必用で、13th と m7th は M7 の音程にした方がいい、と言うかしないとダメなコードに聴こえる、ということのようです。勉強になりました。ボイシング大事です。


最近このようなオルタードテンションを使ったコード進行に挑戦中で、その中で出てきたメロディ自体がこういうコードを示唆しているという事は、こういうコード進行が血肉になってきている気がして嬉しいです。

2018年4月28日土曜日

マイナーキーのダイアトニックコードのややこしさ

‪おととい思いついた曲がマイナーキーのダイアトニックコードのややこしさを教えてくれる感じでマイナーキーの経験不足を痛感しました…

ググったらこんなサイトが有りました。
マイナーのダイアトニック・コードとは?/初心者集まれ!指板図くんのギター・コード講座 第31回

要はナチュラルかハーモニックかメロディックかと言うアレですが、行ったり来たりするので聴いた感じ普通なのにややこしい…‬特に 9th の音が…
わかりやすいように Am キーに直すと、曲のメインのコード進行はこんな感じです。

| FM9 | FM9 | Em9 | Dsus4(9) D(9) |
| FM9 | FM9 | Em9 | Am9sus4 F#m7-5 |



そもそもこの進行が Am キーなのかどうかが自明ではないと思いますが、VI V I の逆進行で Am7 に解決しようとしているので、Am キーで多分間違いないと思います。動画の方では終止をわかりやすくするように2巡目の最後を Am7 にしてあります。

この循環ですが何がややこしいのかと言うと、F の音が Fm9 ではナチュラル、Em9, D ではシャープしているという点です。

上のサイトの話を勘案すると、

ナチュラルマイナースケール: FM9(9th の G がナチュラルなのでハーモニックではない)
メロディックマイナースケール: D(9)

Em9 はナチュラルマイナースケールになるんですが、問題は 9th の F# です。ナチュラルマイナースケールでは  F はシャープしないので、なんなのコレという状況です。

あまり今回のテーマとは関係ないですが F#m7-5 は FM9 に対する裏コード的なものかと思います。スケールとしては Em9 と同じでなんなのコレですが、A/F# という形でよく使われるコードで装飾的なコードなので色々あり得るしスルーします。

もしかして D メジャーキーに転調しちゃっているとか?と思ったら D(9) の時にスケール的に 7th が m7 の C なので D メジャーキーになっているわけでもなさそうです。
どう考えればいいんでしょうか…

と、ここで気が付いたのがドリアンモード。Aドリアンモードですねコレ。あまりに自然なので転調感なさすぎですが、微妙にドリアンモードの雰囲気を持ち込んでいると考えるとしっくり来そうです。

ご意見募集中です。

2016年11月1日火曜日

macOS Siera にアップデート後、ローカル Web サーバの UserDir にアクセスできない問題

おそらく macOS Siera にアップデートしてからだと思うけど、http://localhost/~user/ にアクセスできなくなっていることに気がついた。
/etc/apache2/httpd.conf で userdir_module が無効になっていたのでコメントアウトを解除。userdir で検索するといいです。

LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

後もう一つ、/etc/apache2/users/ 以下の設定ファイルを読み込まない状態になっていたようなので /etc/apache2/httpd.conf の最後に以下の行を追加してアクセスできるようになった。

Include /etc/apache2/users/*.conf

設定後の再起動はこのコマンドです。

sudo apachectl restart

以前の設定ファイルはここに残っているようなので、前の設定を見たいときはこちらで。

/etc/apache2/httpd.conf~previous