diff --git a/docs/manual/common/contact_installation_guiconfig_en.md b/docs/manual/common/contact_installation_guiconfig_en.md index d488b0a9..cd388cea 100644 --- a/docs/manual/common/contact_installation_guiconfig_en.md +++ b/docs/manual/common/contact_installation_guiconfig_en.md @@ -5,7 +5,7 @@ You can fund the development through [paypal.me/ryukau](https://www.paypal.com/p ## Installation ### Plugin -Place `*.vst3` directory to: +Move `*.vst3` directory to: - `/Program Files/Common Files/VST3/` for Windows. - `$HOME/.vst3/` for Linux. @@ -16,19 +16,22 @@ DAW may provides additional VST3 directory. For more information, please refer t ### Presets **Notice**: Some plugins don't have presets provided by Uhhyou Plugins. -To install presets, follow the steps below. +Presets are included in the plugin package linked at the top of this page. To install presets, follow the steps below. -1. Download presets from a link at the top of this page. -2. Extract `*Presets.zip`. `*` here is [wildcard character](https://en.wikipedia.org/wiki/Wildcard_character). -3. Place unzipped directory into an OS specific preset directory (see below). +1. Download plugin from a link at the top of this page. +2. Extract downloaded zip file. +3. Open `presets` directory placed in extracted package. +4. Move `Uhhyou` directory into an OS specific preset directory (see below). Below is a list of preset directories for each OS. -- Windows : `/Users/$USERNAME/Documents/VST3 Presets/Uhhyou` -- Linux : `$HOME/.vst3/presets/Uhhyou` -- macOS : `/Users/$USERNAME/Library/Audio/Presets/Uhhyou` +- Windows : `/Users/$USERNAME/Documents/VST3 Presets` +- Linux : `$HOME/.vst3/presets` +- macOS : `/Users/$USERNAME/Library/Audio/Presets` -Preset directory name must be the same as the plugin. Make `Uhhyou` directory if it does not exist. +Preset directory name must be the same as the plugin. If preset directory does not exist, create it. + +- [Preset Locations - VST 3 Developer Portal](https://steinbergmedia.github.io/vst3_dev_portal/pages/Technical+Documentation/Locations+Format/Preset+Locations.html) ### Windows Specific If DAW doesn't recognize the plugin, try installing C++ redistributable (`vc_redist.x64.exe`). Installer can be found in the link below. diff --git a/docs/manual/common/contact_installation_guiconfig_ja.md b/docs/manual/common/contact_installation_guiconfig_ja.md index 017edfcc..c448ba1a 100644 --- a/docs/manual/common/contact_installation_guiconfig_ja.md +++ b/docs/manual/common/contact_installation_guiconfig_ja.md @@ -14,21 +14,23 @@ DAW によっては上記とは別に VST3 をインストールできるディレクトリを提供していることがあります。詳しくは利用している DAW のマニュアルを参照してください。 ### プリセット -**注意**: プラグインによっては Uhhyou Plugins が提供するプリセットがないものがあります。 +**注意**: プリセットの無いプラグインもあります。 -以下はプリセットのインストール手順です。 +プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。 -1. ページの最上部のリンクからプリセットをダウンロード。 -2. ダウンロードした `*Presets.zip` を解凍。 -3. 解凍したディレクトリを OS ごとに決められたディレクトリに配置。 +1. ページの最上部のリンクからプラグインをダウンロード。 +2. ダウンロードした zip ファイルを解凍。 +3. `presets` ディレクトリ内の `Uhhyou` ディレクトリを OS ごとに決められたディレクトリに配置。 以下は OS ごとのプリセットの配置先の一覧です。 -- Windows : `/Users/$USERNAME/Documents/VST3 Presets/Uhhyou` -- Linux : `$HOME/.vst3/presets/Uhhyou` -- macOS : `/Users/$USERNAME/Library/Audio/Presets/Uhhyou` +- Windows : `/Users/$USERNAME/Documents/VST3 Presets` +- Linux : `$HOME/.vst3/presets` +- macOS : `/Users/$USERNAME/Library/Audio/Presets` -プリセットディレクトリの名前はプラグインと同じである必要があります。 `Uhhyou` ディレクトリが無いときは作成してください。 +プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。 + +- [Preset Locations - VST 3 Developer Portal](https://steinbergmedia.github.io/vst3_dev_portal/pages/Technical+Documentation/Locations+Format/Preset+Locations.html) ### Windows プラグインが DAW に認識されないときは C++ redistributable をインストールしてみてください。インストーラは次のリンクからダウンロードできます。ファイル名は `vc_redist.x64.exe` です。 diff --git a/package/pack.py b/package/pack.py index 640bd999..ec7975d0 100644 --- a/package/pack.py +++ b/package/pack.py @@ -3,6 +3,7 @@ import shutil from pathlib import Path + def copy_resource(src, dst, error_msg): dst.mkdir(parents=True, exist_ok=True) if src.exists(): @@ -10,12 +11,14 @@ def copy_resource(src, dst, error_msg): else: print(error_msg) + def check_file(file_path): """Check existence of a file.""" if not file_path.is_file(): print(f"{file_path} does not exist") exit(1) + def create_full_archive_from_github_actions_artifact(version): with open("manual.json", "r", encoding="utf-8") as fi: manual_dict = json.load(fi) @@ -43,8 +46,9 @@ def create_full_archive_from_github_actions_artifact(version): for vst3_dir in pack_dir.glob("*.vst3"): plugin_name = vst3_dir.stem - manual_name = (plugin_name - if not plugin_name in manual_dict else manual_dict[plugin_name]) + manual_name = ( + plugin_name if not plugin_name in manual_dict else manual_dict[plugin_name] + ) # Do not make package if a plugin doesn't have manual. if not Path(f"../docs/manual/{manual_name}").exists(): @@ -62,13 +66,14 @@ def create_full_archive_from_github_actions_artifact(version): check_file(vst3_dir / Path(f"Contents/x86_64-linux/{plugin_name}.so")) check_file(vst3_dir / Path(f"Contents/MacOS/{plugin_name}")) - packed_path_str = shutil.make_archive( - str(vst3_dir.parent / Path(f"{plugin_name}_{version[plugin_name]}")), - "zip", - pack_dir, - vst3_dir.name, + create_zip_archive( + vst3_dir.parent / Path(f"{plugin_name}_{version[plugin_name]}"), + plugin_name, + vst3_dir, + Path(f"../presets/Uhhyou/{plugin_name}"), ) + def create_macos_archive_from_github_actions_artifact(version): """ Ad-hoc method. Merge this to `create_full_archive_from_github_actions_artifact` @@ -96,8 +101,9 @@ def create_macos_archive_from_github_actions_artifact(version): for vst3_dir in pack_dir.glob("*.vst3"): plugin_name = vst3_dir.stem - manual_name = (plugin_name - if not plugin_name in manual_dict else manual_dict[plugin_name]) + manual_name = ( + plugin_name if not plugin_name in manual_dict else manual_dict[plugin_name] + ) # Do not make package if a plugin doesn't have manual. if not Path(f"../docs/manual/{manual_name}").exists(): @@ -107,20 +113,44 @@ def create_macos_archive_from_github_actions_artifact(version): # Ensuring that no binary is missing. check_file(vst3_dir / Path(f"Contents/MacOS/{plugin_name}")) - packed_path_str = shutil.make_archive( - str(vst3_dir.parent / Path(f"{plugin_name}_{version[plugin_name]}_macOS")), - "zip", - pack_dir, - vst3_dir.name, + create_zip_archive( + vst3_dir.parent / Path(f"{plugin_name}_{version[plugin_name]}_macOS"), + plugin_name, + vst3_dir, + Path(f"../presets/Uhhyou/{plugin_name}"), ) + +def create_zip_archive(archive_dir, plugin_name, vst3_dir, presets_dir): + archive_dir.mkdir(parents=True, exist_ok=True) + + archive_vst3_dir = archive_dir / vst3_dir.name + if archive_vst3_dir.exists(): + shutil.rmtree(archive_vst3_dir) + shutil.move(vst3_dir, archive_dir) + + presets_dir = Path(f"../presets/Uhhyou/{plugin_name}") + if presets_dir.exists(): + target_dir = Path(*presets_dir.parts[1:]) # Remove relative part. + shutil.copytree(presets_dir, archive_dir / target_dir, dirs_exist_ok=True) + + packed_path_str = shutil.make_archive( + archive_dir, + "zip", + archive_dir, + ) + + def get_version(): - re_major_version = re.compile(r"^#define MAJOR_VERSION_INT ([0-9]+)", - flags=re.MULTILINE | re.DOTALL) - re_minor_version = re.compile(r"^#define SUB_VERSION_INT ([0-9]+)", - flags=re.MULTILINE | re.DOTALL) - re_patch_version = re.compile(r"^#define RELEASE_NUMBER_INT ([0-9]+)", - flags=re.MULTILINE | re.DOTALL) + re_major_version = re.compile( + r"^#define MAJOR_VERSION_INT ([0-9]+)", flags=re.MULTILINE | re.DOTALL + ) + re_minor_version = re.compile( + r"^#define SUB_VERSION_INT ([0-9]+)", flags=re.MULTILINE | re.DOTALL + ) + re_patch_version = re.compile( + r"^#define RELEASE_NUMBER_INT ([0-9]+)", flags=re.MULTILINE | re.DOTALL + ) with open("../CMakeLists.txt", "r", encoding="utf-8") as fi: top_level_cmake_text = fi.read() @@ -143,6 +173,7 @@ def get_version(): version[plugin_name] = f"{major}.{minor}.{patch}" return version + if __name__ == "__main__": version = get_version() create_macos_archive_from_github_actions_artifact(version) diff --git a/presets/pack.py b/presets/pack.py new file mode 100644 index 00000000..0113889f --- /dev/null +++ b/presets/pack.py @@ -0,0 +1,20 @@ +import shutil +from pathlib import Path + +# `print` are added for debugging GitHub Actions. +print("presets/pack.py: Packing presets.") + +if __name__ == "__main__": + pack_dir = Path("pack") + pack_dir.mkdir(parents=True, exist_ok=True) + + for preset_dir in Path("Uhhyou").glob("*"): + if not preset_dir.is_dir(): + continue + packed_path_str = shutil.make_archive( + str(pack_dir / Path(f"{preset_dir.name}_Presets")), + "zip", + ".", + preset_dir, + ) + print(packed_path_str) diff --git a/presets/pack.sh b/presets/pack.sh deleted file mode 100755 index d7afc55d..00000000 --- a/presets/pack.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -for preset_dir in Uhhyou/*; do - echo "$preset_dir" - zip -r "$preset_dir"Presets.zip "$preset_dir" -done