Waveform 14 - マクロ

Waveform 14 - マクロ

目次へ戻る

Waveform には、プログラム可能なショートカットだけでなく、本格的なマクロ・プログラミング環境が用意されています。複数のアクションを新しい形で組み合わせたキーボードショートカットを作成し、ワークフローを効率化できます。標準のキーボードショートカットでは要件を満たせない場合、独自のマクロを作成してキーボードショートカットに割り当てられます。

マクロは「キーボードマクロ」と考えがちですが、必ずしもキーボードショートカットに割り当てる必要はありません。メニューセクションの Run Script ボタンからいつでも実行できます。たまにしか使わないマクロはショートカットを覚えておく必要がないため、この方法が便利です。


スクリプトエディター(Script Editor)

スクリプトエディターを開くには、Settings タブに移動し、Keyboard Shortcuts ページを選択します。Keyboard Shortcuts ページの右下にある Show Script Editor を有効にすると、スクリプトエディターが開きます。

Script Editor

スクリプトエディター(The Script Editor)

スクリプトエディターとキーボードショートカット一覧を区切る線をドラッグすると、スクリプトエディターの高さを変更できます。スクリプトエディターは、マクロスクリプトを入力・編集するための基本的なテキストエディターです。


マクロの作成(Creating a Macro)

新しいマクロを作成するには、スクリプトエディターの Add a new macro をクリックします。これにより、キーボードショートカット一覧の Macros セクションの一番下に「Untitled Macro」という名前の新しいマクロが追加されます。

Adding a New Macro

新しいマクロの追加(Adding a New Macro)

新しいマクロを作成すると、名前は初期状態で「Untitled Macro」となり、選択された状態になります。そのまま入力を始めて、適切な名前を付けてください。

マクロの本体には、アクションのリストを入力してスクリプトを作成します。最も簡単な方法は、右クリックメニューを使ってマクロを組み立てることです(詳しくは後述します)。アクションはセミコロンで区切ります。


マクロの削除(Deleting a Macro)

組み込みのキーボードショートカットは削除できませんが、自分で作成したカスタムマクロは削除できます。削除するには、キーボードショートカット一覧で削除したいマクロを選択し、スクリプトエディターの Delete macro をクリックします。


マクロのプログラミング(Programming a Macro)

最も単純なマクロは、1 つのアクションで構成されます。スクリプトエディターを右クリックし、3 つのアクション群をたどって、利用可能な任意のアクションを選べます。使いたいアクションを見つけて選択すると、対応するコードがスクリプトに挿入されます。

Selecting Actions from the Right-click Menu

スクリプトエディターの右クリックメニューからアクションを選択(Selecting Actions from the Script Editor Right-click Menu)

  • Actions > Standard Shortcuts には、Keyboard Shortcuts ページに表示される組み込みのキーボードショートカットがすべて含まれます。
  • Actions > Basic Actions には、あらかじめショートカットとして割り当てられているとは限らない、利用可能なアクションが含まれます。
  • Actions > Advanced actions には、選択したオブジェクトを操作したり、画面上にメッセージを表示したりできるアクションが含まれます。Advanced actions は、より高度なスクリプトプログラミングのためのツールとして提供されています。

マクロの実行(Running a Macro)

マクロを実行する方法はいくつかあります。

  1. キーボードショートカットに割り当てる。マクロへのキーボードショートカットの割り当ては、組み込みショートカットとまったく同じ方法で行います。一覧でマクロを見つけ、右端の「+」をクリックして、割り当てたいキーの組み合わせを入力します。
  2. Edit タブの Menu セクションから Run Script > User Macros をクリックする。作成したカスタムマクロはすべて自動的にここに表示されます。実行したいものを選択します。

Running Macros using Run Script

Run Script > User Macros でマクロを実行(Running Macros using Run Script > User Macros)

  1. マクロをカスタムメニューに追加する。Keyboard Shortcuts ページの下部で Show Script Tree Editor を有効にします。次に、マクロ(または任意の組み込みアクション)をツリーエディターにドラッグします。ドラッグ&ドロップで並べ替えたり、グループを追加したり、グループ名を変更したりできます。カスタムメニューには、Edit のメニューから Run Script > Custom Menu でアクセスします。

The Script Tree Editor

スクリプトツリーエディター(The Script Tree Editor)


JavaScript プログラミング(Javascript Programming)

