目次
Kontaktの既存ライブラリにLibraryをつける作業
この記事を受け、筆者のKontaktライブラリを格納するディレクトリには同じライブラリでありながら「Library」接尾辞を持たないディレクトリと持つディレクトリが混在する状況となった。
ここで、重複しているライブラリを発見した場合、接尾辞を持たないライブラリのディレクトリ名をLibrary側に寄せる作業を行う。
注意
- この作業を行っても、再度Kontaktでライブラリが閲覧できるようになるわけではないので注意してください。依然として、ライブラリの再インストールは行う必要があるかと思います。
- スクリプトの実行は自己責任でお願いします
古いライブラリのディレクトリ名の接尾辞を設定
いったん、末尾にLibraryがあるものを確認して、変更対象を確認する。
cd C:/mnt2/#Composing/libraries/NI_Contents
for dir in *Library; do realpath "$dir"; done
C:/mnt2/#Composing/libraries/NI_Contents/Abbey Road 60s Drummer Library
C:/mnt2/#Composing/libraries/NI_Contents/Analog Dreams Library
C:/mnt2/#Composing/libraries/NI_Contents/Battery 4 Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Butch Vig Drums Library
C:/mnt2/#Composing/libraries/NI_Contents/Cloud Supply Library
C:/mnt2/#Composing/libraries/NI_Contents/Drum Lab Library
C:/mnt2/#Composing/libraries/NI_Contents/Ethereal Earth Library
C:/mnt2/#Composing/libraries/NI_Contents/Expansions Selection Library
C:/mnt2/#Composing/libraries/NI_Contents/Hybrid Keys Library
C:/mnt2/#Composing/libraries/NI_Contents/Irish Harp Library
C:/mnt2/#Composing/libraries/NI_Contents/Jacob Collier Audience Choir Library
C:/mnt2/#Composing/libraries/NI_Contents/Kinetic Metal Library
C:/mnt2/#Composing/libraries/NI_Contents/Kinetic Treats Library
C:/mnt2/#Composing/libraries/NI_Contents/Kontakt Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Lo-Fi Glow Library
C:/mnt2/#Composing/libraries/NI_Contents/Massive X Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Mechanix Library
C:/mnt2/#Composing/libraries/NI_Contents/Modular Icons Library
C:/mnt2/#Composing/libraries/NI_Contents/Moebius Library
C:/mnt2/#Composing/libraries/NI_Contents/Noire Library
C:/mnt2/#Composing/libraries/NI_Contents/Reaktor Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Retro Machines Mk2 Library
C:/mnt2/#Composing/libraries/NI_Contents/Scarbee Mark I Library
C:/mnt2/#Composing/libraries/NI_Contents/Session Guitarist - Electric Sunburst Library
C:/mnt2/#Composing/libraries/NI_Contents/Session Guitarist - Picked Acoustic Library
C:/mnt2/#Composing/libraries/NI_Contents/Studio Drummer Library
C:/mnt2/#Composing/libraries/NI_Contents/Twenty Five Library
出力したパスをメモ
出力したパスをメモしておきます。以下は対象として不都合だったので、除外しておきます。
ライブラリ自体がそういう名前系
C:/mnt2/#Composing/libraries/NI_Contents/Battery 4 Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Jacob Collier Audience Choir Library
C:/mnt2/#Composing/libraries/NI_Contents/Kontakt Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Massive X Factory Library
C:/mnt2/#Composing/libraries/NI_Contents/Reaktor Factory Library
重複してないのが最初から分かっていたのでOK系
C:/mnt2/#Composing/libraries/NI_Contents/Session Guitarist - Electric Sunburst Library
C:/mnt2/#Composing/libraries/NI_Contents/Session Guitarist - Picked Acoustic Library
接尾辞がLibraryのディレクトリを退避させる
↑を除外したディレクトリを、退避用ディレクトリに移動します。引数のパスは、メモしておいたパスをこのCyberChefレシピで加工し生成しました。
echoを外すと本実行になります。
cd "C:/mnt2/#Composing/libraries/NI_Contents" &&
mkdir -p ../NI_Contents.bak &&
for dir in "C:/mnt2/#Composing/libraries/NI_Contents/Abbey Road 60s Drummer Library" "C:/mnt2/#Composing/libraries/NI_Contents/Analog Dreams Library" "C:/mnt2/#Composing/libraries/NI_Contents/Butch Vig Drums Library" "C:/mnt2/#Composing/libraries/NI_Contents/Cloud Supply Library" "C:/mnt2/#Composing/libraries/NI_Contents/Drum Lab Library" "C:/mnt2/#Composing/libraries/NI_Contents/Ethereal Earth Library" "C:/mnt2/#Composing/libraries/NI_Contents/Expansions Selection Library" "C:/mnt2/#Composing/libraries/NI_Contents/Hybrid Keys Library" "C:/mnt2/#Composing/libraries/NI_Contents/Irish Harp Library" "C:/mnt2/#Composing/libraries/NI_Contents/Kinetic Metal Library" "C:/mnt2/#Composing/libraries/NI_Contents/Kinetic Treats Library" "C:/mnt2/#Composing/libraries/NI_Contents/Lo-Fi Glow Library" "C:/mnt2/#Composing/libraries/NI_Contents/Mechanix Library" "C:/mnt2/#Composing/libraries/NI_Contents/Modular Icons Library" "C:/mnt2/#Composing/libraries/NI_Contents/Moebius Library" "C:/mnt2/#Composing/libraries/NI_Contents/Noire Library" "C:/mnt2/#Composing/libraries/NI_Contents/Retro Machines Mk2 Library" "C:/mnt2/#Composing/libraries/NI_Contents/Scarbee Mark I Library" "C:/mnt2/#Composing/libraries/NI_Contents/Studio Drummer Library" "C:/mnt2/#Composing/libraries/NI_Contents/Twenty Five Library"; do echo mv "$dir" "../NI_Contents.bak/$dir"; done
既存ライブラリにLibrary接尾辞を追加
既存ライブラリにLibrary接尾辞を追加します。echo を外して実行。
for dir in "C:/mnt2/#Composing/libraries/NI_Contents/Abbey Road 60s Drummer" "C:/mnt2/#Composing/libraries/NI_Contents/Analog Dreams" "C:/mnt2/#Composing/libraries/NI_Contents/Butch Vig Drums" "C:/mnt2/#Composing/libraries/NI_Contents/Cloud Supply" "C:/mnt2/#Composing/libraries/NI_Contents/Drum Lab" "C:/mnt2/#Composing/libraries/NI_Contents/Ethereal Earth" "C:/mnt2/#Composing/libraries/NI_Contents/Expansions Selection" "C:/mnt2/#Composing/libraries/NI_Contents/Hybrid Keys" "C:/mnt2/#Composing/libraries/NI_Contents/Irish Harp" "C:/mnt2/#Composing/libraries/NI_Contents/Kinetic Metal" "C:/mnt2/#Composing/libraries/NI_Contents/Kinetic Treats" "C:/mnt2/#Composing/libraries/NI_Contents/Lo-Fi Glow" "C:/mnt2/#Composing/libraries/NI_Contents/Mechanix" "C:/mnt2/#Composing/libraries/NI_Contents/Modular Icons" "C:/mnt2/#Composing/libraries/NI_Contents/Moebius" "C:/mnt2/#Composing/libraries/NI_Contents/Noire" "C:/mnt2/#Composing/libraries/NI_Contents/Retro Machines Mk2" "C:/mnt2/#Composing/libraries/NI_Contents/Scarbee Mark I" "C:/mnt2/#Composing/libraries/NI_Contents/Studio Drummer" "C:/mnt2/#Composing/libraries/NI_Contents/Twenty Five"; do echo mv "$dir" "$dir Library"; done
ここで、mv対象のディレクトリがないというエラーが出た場合には、そのライブラリはライブラリ自体は同じでも新旧で重複しているディレクトリはなく、新しいほうにすでに依存していることを意味します。先ほどLibraryを接尾辞に持っているディレクトリを退避用ディレクトリに対比させましたが、当該ディレクトリはもともとのディレクトリに再度戻しておきます。
レジストリの変更
指定ディレクトリに対し、ContentDirがLibraryで終わっていないやつを検出して補正してくれるPythonスクリプトを管理者権限で実行。スクリプトはここから利用できます。
https://github.com/froggie3/migrate_ni_library
python script.py --dry-run 'C:\mnt2\#Composing\libraries\NI_Contents\Abbey Road 60s Drummer' 'C:\mnt2\#Composing\libraries\NI_Contents\Analog Dreams' 'C:\mnt2\#Composing\libraries\NI_Contents\Butch Vig Drums' 'C:\mnt2\#Composing\libraries\NI_Contents\Cloud Supply' 'C:\mnt2\#Composing\libraries\NI_Contents\Drum Lab' 'C:\mnt2\#Composing\libraries\NI_Contents\Ethereal Earth' 'C:\mnt2\#Composing\libraries\NI_Contents\Expansions Selection' 'C:\mnt2\#Composing\libraries\NI_Contents\Hybrid Keys' 'C:\mnt2\#Composing\libraries\NI_Contents\Irish Harp' 'C:\mnt2\#Composing\libraries\NI_Contents\Kinetic Metal' 'C:\mnt2\#Composing\libraries\NI_Contents\Kinetic Treats' 'C:\mnt2\#Composing\libraries\NI_Contents\Lo-Fi Glow' 'C:\mnt2\#Composing\libraries\NI_Contents\Mechanix' 'C:\mnt2\#Composing\libraries\NI_Contents\Modular Icons' 'C:\mnt2\#Composing\libraries\NI_Contents\Moebius' 'C:\mnt2\#Composing\libraries\NI_Contents\Noire' 'C:\mnt2\#Composing\libraries\NI_Contents\Retro Machines Mk2' 'C:\mnt2\#Composing\libraries\NI_Contents\Scarbee Mark I' 'C:\mnt2\#Composing\libraries\NI_Contents\Studio Drummer' 'C:\mnt2\#Composing\libraries\NI_Contents\Twenty Five'
必要だと思って今回作成したスクリプトですが、出力がなかったので特にケアする必要はなかったです。
ふりかえり
ライブラリのサムネイルが古い感じになっていたのでたぶん成功。一方で、「Libraries」に表示されるライブラリ自体はどこか別の場所で管理している模様。これの特定ができていないのでどうにかしたい。
もしそれがだめならライブラリの再インストールかな…。

コメント
コメントはありません。