パラダイス

瀬川商店 第七回:CSS(Cinematic Studio Strings)の奏法をCC58で切り替える

2024.10.24

さて前回予告した通り今回は実際のスクリプトを紹介します。考え方としては、CSS(Cinematic Studio Strings)で”使用していない”鍵盤を使ってCC58の値をKontaktに送信して奏法の切り替えを行う、わけです。劇伴の作曲家をしている恐らく100%の人が88鍵のキーボードを使用しているでしょうからその前提で話を進めます。

今回のスクリプトの要になる部分にフォーカスしましょう。

  if ($MIDI_BYTE_1 = 33)
      message("Note A0 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 16)
      exit
    end if


前回のマニュアルを読むとCC58のバリュー16~20を受け取ると「Staccatissimo」に切り替わる、と書いてありますね?ですから「もしMIDIノートナンバー33つまりA0を受け取ったらMIDI_COMMAND_CC, 58をValue16を送信する」というスクリプトを書いてあげればよいのかなと。そして、どのKSがどこに割り当てているか毎回思い出せるほどの記憶力は持ち合わせていないので、ラベルとしてKSPのウィンドウ内にメモしておいた方が良いなと。

declare ui_label $label_1 (1, 1)

これと次がペアになってるわけですね。

set_text($label_1, "A-1 : Legato On”)

以下自分に必要な分だけ繰り返すと今日の記事の最後にあるようなスクリプトになるわけですね。これで久しぶりにCSSを起動させてもレガートのオンオフのKSどこだったかな?とスクリプトを見直す必要もなくなりますね。

CSSの他に同じメーカーからWoodwindsとBrassのシリーズがリリースされていますが、どちらもバランスの取れた良い音源だと思います。ただ今日紹介したスクリプトをそのまま転用はできません。それは各自スクリプトを書き換えて調整してください。

それから、Kontaktスクリプトをサードパーティーのテキストエディターで記述してKontakt内のエディターにコピペする時にたまに出るエラーで「”」のフォント違いで上手くいかない事があるんです。原因は理解できていないのですが、「”」が複数あるというの理由だと思います。そういう時は一度「”」を削除してKSPのエディター内でもう一度「”」を打つと正しく動作します。

以下実際のスクリプトです。

on init
  message("Script initialized")
  set_script_title("KSP for CSS")
  set_ui_height(0)

  declare ui_label $label_1 (1, 1)
  declare ui_label $label_2 (1, 1)
  declare ui_label $label_3 (1, 1)
  declare ui_label $label_4 (1, 1)
  declare ui_label $label_5 (1, 1)
  declare ui_label $label_6 (1, 1)
  declare ui_label $label_7 (1, 1)
  declare ui_label $label_8 (1, 1)
  declare ui_label $label_9 (1, 1)
  declare ui_label $label_10 (1,1)
  declare ui_label $label_11 (1,1)
  
  set_text($label_1, "A-1 : Legato On")
  set_text($label_2, "B-1 : Legato ff")
  set_text($label_3, "A#-1 : Pizz")
  set_text($label_4, "G#1 : Spicatto")
  set_text($label_5, "A1 : Staccatissimo")
  set_text($label_6, "A#1 : Staccato")
  set_text($label_7, "B1 :  Sfz")
  set_text($label_8, "D#6 : Con sord On")
  set_text($label_9, "E6 : Con sord Off")
  set_text($label_10, "F6 : Bartok Snap")
  set_text($label_11, "F#6 : Col Legno")
end on

on midi_in
  message("Received MIDI command: " & $MIDI_COMMAND)
  message("Received note: " & $MIDI_BYTE_1)
  
  if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 > 0)

    if ($MIDI_BYTE_1 = 32)
      message("Note G#0 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 11)
      exit
    end if
    
    if ($MIDI_BYTE_1 = 33)
      message("Note A0 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 16)
      exit
    end if

    if ($MIDI_BYTE_1 = 21)
      message("Note A-1 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 76)
      exit
    end if

	 if ($MIDI_BYTE_1 = 23)
      message("Note B-1 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 81)
      exit
    end if

	 if ($MIDI_BYTE_1 = 22)
      message("Note A#-1 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 31)
      exit
    end if
    
    if ($MIDI_BYTE_1 = 34)
      message("Note A#0 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 21)
      exit
    end if

	if ($MIDI_BYTE_1 = 35)
      message("Note B0 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 26)
      exit
    end if

	if ($MIDI_BYTE_1 = 101)
      message("Note F6 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 36)
      exit
    end if

	if ($MIDI_BYTE_1 = 102)
      message("Note F6 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 41)
      exit
    end if

	if ($MIDI_BYTE_1 = 99)
      message("Note D#6 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 86)
      exit
    end if

	if ($MIDI_BYTE_1 = 100)
      message("Note E6 received")
      ignore_midi
      set_midi($MIDI_CHANNEL, $MIDI_COMMAND_CC, 58, 91)
      exit
    end if

  end if
end on
瀬川英史(瀬川商店)
劇伴の作曲家やってます。Netflix「シティーハンター」アニメ「烏は主を選ばない」等。シンセは危険物取扱者の甲種レベルの知識あり(多分)。
記事内に掲載されている価格は 2024年10月24日 時点での価格となります
パラダイスの新着記事