単純なアクションのリストを順番に作成するだけでなく、JavaScript の力を使ってマクロプログラミングをさらに高度なレベルへ引き上げられます。スクリプトエディターでは、JavaScript の構文を使ってループや条件を記述できます。スクリプトの各要素にはカラーコーディング(色分け)も適用されます。

Javascript Macro Example

JavaScript マクロの例(Javascript Macro Example)

Macro Actions dot Notation Syntax

マクロアクションの「ドット」記法(Macro Actions 'dot' Notation Syntax)


ホバー時のツールチップ(Hover Tooltip)

スクリプトエディターでアクションの上に 1〜2 秒カーソルを合わせると、そのアクションがどのようなパラメーターを取るかを説明するツールチップが表示されます。アクションが値を返す場合は、その構文も表示されます。これらのツールチップは、マクロをプログラミングする際の重要な情報を提供します。Waveform の開発者は、各アクションの動作について有益なヒントを与えるためにこの仕組みを用意しています。

Hover Over an Action for a Tooltip

アクションにカーソルを合わせるとツールチップが表示される(Hover Over an Action for a Tooltip)

上の例では、zoom アクションが 2 つの倍精度数値パラメーターを取ることがツールチップに示されています。1 つ目は x-proportion(垂直方向のズーム量)、2 つ目は y-proportion(水平方向のズーム量)です。


RTZ マクロの例(RTZ Macro Example)

Waveform には、既定では本当の意味での Return-to-Zero(RTZ、ゼロ位置への復帰)キーボードショートカットがありません。組み込みのコマンドは In-mark に到達するとまずそこで停止するため、本当に先頭(ゼロ)まで戻すには 2 回押す必要があります。しかし、この動作を 2 回実行して常にカーソルを Edit の先頭に戻すマクロを作成できます。

True Return-to-Zero Macro Example

真の Return-to-Zero マクロの例(True Return-to-Zero Macro Example)

たとえば、この RTZ マクロを Home キーに割り当てることができます。


クリップの結合マクロの例(Merge Clips Macro Example)

よく使う可能性があるもう 1 つの機能が Merge Clips(クリップの結合)です。通常は、トラック上で結合したい複数のクリップを選択し、プロパティから Render Clips > Merge the Selected Clips を選択して使用します。頻繁に行う場合は、これを 1 つのキーボードショートカット(たとえば Cmd + G / Ctrl + G)で実行できます。

Merge Clips Macro Assigned

クリップ結合マクロの割り当て(Merge Clips Macro Assigned)


マクロのインポートとエクスポート(Importing and Exporting Macros)

マクロは実際には単純なテキストにすぎません。スクリプトエディターに対して、テキストをそのままコピー&ペーストするだけで簡単に出し入れできます。さらに Waveform には、マクロスクリプトを .Waveformscript 拡張子の XML ファイルとしてインポート/エクスポートする専用ボタンも用意されています。

Script Input and Export Buttons

スクリプトの入力/書き出しボタン(Script Input and Export Buttons)


TSC コードサンプル(TSC Code Samples)

Waveform のエンジニアが、はじめの一歩に役立つマクロスクリプトのコードサンプルをいくつか提供しています。

// Rename Clips From Track
var tracks = Waveform.getSelectedEditElements ('track');

for (var i = 0; i < tracks.length; ++i)
{
   var track = tracks[i];
   var trackName = Waveform.getName (track);
   var clips = Waveform.getClipsFromTracks (track);

   for (var c = 0; c < clips.length; ++c)
   {
      var clipName = trackName + " " + (c + 1);
      Waveform.setName (clips[c], clipName);
   }
}
// Reset Tracks Solo/Mute
var tracks = Waveform.getEditElements ('track');
Waveform.setSolo (tracks, false);
Waveform.setSoloIsolate (tracks, false);
Waveform.setMute (tracks, false);
//Next Active Automation Parameter
var track = Waveform.getTrackFromSelectedObject();
Waveform.changeActiveAutomationParameter (track, 1);
// Insert Plugin with Preset
var track = Waveform.getTrackFromSelectedObject();
var plugin = Waveform.insertPlugin (track, "Massive", 0, "AudioUnit");
var preset = Waveform.getPresetFromLibrary ("Massive All Souls");
Waveform.setPluginPreset (plugin, preset);
// Jump to tab 2
var index = Waveform.getWindowTabIndex();
var delta = 2 - index;
Waveform.changeWindowTabIndex (delta);
// Rename Selected Tracks
var tracks = Waveform.getSelectedEditElements ('track');
Waveform.setName (tracks[0], 'Kick');
Waveform.setName (tracks[1], 'Snare');
Waveform.setName (tracks[2], 'Hats');
// etc.
// Save Selected Plugins as Preset
var plugins = Waveform.getSelectedEditElements ('plugin');
Waveform.saveObjectsAsPreset (plugins);

