|
1 | | -# deno-juce-project-generator |
2 | | -JUCE project generator with Deno and TypeScript. |
| 1 | +# Deno JUCE Project Generator |
| 2 | + |
| 3 | +Generate JUCE audio plugin projects with a single Deno URL command. |
| 4 | + |
| 5 | +[](https://cocotone.github.io/deno-juce-project-generator/) |
| 6 | +[](https://opensource.org/license/bsd-3-clause) |
| 7 | + |
| 8 | +## Motivation |
| 9 | + |
| 10 | +Audio plugin development with JUCE traditionally requires several setup steps: downloading JUCE, configuring CMake, setting up project structures, and writing boilerplate code. This can be a significant barrier for beginners who want to start learning plugin development. |
| 11 | + |
| 12 | +**This project aims to lower that barrier.** |
| 13 | + |
| 14 | +With a single command, you can generate a complete, ready-to-build JUCE audio plugin project. No manual setup, no configuration headaches - just run one command and start coding your plugin immediately. |
| 15 | + |
| 16 | +Our goal is to make audio plugin development more accessible to everyone, from students learning DSP to experienced developers prototyping new ideas. |
| 17 | + |
| 18 | +## JUCE License Notice |
| 19 | + |
| 20 | +**Important:** [JUCE](https://juce.com/) is a commercial/open-source framework owned by Raw Material Software Limited. |
| 21 | + |
| 22 | +When using this generator, you must comply with JUCE's licensing terms: |
| 23 | + |
| 24 | +- **Starter/Educational use**: JUCE can be used for free under the [JUCE Starter license](https://juce.com/legal/juce-8-licence/) |
| 25 | +- **Commercial use**: Requires a commercial license from JUCE |
| 26 | +- **Open Source**: Available under AGPLv3 for open-source projects |
| 27 | + |
| 28 | +Please review the [JUCE License](https://juce.com/legal/juce-8-licence/) before distributing any plugins created with this generator. |
| 29 | + |
| 30 | +This generator clones JUCE from [https://github.com/juce-framework/JUCE](https://github.com/juce-framework/JUCE) during project generation. The JUCE framework itself is not included in this repository. |
| 31 | + |
| 32 | +## Quick Start |
| 33 | + |
| 34 | +### Prerequisites |
| 35 | + |
| 36 | +- [Deno](https://deno.land/) v1.40+ |
| 37 | +- [CMake](https://cmake.org/) 3.22+ |
| 38 | +- [Git](https://git-scm.com/) |
| 39 | +- C++ Compiler: |
| 40 | + - Windows: Visual Studio 2022 |
| 41 | + - macOS: Xcode Command Line Tools |
| 42 | + - Linux: GCC 8+ or Clang 8+ |
| 43 | + |
| 44 | +### Generate a Plugin Project |
| 45 | + |
| 46 | +```bash |
| 47 | +deno run --allow-read --allow-write --allow-run --allow-net --allow-env \ |
| 48 | + https://raw.githubusercontent.com/cocotone/deno-juce-project-generator/main/generator/generate.ts \ |
| 49 | + --name "MySynth" \ |
| 50 | + --author "Your Name" \ |
| 51 | + --output ./my-synth \ |
| 52 | + --with-git |
| 53 | +``` |
| 54 | + |
| 55 | +Or with short flags: |
| 56 | + |
| 57 | +```bash |
| 58 | +deno run -A \ |
| 59 | + https://raw.githubusercontent.com/cocotone/deno-juce-project-generator/main/generator/generate.ts \ |
| 60 | + -n "MySynth" -a "Your Name" -o ./my-synth --with-git |
| 61 | +``` |
| 62 | + |
| 63 | +### Build and Run |
| 64 | + |
| 65 | +```bash |
| 66 | +cd my-synth |
| 67 | +deno task build # Build in Release mode |
| 68 | +deno task run # Run the Standalone app |
| 69 | +``` |
| 70 | + |
| 71 | +## Command Options |
| 72 | + |
| 73 | +| Option | Short | Default | Description | |
| 74 | +|--------|-------|---------|-------------| |
| 75 | +| `--name` | `-n` | `MyPlugin` | Plugin name | |
| 76 | +| `--author` | `-a` | `Your Name` | Author/Company name | |
| 77 | +| `--version` | `-v` | `0.0.1` | Plugin version | |
| 78 | +| `--output` | `-o` | (plugin name) | Output directory | |
| 79 | +| `--manufacturer-code` | | `Manu` | 4-char manufacturer code | |
| 80 | +| `--plugin-code` | | `Plug` | 4-char plugin code | |
| 81 | +| `--juce-tag` | | `master` | JUCE git tag/branch | |
| 82 | +| `--with-git` | | `false` | Initialize git repository | |
| 83 | +| `--help` | `-h` | | Show help | |
| 84 | + |
| 85 | +## Generated Project Structure |
| 86 | + |
| 87 | +``` |
| 88 | +<plugin-name>/ |
| 89 | +├── CMakeLists.txt # CMake configuration |
| 90 | +├── deno.json # Deno tasks |
| 91 | +├── build.ts # Build script |
| 92 | +├── build.config.ts # Build configuration |
| 93 | +├── cmake-file-api.ts # CMake File API integration |
| 94 | +├── cmake-types.ts # TypeScript types |
| 95 | +├── .gitignore |
| 96 | +├── External/ |
| 97 | +│ └── JUCE/ # JUCE framework (auto-cloned) |
| 98 | +└── Source/ |
| 99 | + ├── PluginProcessor.h |
| 100 | + ├── PluginProcessor.cpp |
| 101 | + ├── PluginEditor.h |
| 102 | + └── PluginEditor.cpp |
| 103 | +``` |
| 104 | + |
| 105 | +## Available Build Tasks |
| 106 | + |
| 107 | +| Task | Description | |
| 108 | +|------|-------------| |
| 109 | +| `deno task build` | Build in Release mode | |
| 110 | +| `deno task build:debug` | Build in Debug mode | |
| 111 | +| `deno task clean` | Clean build directory | |
| 112 | +| `deno task rebuild` | Clean and rebuild | |
| 113 | +| `deno task run` | Build and run Standalone | |
| 114 | +| `deno task run:debug` | Build and run Standalone (Debug) | |
| 115 | +| `deno task format` | Format TypeScript files | |
| 116 | +| `deno task lint` | Lint TypeScript files | |
| 117 | + |
| 118 | +## Generated Plugin Formats |
| 119 | + |
| 120 | +- **VST3** - Windows, macOS, Linux |
| 121 | +- **AU (Audio Unit)** - macOS only |
| 122 | +- **Standalone** - All platforms |
| 123 | + |
| 124 | +## Specifying JUCE Version |
| 125 | + |
| 126 | +By default, the generator clones the `master` branch. To use a specific version: |
| 127 | + |
| 128 | +```bash |
| 129 | +deno run -A \ |
| 130 | + https://raw.githubusercontent.com/cocotone/deno-juce-project-generator/main/generator/generate.ts \ |
| 131 | + --name "MyPlugin" \ |
| 132 | + --juce-tag "7.0.9" |
| 133 | +``` |
| 134 | + |
| 135 | +## Documentation |
| 136 | + |
| 137 | +Full documentation is available at: https://cocotone.github.io/deno-juce-project-generator/ |
| 138 | + |
| 139 | +## Technologies |
| 140 | + |
| 141 | +- [JUCE](https://juce.com/) - Cross-platform C++ framework for audio applications |
| 142 | +- [Deno](https://deno.land/) - Secure TypeScript/JavaScript runtime |
| 143 | +- [dax](https://jsr.io/@david/dax) - Cross-platform shell tools for Deno |
| 144 | +- [CMake](https://cmake.org/) - Cross-platform build system |
| 145 | + |
| 146 | +## License |
| 147 | + |
| 148 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 149 | + |
| 150 | +**Note:** The JUCE framework has its own licensing terms. Please review the [JUCE License](https://juce.com/legal/juce-8-licence/) for your use case. |
| 151 | + |
| 152 | +--- |
| 153 | + |
| 154 | +# Deno JUCE Project Generator (日本語) |
| 155 | + |
| 156 | +Deno URLコマンド一つでJUCEオーディオプラグインプロジェクトを生成します。 |
| 157 | + |
| 158 | +## モチベーション |
| 159 | + |
| 160 | +JUCEを使ったオーディオプラグイン開発には、従来いくつかのセットアップ手順が必要でした:JUCEのダウンロード、CMakeの設定、プロジェクト構造の作成、ボイラープレートコードの記述など。これらは、プラグイン開発を学び始めたい初心者にとって大きな障壁となっていました。 |
| 161 | + |
| 162 | +**このプロジェクトは、その障壁を下げることを目指しています。** |
| 163 | + |
| 164 | +たった一つのコマンドで、ビルド可能な完全なJUCEオーディオプラグインプロジェクトを生成できます。コードを書き始めるまでのセットアップに掛かる時間を短縮し、コマンドを実行するだけですぐにプラグインのコーディングを始められます。 |
| 165 | + |
| 166 | +私たちの目標は、DSPを学ぶ学生から新しいアイデアをプロトタイピングする経験豊富な開発者まで、すべての人にオーディオプラグイン開発をより身近なものにすることです。 |
| 167 | + |
| 168 | +## JUCEライセンスに関する注意 |
| 169 | + |
| 170 | +**重要:** [JUCE](https://juce.com/) は Raw Material Software Limited が所有する商用/オープンソースフレームワークです。 |
| 171 | + |
| 172 | +このジェネレータを使用する際は、JUCEのライセンス条項を遵守する必要があります: |
| 173 | + |
| 174 | +- **個人/教育目的**: [JUCE Starter license](https://juce.com/legal/juce-8-licence/) の下で無料で使用可能 |
| 175 | +- **商用利用**: JUCEの商用ライセンスが必要 |
| 176 | +- **オープンソース**: オープンソースプロジェクト向けにAGPLv3で利用可能 |
| 177 | + |
| 178 | +このジェネレータで作成したプラグインを配布する前に、[JUCEライセンス](https://juce.com/legal/juce-8-licence/) を確認してください。 |
| 179 | + |
| 180 | +このジェネレータはプロジェクト生成時に [https://github.com/juce-framework/JUCE](https://github.com/juce-framework/JUCE) からJUCEをクローンします。JUCEフレームワーク自体はこのリポジトリには含まれていません。 |
| 181 | + |
| 182 | +## クイックスタート |
| 183 | + |
| 184 | +### 前提条件 |
| 185 | + |
| 186 | +- [Deno](https://deno.land/) v1.40以上 |
| 187 | +- [CMake](https://cmake.org/) 3.22以上 |
| 188 | +- [Git](https://git-scm.com/) |
| 189 | +- C++コンパイラ: |
| 190 | + - Windows: Visual Studio 2022 |
| 191 | + - macOS: Xcode Command Line Tools |
| 192 | + - Linux: GCC 8+ または Clang 8+ |
| 193 | + |
| 194 | +### プラグインプロジェクトを生成 |
| 195 | + |
| 196 | +```bash |
| 197 | +deno run --allow-read --allow-write --allow-run --allow-net --allow-env \ |
| 198 | + https://raw.githubusercontent.com/cocotone/deno-juce-project-generator/main/generator/generate.ts \ |
| 199 | + --name "MySynth" \ |
| 200 | + --author "Your Name" \ |
| 201 | + --output ./my-synth \ |
| 202 | + --with-git |
| 203 | +``` |
| 204 | + |
| 205 | +### ビルドと実行 |
| 206 | + |
| 207 | +```bash |
| 208 | +cd my-synth |
| 209 | +deno task build # Releaseモードでビルド |
| 210 | +deno task run # Standaloneアプリを実行 |
| 211 | +``` |
| 212 | + |
| 213 | +## ドキュメント |
| 214 | + |
| 215 | +完全なドキュメントはこちら: https://cocotone.github.io/deno-juce-project-generator/ |
| 216 | + |
| 217 | +## ライセンス |
| 218 | + |
| 219 | +このプロジェクトはMITライセンスの下で公開されています。詳細は [LICENSE](LICENSE) ファイルを参照してください。 |
| 220 | + |
| 221 | +**注意:** JUCEフレームワークには独自のライセンス条項があります。ご利用のケースに応じて [JUCEライセンス](https://juce.com/legal/juce-8-licence/) を確認してください。 |
0 commit comments