Skip to content

Commit e15ed1f

Browse files
Merge branch 'develop'
2 parents 3399636 + b70bb25 commit e15ed1f

14 files changed

Lines changed: 3450 additions & 2 deletions

File tree

README.md

Lines changed: 221 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,221 @@
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+
[![GitHub Pages](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://cocotone.github.io/deno-juce-project-generator/)
6+
[![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD3-yellow.svg)](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/) を確認してください。

docs/_config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# GitHub Pages Configuration
2+
title: Deno JUCE Project Generator
3+
description: Generate JUCE audio plugin projects with a one-line Deno URL
4+
baseurl: "/deno-juce-project-generator"
5+
url: "https://cocotone.github.io"
6+
7+
# Exclude files from build
8+
exclude:
9+
- README.md
10+
- LICENSE
11+
- .gitignore

0 commit comments

Comments
 (0)