コードサンプル集(My Code Samples)

/* Park the In-Marker & Out-Markers
Parks the In-marker and Out-marker at Zero then Restores Cursor Position. I wrote this macro to help a KVR forum member find a quick way to hide the In-marker and Out-marker.
*/
var SavePosition = Waveform.getPosition ('cursor');
Waveform.moveTransportToStart();
Waveform.moveTransportToStart();
Waveform.markIn();
Waveform.markOut();
Waveform.setPosition ('cursor', SavePosition);
/* Search Plugins
 Opens the Browser to the Search tab, enables the Plugin searching while disabling searching for Presets and Loops.
 */
 Waveform.showSidePanel ('search'); // Opens Browser to the Search tab
 Waveform.enableSearchLibrary ('plugin', true);
 Waveform.enableSearchLibrary ('preset', false);
 Waveform.enableSearchLibrary ('loop', false);
 Waveform.setSearchPanelText ('');  // loads blank text so you can start typing the search term right away
// Rename selected clips to 'Drums'
var clips = Waveform.getSelectedEditElements ('clip');
for (var i = 0; i < clips.length; ++i)
    Waveform.setName (clips[i], 'Drums');
// Rename selected tracks to 'Drums'
var tracks = Waveform.getSelectedEditElements ('track');
for (var i = 0; i < tracks.length; ++i)
    Waveform.setName (tracks[i], 'Drums');

おわりに(Moving On)

ここで紹介したのは、かなり単純な例です。Waveform ユーザーは、Waveform のマクロプログラミングが持つ強力な機能を、まだ探求し始めたばかりです。


目次へ戻る


参照元情報:Waveform User Manual
https://tracktion.github.io/waveform_manual/macros/

    • Related Articles

    • Waveform 14 - 新機能

      この章は、Waveform の特に注目すべき機能の簡易インデックスであり、それぞれを詳しく解説する章へのリンクを掲載しています。久しぶりに Waveform に戻ってきた方や、何が変わったのかを手早く知りたい方は、ここから始めてください。 ? 関連動画(Tracktion 公式・英語):Waveform 14 | Overview 主要な新機能 マルチチャンネルオーディオ Waveform ...
    • Waveform 14 - クイックスタート

      この章は、インストール直後の状態から最初の録音、そして完成したオーディオファイルまでを最短で進めるためのものです。あえて簡潔にまとめてあり、各ステップでは始めるのに必要十分な内容だけを示し、詳細を知りたいときには該当する章へのリンクを用意しています。Waveform を初めて使う方は上から順に読んでください。久しぶりに戻ってきた方は、見出しをざっと眺め、必要な箇所へ飛んでください。 Waveform は macOS、Windows、Linux で動作する 64 ...
    • Waveform 14 - アクションパネル

      アクションパネル(Actions panel)は、現在選択している対象に対して実行できる操作を一か所で確認・実行できる場所です。トラック、クリップ、プラグイン、パラメーターを選択すると、それに該当する操作が表示されるようパネルが更新されます。メニューを探し回らずにコマンドへ素早くアクセスできる方法であり、お気に入りの操作をマークして Quick Actions メニューに表示させる場所でもあります。 パネルの仕組み ...
    • Waveform 14 - 目次(ユーザーマニュアル)

      Tracktion「Waveform 14 ユーザーマニュアル」の目次です。各章は順次公開し、公開済みの章はタイトルからリンクします。「(順次公開)」と表示されている章は現在準備中です。 目次 表紙・著作権(Front Matter) 本書について(About This Book) はじめに(Introduction) クイックスタート(Quick Start) 新機能(What's New) デモプロジェクトとテンプレート(Demo Projects and Templates) ...
    • Waveform 14 - プラグインラック(Plugin Racks)

      プラグインラック(Plugin Racks)を使うと、複数のプラグインを 1 つのコンテナにまとめ、好きなように配線できます。エフェクトを並列で動かしたい、共有のリバーブバスを作りたい、サイドチェイン処理を設定したい、マルチチャンネルのエフェクトユニットを作りたい—そんなときに使うのがラックです。 ラックとは? トラック上の単純な直列のエフェクトチェーンに限定される代わりに、ラックではプラグインを直列・並列、またはその任意の組み合わせで接続できる 2D ...