見出し画像

MacでKomplete Kontrolのv3とv2をうまいこと切り替える

先日Komplete Kontrol(KK)のソフトがv3にバージョンアップされたのだが、外部音源のVST2のホスティング周りが変になってしまった。特に旧プロジェクトファイルでKKの2.9.6以外の過去バージョンを利用していた場合にこのバグが起こるので、昔の曲を参照するときにどの音色を呼び出したのか分からなくなるため相当困っていた。

旧プロジェクトファイルを開く必要になった時だけインストールし直しすればよいのだが、KKはVSTのScanが時間かかるのでそれを毎度構築し直しは現実的ではない。

※ 関連記事

https://support.native-instruments.com/hc/ja/articles/14394517675677


そこで、コマンドを使ってv3とv2を行き来できるようにすることにした。

※ 2023/12/14にサポート問い合わせ中


Terminal(shell script)コマンド

やっていることはシンプルで、ファイルを一時的に入れ替えるだけ。

🚨 注意:PCが壊れる危険性があるので、この手のコマンドを打ったことあって中身が理解できる人向け。TerminalのCUIを利用して、v3とv2のファイルの中身の切替を行う。

処理用の関数準備(まだ何も実行されない)

冒頭の🔥の部分を置き換えること。

USER_NAME="yu" # 🔥 実際のユーザ名に置き換える 🔥

PRODUCT_NAME="Komplete Kontrol"
BACKUP_DIR="${HOME}/NativeInstrumentsBackup" # バックアップ用のディレクトリ

# ファイルとディレクトリのリスト
# https://support.native-instruments.com/hc/ja/articles/210291865
declare -a FILES_AND_DIRS=(
    # Application Files
    "/Applications/Native Instruments/${PRODUCT_NAME}"
    "/Library/Preferences/com.native-instruments.${PRODUCT_NAME}.plist"
    # Plug-in FIles
    "/Library/Audio/Plug-ins/Components/${PRODUCT_NAME}.component"
    "/Library/Audio/Plug-ins/VST/${PRODUCT_NAME}.vst"
    "/Library/Audio/Plug-ins/VST3/${PRODUCT_NAME}.vst3"
    "/Library/Application Support/Digidesign/Plug-ins/${PRODUCT_NAME}.dpm"
    "/Library/Application Support/Avid/Audio/Plug-ins/${PRODUCT_NAME}.aaxplugin"
    # App-specific Data and Support Files
    "/Library/Application Support/Native Instruments/${PRODUCT_NAME}"
    "/Library/Application Support/Native Instruments/Service Center/${PRODUCT_NAME}.xml"
    "/Library/Application Support/Native Instruments/Hardware"
    # Preferences Files (User Library)
    "/Users/${USER_NAME}/Library/Preferences/com.native-instruments.${PRODUCT_NAME}.plist"
    "/Users/${USER_NAME}/Library/Application Support/Native Instruments/${PRODUCT_NAME}"
    "/Users/${USER_NAME}/Documents/Native Instruments/${PRODUCT_NAME}"
)

# バックアップ関数
backup() {
    VERSION=$1
    if [ -z "$VERSION" ]; then
        echo "No version specified. Usage: backup <version>"
        exit 1
    fi

    BACKUP_PATH="$BACKUP_DIR/$VERSION"

    # バックアップ先のディレクトリが既に存在するかチェック
    if [ -d "$BACKUP_PATH" ]; then
        echo "Backup directory for version $VERSION already exists. Aborting backup."
        exit 1
    fi

    echo "Backing up version $VERSION to $BACKUP_PATH..."

    for item in "${FILES_AND_DIRS[@]}"; do
        if [ -e "$item" ]; then
            # 必要なディレクトリを作成
            mkdir -p "$BACKUP_PATH/$(dirname "$item")"
            # ファイルをコピー
            rsync -avh --progress "$item" "$BACKUP_PATH/$(dirname "$item")"
        fi
    done
    echo "✅ Backup of version $VERSION completed."
}

# アンインストール関数
uninstall() {
    echo "Uninstalling current version..."
    for item in "${FILES_AND_DIRS[@]}"; do
        if [ -e "$item" ]; then
            sudo rm -rf "$item"
        fi
    done
    echo "✅ Uninstall completed."
}

# リストア関数
restore() {
    VERSION=$1
    if [ -z "$VERSION" ]; then
        echo "No version specified. Usage: restore <version>"
        exit 1
    fi

    BACKUP_PATH="$BACKUP_DIR/$VERSION"
    if [ ! -d "$BACKUP_PATH" ]; then
        echo "Backup for version $VERSION does not exist."
        exit 1
    fi

    echo "Restoring version $VERSION from $BACKUP_PATH..."

    for item in "${FILES_AND_DIRS[@]}"; do
        if [ -e "$BACKUP_PATH/$item" ]; then
            # 宛先ディレクトリのパスを修正
            DEST_PATH="$(dirname "$item")"
            sudo rsync -avh --progress "$BACKUP_PATH/$item" "$DEST_PATH/"
        fi
    done
    echo "✅ Restore of version $VERSION completed."
}

バックアップ処理+アンインストール処理

今入っているのがv3前提

backup v3.1.0
uninstall

v2.9.6のインストール+バックアップ処理

v2.9.6のdmgを取得し、インストール
https://support.minet.jp/portal/ja/kb/articles/komplete-kontrol-2-9-6

backup v2.9.6

これで両者の保存ができたので準備完了となる。

v3とv2を切替する

sudo権限を利用しているので、途中でパスワードを求められたら入力すること

v3.1.0に切替する

uninstall && restore v3.1.0

v2.9.6に切替する

uninstall && restore v2.9.6


新たなScan等が発生した場合は当該バックアップディレクトリの 「v2.9.6」などを消して、再度backupする。 

いいなと思ったら応援しよう!