https://github.com/livetrack-x/directpipe
Real-time VST2/VST3 host for Windows Plugin chain processing, external control (hotkeys, MIDI, Stream Deck, WebSocket, HTTP API), fast preset switching
https://github.com/livetrack-x/directpipe
audio juce midi real-time-audio stream-deck streaming vst vst-host vst2 vst3 websocket windows
Last synced: 3 months ago
JSON representation
Real-time VST2/VST3 host for Windows Plugin chain processing, external control (hotkeys, MIDI, Stream Deck, WebSocket, HTTP API), fast preset switching
- Host: GitHub
- URL: https://github.com/livetrack-x/directpipe
- Owner: LiveTrack-X
- License: gpl-3.0
- Created: 2026-02-24T10:16:24.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-06T10:36:07.000Z (3 months ago)
- Last Synced: 2026-03-06T12:06:03.867Z (3 months ago)
- Topics: audio, juce, midi, real-time-audio, stream-deck, streaming, vst, vst-host, vst2, vst3, websocket, windows
- Language: C++
- Homepage:
- Size: 39.7 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
๐ Quick Start ยท User Guide ยท FAQ ยท ๐ฌ Contact
## ๋ค์ด๋ก๋ / Download
- **Latest (์ต์ )**: [v4.0.4 ๋ค์ด๋ก๋](https://github.com/LiveTrack-X/DirectPipe/releases/latest) โ ํฌ๋ก์ค ํ๋ซํผ / Cross-platform (Windows stable, macOS beta, Linux experimental)
> **์ฐธ๊ณ **: Windows๋ ์์ (Stable), macOS๋ ๋ฒ ํ, Linux๋ ์คํ์ ์
๋๋ค. macOS/Linux ๋น๋๋ ์ค๊ธฐ๊ธฐ ํ
์คํธ๊ฐ ์ ํ์ ์
๋๋ค.
> **Note**: Windows is stable, macOS is beta, Linux is experimental. macOS/Linux builds have limited real-hardware testing.
DirectPipe is a modern lightweight VST host for applying studio-quality effects to your microphone.
**์คํธ๋ฆฌ๋จธ, ํ์บ์คํฐ, ๊ฒ์ด๋จธ, ๋ณด์ด์ค์ฑ ์ฌ์ฉ์๋ฅผ ์ํ** ํฌ๋ก์ค ํ๋ซํผ ์ค์๊ฐ ๋ง์ดํฌ ํ๋ก์ธ์.
USB ๋ง์ดํฌ์ ๋
ธ์ด์ฆ ์ ๊ฑฐ, EQ, ์ปดํ๋ ์ ๋ฑ VST ํ๋ฌ๊ทธ์ธ์ ๊ฑธ์ด ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๊ณ , Discord ยท Zoom ยท OBS ๋ฑ์ ๊นจ๋ํ ์์ฑ์ ๋ฐ๋ก ์ ๋ฌํ๋ค. **VST ํ๋ฌ๊ทธ์ธ์ ๋ชจ๋ฅด์
๋ [Auto] ๋ฒํผ ํ๋๋ก AI ๋
ธ์ด์ฆ ์ ๊ฑฐ + ์๋ ๋ณผ๋ฅจ ์กฐ์ + ์ ์ฃผํ ํํฐ๋ฅผ ํ ๋ฒ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.** ๋ฐฉ์ก ์ค์๋ Stream Deck ๋ฒํผ ํ๋๋ก ์ดํํธ ์ ํ, ๋ณผ๋ฅจ ์กฐ์ , ๋ฎคํธ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๊ฒ์ ์ค์๋ ๋จ์ถํค๋ก, MIDI ์ปจํธ๋กค๋ฌ๋ก๋ ์กฐ์ํ ์ ์๋ค. DAW ์์ด๋ ์ ๋ฌธ์ ์ธ ๋ง์ดํฌ ์ธํ
์ ๊ฐํธํ๊ฒ ๊ตฌ์ฑํ๊ณ , ์ํฉ๋ณ ํ๋ฆฌ์
(A~E)์ผ๋ก ๋น ๋ฅด๊ฒ ์ ํํ ์ ์๋ค.
**Cross-platform real-time microphone processor for streamers, podcasters, gamers, and voice chat users.**
Apply VST plugins (noise removal, EQ, compressor, etc.) to your USB mic and deliver clean audio directly to Discord, Zoom, or OBS. **Don't know VST plugins? Just click the [Auto] button โ AI noise removal + auto volume leveling + low-cut filter can be added in one step.** Switch effects, adjust volume, and mute with a single Stream Deck button while live โ or use hotkeys during gameplay, MIDI controllers for hands-on mixing. Set up a professional mic chain without a DAW, and switch quickly between situation presets (A-E).
> **Platform support**: Windows (WASAPI/ASIO), macOS (CoreAudio), Linux (ALSA/JACK). Windows๋ ์์ ๋น๋, macOS๋ ๋ฒ ํ, Linux๋ ์คํ์ ์ง์.
> Windows is the stable release. macOS is in beta. Linux support is experimental.
**DirectPipe๋ ๋๊ตฌ๋ฅผ ์ํ ๊ฑด๊ฐ์? / Who is DirectPipe for?**
> VST ํ๋ฌ๊ทธ์ธ์ ๋ชฐ๋ผ๋ ๊ด์ฐฎ์ต๋๋ค. **[Auto] ๋ฒํผ ํ๋๋ก ๊ธฐ๋ณธ์ ์ธ ๋ง์ดํฌ ๋ณด์ ์ด ์๋ฃ๋ฉ๋๋ค.** ๋ ์ธ๋ฐํ ์กฐ์ ์ VST ํ๋ฌ๊ทธ์ธ์ผ๋ก. ([Auto ์ค๊ณ ์์น](docs/AUTO_DESIGN.md))
> Don't know what VST plugins are? No problem. **One click on [Auto] handles the essential mic correction.** Fine-tune further with VST plugins. ([Auto design principles](docs/AUTO_DESIGN.md))
๐ **์คํธ๋ฆฌ๋จธ / Streamers**
OBS๋ก ๋ฐฉ์กํ๋ฉด์ Stream Deck์ผ๋ก ์ค์๊ฐ ์ดํํธ ์ ์ด. **[Auto] ํ ๋ฒ์ด๋ฉด ๋
ธ์ด์ฆ ์ ๊ฑฐ + ๋ณผ๋ฅจ ์์ ํ ์๋ฃ.** Receiver VST2๋ก ๊ฐ์ ์ผ์ด๋ธ ์์ด OBS ์ง์ ์ฐ๊ฒฐ.
Control effects live with Stream Deck while streaming to OBS. **One click on [Auto] = noise removal + volume leveling done.** Direct OBS connection via Receiver VST2, no virtual cable needed.
๐ง **ํ์บ์คํฐ / Podcasters**
**[Auto]๋ก ๋
ธ์ด์ฆ ์ ๊ฑฐ + ๋ณผ๋ฅจ ์์ ํ๋ฅผ ํ ๋ฒ์ ์ค์ **, EQ/์ปดํ๋ ์๋ VST๋ก ์ถ๊ฐ. ๋
น์ ๊ธฐ๋ฅ ๋ด์ฅ.
**[Auto] sets up noise removal + volume leveling in one click**, add EQ/compressor as VST plugins. Built-in recording.
๐ฎ **๊ฒ์ด๋จธ / Gamers**
๋จ์ถํค(Ctrl+Shift)๋ก ๊ฒ์ ์ค ๋ฎคํธ/ํ๋ฆฌ์
์ ํ. **[Auto] ์ผ๋๋ฉด ํค๋ณด๋ยทํฌ ์๋ฆฌ ์๋ ์ ๊ฑฐ.** ์์คํ
ํธ๋ ์ด ์์ฃผ, ๋ฆฌ์์ค ์ต์ ์ฌ์ฉ.
Mute/preset switch with hotkeys (Ctrl+Shift) during gameplay. **Leave [Auto] on and keyboard/fan noise is removed automatically.** Runs in system tray, minimal resource usage.
๐ฌ **๋ณด์ด์ค์ฑ / Voice Chat (Discord, Zoom, Google Meet)**
**[Auto] ํด๋ฆญ ํ ๋ฒ์ผ๋ก ๊นจ๋ํ ์์ฑ ์์ฑ.** ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ๋ก Discord/Zoom์ ์ ๋ฌ. Windows: [VB-Cable](https://vb-audio.com/Cable/), macOS: [BlackHole](https://existential.audio/blackhole/)/[Loopback](https://rogueamoeba.com/loopback/), Linux: PipeWire/JACK.
**One click on [Auto] = clean voice ready.** Route to Discord/Zoom via virtual audio cable. Windows: VB-Cable, macOS: BlackHole/Loopback, Linux: PipeWire/JACK.
### 30์ด ๋ง์ ์์ํ๊ธฐ / Get Started in 30 Seconds
> ์๋ 3๋จ๊ณ๋ง ๋ฐ๋ผํ๋ฉด ๋ฐ๋ก ๊นจ๋ํ ๋ง์ดํฌ ์์ง์ ๋ค์ ์ ์์ต๋๋ค.
> Follow these 3 steps to hear cleaner audio from your mic right away.
1. **๋ค์ด๋ก๋ & ์คํ** โ [์ต์ ๋ฒ์ ๋ค์ด๋ก๋](https://github.com/LiveTrack-X/DirectPipe/releases/latest) โ ์์ถ ํด์ โ ์คํ / [Download latest](https://github.com/LiveTrack-X/DirectPipe/releases/latest) โ Extract โ Run
2. **๋ง์ดํฌ ์ ํ** โ Audio ํญ โ Input์์ USB ๋ง์ดํฌ ์ ํ / Audio tab โ Select your USB mic as Input
3. **[Auto] ํด๋ฆญ** โ ๊ธฐ๋ณธ์ ์ธ ๋ง์ดํฌ ๋ณด์ (๋
ธ์ด์ฆ ์ ๊ฑฐ + ์๋ ๋ณผ๋ฅจ + ์ ์ฃผํ ํํฐ)์ ํ ๋ฒ์ ์ถ๊ฐ / Click [Auto] โ Add essential mic correction (noise removal + auto volume + low-cut filter) in one step
4. **๋!** ๋ ์์ธํ ์ค์ ์ [Quick Start ๊ฐ์ด๋](docs/QUICKSTART.md) ์ฐธ์กฐ / **Done!** For detailed setup, see the [Quick Start guide](docs/QUICKSTART.md)
---
### DirectPipe๋ฅผ ์จ์ผ ํ๋ ์ด์ / Why DirectPipe?
> DAW ์์ด, ์ค์น ์์ด, ๋ง์ดํฌ์ VST๋ฅผ ๊ฑฐ๋ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ๋ฐฉ๋ฒ
> โ The lightest way to apply VST effects to your mic, without a DAW or installer.
> DirectPipe๋ ๋จ์ํ VST ํธ์คํธ๋ฅผ ๋์ด, **๋ผ์ด๋ธ ๋ง์ดํฌ ๋ผ์ฐํ
+ ์ธ๋ถ ์ ์ด ํ๋ซํผ**์ผ๋ก ์ฑ์ฅํ์ต๋๋ค. ํซํค, MIDI, Stream Deck, HTTP, WebSocket 5๊ฐ์ง ์ธ๋ถ ์ ์ด๋ฅผ ํตํฉ ์ง์ํฉ๋๋ค.
> DirectPipe has grown beyond a simple VST host into a **live microphone routing + external control platform**. It integrates 5 control methods: hotkeys, MIDI, Stream Deck, HTTP, and WebSocket.
- **์ค์น ๋ถํ์** โ Windows: ๋จ์ผ .exe, macOS: .app ๋ฒ๋ค, Linux: ๋จ์ผ ๋ฐ์ด๋๋ฆฌ. ์ธ์คํจ๋ฌ ์์ โ Windows: single .exe, macOS: .app bundle, Linux: single binary. No installer needed
- **5์ข
์ธ๋ถ ์ ์ด** โ ํซํค ยท MIDI ยท Stream Deck ยท HTTP ยท WebSocket์ ํ ํ๋ก๊ทธ๋จ์์ โ All 5 control methods in one app
- **๋น ๋ฅธ ํ๋ฆฌ์
์ ํ** โ A-E ์ฌ๋กฏ, ์ด๋ฆ ์ง์ , ๊ฐ์ ์ฒด์ธ์ ์ฆ์, ๋ค๋ฅธ ์ฒด์ธ์ ๋น๋๊ธฐ ๋ก๋ฉ์ผ๋ก ์งง์ ๊ฐญ ์ต์ํ โ Named preset slots (A-E) with fast switching: instant for same-chain changes, async loading for different chains
- **VST ์ถ๋ ฅ (DirectPipe Receiver, VST2/VST3/AU)** โ ๊ฐ์ ์ผ์ด๋ธ ์์ด OBS/DAW ์ง์ ์ฐ๊ฒฐ โ Direct OBS/DAW connection without virtual cables
- **์คํ์์ค** โ GPL v3, ๋๊ตฌ๋ ๊ธฐ์ฌ ๊ฐ๋ฅ โ Open source, community-driven
### For Setup Helpers / ์ธํ
๋์ฐ๋ฏธ๋ฅผ ์ํ ๊ธฐ๋ฅ
> ๋ค๋ฅธ ์ฌ๋์ ๋ง์ดํฌ ์ธํ
์ ๋์ ํด์ฃผ๋ ๋ถ๋ค์ ์ํ ์ํฌํ๋ก์ฐ
> โ Workflow for people who set up microphones for others
1. **ํฌํฐ๋ธ ์คํ** โ USB์ DirectPipe๋ฅผ ๋ฃ๊ณ ์๋๋ฐฉ ์ปดํจํฐ์์ ๋ฐ๋ก ์คํ ([`portable.flag`๋ก ์ค์ ๋ USB์ ์ ์ฅ](docs/USER_GUIDE.md#ํฌํฐ๋ธ-๋ชจ๋--portable-mode))
2. **ํ๋ฆฌ์
๋ด๋ณด๋ด๊ธฐ** โ ์ต์ ํ๋ VST ์ฒด์ธ์ `.dppreset` ํ์ผ๋ก ๋ด๋ณด๋ด์ ์ ๋ฌ
3. **ํ๋ฆฌ์
๊ฐ์ ธ์ค๊ธฐ** โ ์๋๋ฐฉ์ด ์ฌ๋กฏ ์ฐํด๋ฆญ โ Import๋ก ์ฆ์ ์ ์ฉ
4. **Full Backup** โ Settings > Maintenance์์ ์ค์ + ๋ชจ๋ ์ฌ๋กฏ์ `.dpfullbackup` ํ๋๋ก ๋ฐฑ์
/๋ณต์. ๊ฐ์ OS๋ผ๋ฆฌ๋ง ๋ณต์ ๊ฐ๋ฅ (๋ฐฑ์
ํ์ผ์ ํ๋ซํผ ์ ๋ณด ํฌํจ, ๋ค๋ฅธ OS์์ ๋ณต์ ์ ์ฐจ๋จ) / Same-OS restore only (backup includes platform info, cross-OS restore is blocked)
```
์ธํ
๋์ฐ๋ฏธ PC ์คํธ๋ฆฌ๋จธ PC
DirectPipe โ ์ฌ๋กฏ A ์ธํ
์๋ฃ DirectPipe ์ค์น
โ ์ฐํด๋ฆญ "Export A" โ game.dppreset โ ์ฐํด๋ฆญ "Import to A" โ game.dppreset
โ ํ์ผ ์ ๋ฌ (๋ฉ์ ์ , USB ๋ฑ) โ ์ฆ์ ์ ์ฉ!
```
---
๐ Stream Deck Plugin โ Elgato Marketplace์์ ๋ฌด๋ฃ ์ค์น
Bypass ยท Volume (SD+ ๋ค์ด์ผ) ยท Preset ยท Monitor ยท Panic Mute ยท Recording ยท VST Output ยท Performance Monitor ยท Plugin Parameter (SD+) ยท Preset Bar (SD+) โ 10๊ฐ์ง ์ก์
์ผ๋ก Stream Deck์์ DirectPipe๋ฅผ ์์ ์ ์ด
Free on Elgato Marketplace โ 10 actions to fully control DirectPipe from your Stream Deck
---
## ๋์ ์๋ฆฌ / How It Works
```
Mic โโ WASAPI / ASIO / CoreAudio / ALSA โโ Input Gain โโ VST2/VST3 Plugin Chain โโ Global Safety Guard โโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
Main Output Monitor Output VST Output
(Audio tab Output device) (Output tab, separate (DirectPipe Receiver)
์: Virtual Cable โ Discord/Zoom ๋ณ๋ ์ฅ์น โ Headphones) โ Shared Memory
โ โ
AudioRecorder OBS / DAW [DirectPipe Receiver]
โ WAV File (Output tab)
External Control:
Hotkeys / MIDI CC / Stream Deck / HTTP (:8766) / WebSocket (:8765)
โ ActionDispatcher โ Bypass, Volume, Preset, Mute, Recording, VST Output ...
```
## ์ฃผ์ ๊ธฐ๋ฅ / Features
### VST ํธ์คํ
/ VST Hosting
- **VST2 + VST3** ํ๋ฌ๊ทธ์ธ ๋ก๋ ๋ฐ ์ธ๋ผ์ธ ์ค์๊ฐ ์ฒ๋ฆฌ โ Load and process plugins inline in real time
- **๋๋๊ทธ ์ค ๋๋กญ** ํ๋ฌ๊ทธ์ธ ์ฒด์ธ ํธ์ง โ Drag & drop to reorder plugins, toggle bypass, open native plugin GUIs
- **Out-of-process ์ค์บ๋** โ ๋ณ๋ ํ๋ก์ธ์ค์์ ์์ ์ค์บ. ํฌ๋์ ์ ์๋ ์ฌ์๋ (10ํ), ๋ธ๋๋ฆฌ์คํธ ์๋ ๋ฑ๋ก โ Scans in a separate process; auto-retry up to 10 times, blacklists crashed plugins
- **ํ๋ฌ๊ทธ์ธ ๊ฒ์/์ ๋ ฌ** โ ์ค์บ๋์์ ์ด๋ฆ/๋ฒค๋/ํฌ๋งท์ผ๋ก ์ค์๊ฐ ๊ฒ์ ๋ฐ ์ปฌ๋ผ ์ ๋ ฌ โ Real-time search and column sort by name, vendor, or format
- **Quick Preset Slots (A-E)** โ 5๊ฐ ์ฒด์ธ ์ ์ฉ ํ๋ฆฌ์
. ์ด๋ฆ ์ง์ ๊ฐ๋ฅ (A|๊ฒ์, B|ํ ํฌ ๋ฑ). ๊ฐ์ ์ฒด์ธ์ด๋ฉด ์ฆ์ ์ ํ, ๋ค๋ฅธ ์ฒด์ธ์ด๋ฉด ๋น๋๊ธฐ ๋ก๋ฉ (Keep-Old-Until-Ready: ๋ก๋ฉ ์ค์๋ ์ด์ ์ฒด์ธ์ด ์ค๋์ค ์ฒ๋ฆฌ๋ฅผ ์ ์งํ์ฌ ๋๊น ์์ด ์ ํ). ์ฌ๋กฏ ๋ด๋ณด๋ด๊ธฐ/๊ฐ์ ธ์ค๊ธฐ, ์ฐํด๋ฆญ์ผ๋ก ๋ณต์ฌ/์ญ์ /์ด๋ฆ๋ณ๊ฒฝ โ 5 chain-only presets with custom naming (A|Game, B|Talk). Instant or async switching (Keep-Old-Until-Ready). Right-click to rename, copy, export/import, or delete slots
### ์ค๋์ค / Audio
- **WASAPI Shared + ASIO** (Windows), **CoreAudio** (macOS), **ALSA/JACK** (Linux) โ ๋ฐํ์ ์ ํ ๊ฐ๋ฅ โ Runtime driver switching
- ๋น๋
์ ๋ง์ดํฌ ์ ๊ทผ โ Non-exclusive mic access, other apps can use the mic simultaneously
- **์ฅ์น ์๋ ์ฌ์ฐ๊ฒฐ** โ USB ์ฅ์น ๋ถ๋ฆฌ ์ ์๋ฆผ, ์ํ๋ ์ฅ์น๊ฐ ๋ค์ ์ฐ๊ฒฐ๋ ๋๊น์ง ๋ฌด๊ธฐํ ๋๊ธฐ ํ ์๋ ๋ณต๊ตฌ (SR/BS/์ฑ๋ ์ค์ ๋ณด์กด, ๋ค๋ฅธ ์ฅ์น๋ก ํด๋ฐฑํ์ง ์์). ๋ชจ๋ํฐ ์ฅ์น๋ ๋
๋ฆฝ์ ์ผ๋ก ์ฌ์ฐ๊ฒฐ โ Auto-reconnection on USB disconnect: waits indefinitely for desired device (no fallback), auto-recovers preserving SR/BS/channel settings. Monitor device reconnects independently
- **3๊ฐ์ง ์ถ๋ ฅ ๊ฒฝ๋ก** โ Main Output (Audio ํญ ์ฅ์น) + Monitor Output (Output ํญ, ๋ณ๋ ์ค๋์ค ์ฅ์น๋ก ํค๋ํฐ ๋ชจ๋ํฐ๋ง) + VST Output (DirectPipe Receiver โ OBS/DAW) โ Three output paths: main, monitor headphones (via separate audio device), VST output to OBS/DAW
- **Mono / Stereo** ์ฑ๋ ๋ชจ๋ โ ๋ชจ๋
ธ ๋ชจ๋: ์
๋ ฅ๋จ์์ ์ ์ฒด ์ฑ๋์ ํฉ์ฐ ํ ์์ชฝ ์คํ
๋ ์ค๋ก ์ถ๋ ฅ. ๋จ์ผ ๋ง์ดํฌ ์ฌ์ฉ ์ ๋ณผ๋ฅจ ์์ค ์์ โ Mono mode: sums all input channels at the input stage and outputs to both L/R. No volume loss for single-mic use
- **์
๋ ฅ ๊ฒ์ธ** โ 0.0x~2.0x ๋ฒ์, ๊ธฐ๋ณธ๊ฐ 1.0x (unity gain) โ Input gain 0.0x-2.0x, default 1.0x
- **์ค์๊ฐ ๋ ๋ฒจ ๋ฏธํฐ** โ ์
๋ ฅ(์ข) / ์ถ๋ ฅ(์ฐ) RMS ๋ฏธํฐ, dB ๋ก๊ทธ ์ค์ผ์ผ โ Input/output RMS meters with dB log scale
- **Safety Guard** โ VST ์ฒด์ธ ์ดํ ์ ์ญ ์ํ-ํผํฌ ๊ฐ๋(legacy API/action name: SafetyLimiter). zero-latency runtime, instant attack + smooth release + hard clamp, ๊ธฐ๋ณธ ceiling -0.3 dBFS โ Global sample-peak guard after VST chain (legacy API/action name: SafetyLimiter). Zero-latency runtime with instant attack + smooth release + hard clamp, default ceiling -0.3 dBFS
- **Built-in Processors** โ Filter (HPF+LPF), Noise Removal (RNNoise AI), Auto Gain (LUFS AGC + fixed post limiter) โ VST ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป ์ฒด์ธ์ ์ฝ์
๊ฐ๋ฅ. [Auto] ๋ฒํผ(์
๋ ฅ ๊ฒ์ธ ์ ํน์ ํ๋ฆฌ์
์ฌ๋กฏ)์ผ๋ก 3๊ฐ ๋ชจ๋ ํ ๋ฒ์ ์ถ๊ฐ โ Filter, Noise Removal (RNNoise AI), Auto Gain (LUFS AGC + fixed post limiter) insertable alongside VST plugins. [Auto] button (special preset slot next to input gain) adds all 3 at once
- **Clock Drift Compensation** โ Bidirectional IPC drift handling with hysteresis dead-band to improve long-duration streaming stability (auto buffer management helps reduce clicks/pops) / ํ์คํ
๋ฆฌ์์ค ๋ฐ๋ ๋ฐด๋๋ฅผ ํฌํจํ ์๋ฐฉํฅ IPC ํด๋ก ๋๋ฆฌํํธ ๋ณด์์ผ๋ก ์ฅ์๊ฐ ์คํธ๋ฆฌ๋ฐ ์์ ์ฑ์ ๋์ด๋๋ก ์ค๊ณ๋จ (์๋ ๋ฒํผ ๊ด๋ฆฌ๋ก ๋๊น/ํ ์ํ)
### ์ธ๋ถ ์ ์ด / External Control
- **ํค๋ณด๋ ๋จ์ถํค** (๋ชจ๋ Controls > Hotkeys ํญ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅ, ๋๋๊ทธ์ค๋๋กญ ์์ ๋ณ๊ฒฝ) โ All customizable in Controls > Hotkeys tab, drag-and-drop reorder. macOS์์๋ ์ ๊ทผ์ฑ ๊ถํ ํ์ (CGEventTap). macOS requires Accessibility permission.
| ๋จ์ถํค / Shortcut | ๋์ / Action |
|---|---|
| Ctrl+Shift+M | ํจ๋ ๋ฎคํธ / Panic mute |
| Ctrl+Shift+0 | ๋ง์คํฐ Bypass (์ ์ฒด ์ฒด์ธ) / Master bypass |
| Ctrl+Shift+1โ3 | ํ๋ฌ๊ทธ์ธ 1-3 Bypass ํ ๊ธ / Plugin 1-3 bypass |
| Ctrl+Shift+F6 | ์
๋ ฅ๋ง ๋ฎคํธ (์ฒด์ธ/์ถ๋ ฅ ์ ์ง) / Input-only mute (chain/output kept running) |
| Ctrl+Shift+H | ๋ชจ๋ํฐ ํ ๊ธ / Monitor toggle |
| Ctrl+Shift+F1โF5 | ํ๋ฆฌ์
์ฌ๋กฏ A-E / Preset slot A-E |
> ๋ชจ๋ ๋จ์ถํค๋ Controls > Hotkeys ํญ์์ ๋ณ๊ฒฝ/์ถ๊ฐ ๊ฐ๋ฅ / All shortcuts are customizable in Controls > Hotkeys tab
- **MIDI CC** โ Learn ๋ชจ๋๋ก CC/๋
ธํธ ๋งคํ (Cancel ๋ฒํผ์ผ๋ก ์ทจ์ ๊ฐ๋ฅ). ํ๋ฌ๊ทธ์ธ ํ๋ผ๋ฏธํฐ ์ง์ ๋งคํ๋ ์ง์ โ CC/note mapping with Learn mode (Cancel button to abort). Direct plugin parameter mapping supported
- **WebSocket** (RFC 6455, port 8765) โ ์๋ฐฉํฅ ์ค์๊ฐ ํต์ , ์ํ ์๋ ํธ์ โ Bidirectional real-time communication with auto state push
- **HTTP REST API** (port 8766) โ curl์ด๋ ๋ธ๋ผ์ฐ์ ์์ ์์ท GET ์ปค๋งจ๋ โ One-shot GET commands from curl or browser
- **UDP Discovery** (port 8767) โ Stream Deck ์๋ ์ฐ๊ฒฐ์ฉ ๋์ค์ปค๋ฒ๋ฆฌ ๋ธ๋ก๋์บ์คํธ โ Auto-discovery broadcast for instant Stream Deck connection
- **[Stream Deck ํ๋ฌ๊ทธ์ธ](https://marketplace.elgato.com/product/directpipe-29f7cbb8-cb90-425d-9dbc-b2158e7ea8b3)** โ 10๊ฐ์ง ์ก์
: Bypass, Volume (SD+ ๋ค์ด์ผ), Preset, Monitor, Panic Mute, Recording, IPC Toggle, Performance Monitor, Plugin Parameter (SD+ ๋ค์ด์ผ), Preset Bar (SD+) โ [Elgato Marketplace์์ ๋ฌด๋ฃ ์ค์น](https://marketplace.elgato.com/product/directpipe-29f7cbb8-cb90-425d-9dbc-b2158e7ea8b3)
### VST ์ถ๋ ฅ (DirectPipe Receiver) / VST Output (DirectPipe Receiver)
- **DirectPipe Receiver (VST2/VST3/AU)** โ OBS, DAW ๋ฑ์์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ง์ ์์ . **๊ฐ์ ์ผ์ด๋ธ ๋ถํ์**. ์
๋ ฅ ๋ฒ์ค ์๋ ์ถ๋ ฅ ์ ์ฉ ํ๋ฌ๊ทธ์ธ (๋ชจ๋
ธ/์คํ
๋ ์ค ์ถ๋ ฅ ์ง์) โ OBS ํํฐ ์ฒด์ธ์ ์๋จ ์ค๋์ค๋ ๋ฌด์๋๊ณ DirectPipe์์ ์ ์ก๋ ์ค๋์ค๋ง ์ถ๋ ฅ. ํธ์คํธ์ ๋ฒํผ๋ง ๋ ์ดํด์ ๋ณด๊ณ โ Receive audio via shared memory in OBS, DAWs, and other hosts. **No virtual cable needed**. Output-only plugin (no input bus, mono/stereo output) โ ignores upstream audio in the host's filter chain, only outputs audio sent from DirectPipe. Reports buffering latency to host
- **VST ์ถ๋ ฅ ํ ๊ธ** โ ๊ธฐ๋ณธ๊ฐ OFF. VST ๋ฒํผ / Output ํญ ์ฒดํฌ๋ฐ์ค / MIDI / Stream Deck / HTTP API / ์ฌ์ฉ์ ์ ์ ๋จ์ถํค๋ก ์ผ๊ธฐ/๋๊ธฐ โ Off by default. Toggle via VST button, Output tab, MIDI, Stream Deck, HTTP API, or user-defined hotkey
- **๋ฒํผ ํฌ๊ธฐ ์ค์ ** โ Receiver ํ๋ฌ๊ทธ์ธ GUI์์ 5๋จ๊ณ ํ๋ฆฌ์
์ ํ. ์ค์ ์ง์ฐ(ms)์ ์ํ๋ ์ดํธ์ ๋ฐ๋ผ ๋ค๋ฆ โ 5 buffer presets in Receiver plugin GUI. Actual latency (ms) depends on sample rate
| ํ๋ฆฌ์
/ Preset | ์ํ / Samples | @48kHz | @44.1kHz | ์ฉ๋ / Best for |
|---|---|---|---|---|
| Ultra Low | 256 | ~5ms | ~6ms | ์ต์ ์ง์ฐ / Minimum latency |
| Low (๊ธฐ๋ณธ) | 512 | ~10ms | ~12ms | ์ผ๋ฐ ์ฌ์ฉ / General use (default) |
| Medium | 1024 | ~21ms | ~23ms | ์์ ์ / Stable |
| High | 2048 | ~42ms | ~46ms | CPU ์ฌ์ ์ ์ ๋ / Low CPU headroom |
| Safe | 4096 | ~85ms | ~93ms | ์ต๋ ์์ ์ฑ / Maximum stability |
- **์ํ๋ ์ดํธ ๋ถ์ผ์น ๊ฒฝ๊ณ ** โ DirectPipe ์ก์ ์ํ๋ ์ดํธ์ OBS(ํธ์คํธ) ์ํ๋ ์ดํธ๊ฐ ๋ค๋ฅด๋ฉด Receiver GUI์ ๊ฒฝ๊ณ ํ์. ์ํ๋ ์ดํธ๊ฐ ๋ค๋ฅด๋ฉด ํผ์น/์๋ ๋ณ๋ ๋ฐ์ โ Sample rate mismatch warning shown in Receiver GUI when source and host sample rates differ
### ๋
น์ / Recording
- **์ค๋์ค ๋
น์** โ Output ํญ์์ VST ์ฒด์ธ ์ดํ ์ฒ๋ฆฌ๋ ์ค๋์ค๋ฅผ WAV๋ก ๋
น์ (lock-free ์ค์๊ฐ ์์ ) โ Record post-chain audio to WAV in Output tab (lock-free, RT-safe)
- **๊ธฐ๋ณธ ํด๋**: `Documents/DirectPipe Recordings` (์ฌ์ฉ์ ๋ฌธ์ ํด๋), ํ์ผ๋ช
: `DirectPipe_YYYYMMDD_HHMMSS.wav` โ Default folder (user Documents), naming format
- **๋
น์ ์ ์ด** โ REC/STOP ๋ฒํผ, ๊ฒฝ๊ณผ ์๊ฐ ํ์, Play (๋ง์ง๋ง ๋
น์ ์ฌ์), Open Folder, ํด๋ ๋ณ๊ฒฝ โ REC/STOP, elapsed time, Play last, Open Folder, change folder
- **์ธ๋ถ ์ ์ด** โ Stream Deck (๊ฒฝ๊ณผ ์๊ฐ ํ์), HTTP API, WebSocket์ผ๋ก๋ ๋
น์ ํ ๊ธ ๊ฐ๋ฅ โ Also controllable via Stream Deck (shows elapsed time), HTTP, WebSocket
### UI / ์ฌ์ฉ์ ์ธํฐํ์ด์ค
- **2์ปฌ๋ผ ๋ ์ด์์** โ ์ข: ์
๋ ฅ ๋ฏธํฐ + ๊ฒ์ธ([Auto] ํฌํจ) + ํ๋ฆฌ์
์ฌ๋กฏ(A~E) + VST ์ฒด์ธ + ๋ฎคํธ ๋ฒํผ(OUT/MON/VST) + PANIC MUTE, ์ฐ: ์ค์ ํญ ํจ๋ + ์ถ๋ ฅ ๋ฏธํฐ โ Left: input meter + gain (with [Auto]) + preset slots (A-E) + chain + mute buttons (OUT/MON/VST) + PANIC MUTE, Right: tabbed settings + output meter
- **4๊ฐ ํญ** โ Tab layout:
- **Audio**: ๋๋ผ์ด๋ฒ ์ ํ (Windows: WASAPI/ASIO, macOS: CoreAudio, Linux: ALSA/JACK), ์
์ถ๋ ฅ ์ฅ์น, ์ํ๋ ์ดํธ, ๋ฒํผ ํฌ๊ธฐ, ์ฑ๋ ๋ชจ๋. **Audio ํญ์ ์ํ๋ ์ดํธ๊ฐ VST ์ฒด์ธยท๋ชจ๋ํฐ ์ถ๋ ฅยทIPC ์ ์ฒด์ ์ ์ฉ๋จ** โ Driver (Windows: WASAPI/ASIO, macOS: CoreAudio, Linux: ALSA/JACK), devices, SR, buffer, channel mode. **Audio tab SR applies to VST chain, monitor output, and IPC**
- **Output**: ๋ชจ๋ํฐ ์ถ๋ ฅ(์ฅ์น/๋ณผ๋ฅจ/์ํ), VST ์ถ๋ ฅ ํ ๊ธ, ๋
น์(REC/Play/ํด๋) โ Monitor output, VST output toggle, recording
- **Controls**: 3๊ฐ ์๋ธํญ โ Hotkeys / MIDI / Stream Deck โ 3 sub-tabs
- **Settings**: ์๋ ์์ (Windows/Linux: "Start with System", macOS: "Open at Login"), ์ค์ ์ ์ฅ/๋ถ๋ฌ์ค๊ธฐ(.dpbackup, ์ค์ ๋ง), ๋ก๊ทธ ๋ทฐ์ด, ์ ์ง๋ณด์(Full Backup/Restore โ ๊ฐ์ OS๋ผ๋ฆฌ๋ง, Clear Cache/Presets, Factory Reset(A-E + Auto ์ฌ๋กฏ ํฌํจ)) โ Auto-start (platform-adaptive label), settings save/load (.dpbackup, settings only), log viewer, maintenance (Full Backup/Restore โ same OS only, Clear Cache/Presets, Factory Reset (includes A-E + Auto slots))
- **์์คํ
ํธ๋ ์ด** โ X ๋ฒํผ = ํธ๋ ์ด ์ต์ํ. ๋๋ธํด๋ฆญ ๋ณต์, ์ฐํด๋ฆญ ๋ฉ๋ด(Show/Start with System or Open at Login/Quit). ํดํ์ ํ์ฌ ์ํ ํ์ โ Tray resident, tooltip shows current state
- **Panic Mute** โ ์ ์ฒด ์ถ๋ ฅ ์ฆ์ ์ฐจ๋จ + ๋
น์ ์๋ ์ค์ง, ํด์ ์ ์ด์ ์ํ ๋ณต์ (๋
น์์ ์๋ ์ฌ์์ ์ ํจ). ํจ๋ ์ค OUT/MON/VST ์ ์ด๋ ์ ๊ธฐ๊ณ ๋๋ถ๋ถ ์ก์
์ด ์ฐจ๋จ๋์ง๋ง, Input Mute/XRun Reset/Safety Guard(legacy SafetyLimiter actions)/Auto Processors Add๋ ์ ์ง๋ณด์ยท์ค๋น ์ฉ๋๋ก ํ์ฉ โ Instant kill all output paths + auto-stop recording, restores previous states on unmute (recording does not auto-restart). OUT/MON/VST controls are locked and most actions are blocked, while Input Mute/XRun Reset/Safety Guard (legacy SafetyLimiter actions)/Auto Processors Add remain available for maintenance/prep flows
- **์ํ ๋ฐ** โ ๋ ์ดํด์, CPU % + XRun ์นด์ดํฐ(60์ด๊ฐ), ์ค๋์ค ํฌ๋งท, [LIM] ์ธ๋์ผ์ดํฐ, ํฌํฐ๋ธ ๋ชจ๋, ๋ฒ์ ์ ๋ณด. ์ค๋ฅ/๊ฒฝ๊ณ /์ ๋ณด ์๋ฆผ ์๋ ํ์ (3-8์ด ํ์ด๋) โ Status bar: latency, CPU % + XRun counter (60s window), audio format, [LIM] indicator, portable mode, version. Auto-fade notifications
- **์ธ์ฑ ์๋ ์
๋ฐ์ดํธ** โ ์ ๋ฒ์ ๊ฐ์ง ์ credit ๋ผ๋ฒจ์ "NEW vX.Y.Z" ํ์. ํด๋ฆญํ๋ฉด [Update Now] / [View on GitHub] / [Later] ๋ค์ด์ผ๋ก๊ทธ. Update Now๋ก GitHub์์ ๋ค์ด๋ก๋ โ ์๋ ๊ต์ฒด โ ์ฌ์์ โ In-app auto-updater with one-click update from GitHub releases
- **ํ๊ตญ์ด/CJK ํฐํธ ์ง์** โ ํ๊ธ, ไธญๆ, ๆฅๆฌ่ช ์ฅ์น๋ช
์ ์ ํ์. Windows: Malgun Gothic, macOS: Apple SD Gothic Neo, Linux: Noto Sans CJK KR โ Korean/Chinese/Japanese device names rendered correctly with platform-specific CJK font support
- **๋คํฌ ํ
๋ง** โ Custom JUCE LookAndFeel
- **ํฌํฐ๋ธ ๋ชจ๋** โ exe ์์ [`portable.flag`](tools/portable.flag) ํ์ผ ๋ฐฐ์น ์ ์ค์ ์ `./config/`์ ์ ์ฅ. ๋ค์ค ์ธ์คํด์ค ์ง์: ์ผ๋ฐ ๋ชจ๋์ ํฌํฐ๋ธ์ ๋์์ ์คํํ๋ฉด ํฌํฐ๋ธ์ "Audio Only" ๋ชจ๋๋ก ๋์ (์ธ๋ถ ์ ์ด ์ถฉ๋ ๋ฐฉ์ง). ํธ๋ ์ด/ํ์ดํ ๋ฐ์ ๋ชจ๋ ํ์ ([์์ธ ์ค๋ช
](docs/USER_GUIDE.md#ํฌํฐ๋ธ-๋ชจ๋--portable-mode)) โ Place [`portable.flag`](tools/portable.flag) next to exe to store config in `./config/`. Multi-instance support: running portable alongside normal mode puts portable in "Audio Only" mode (prevents external control conflicts). Mode shown in tray/title bar ([details](docs/USER_GUIDE.md#ํฌํฐ๋ธ-๋ชจ๋--portable-mode))
## ์ฌ์ฉ ์์: ๊ฐ์ ์ผ์ด๋ธ๋ก Discord/OBS์ ๋ณด์ด์ค ์ดํํธ ์ ์ฉ / Usage: Voice Effects with Virtual Cable
USB ๋ง์ดํฌ์ VST ์ดํํธ(๋
ธ์ด์ฆ ์ ๊ฑฐ, ๋์์, EQ ๋ฑ)๋ฅผ ๊ฑธ๊ณ , ์ฒ๋ฆฌ๋ ์ค๋์ค๋ฅผ DiscordยทZoomยทOBS ๋ฑ ๋ค๋ฅธ ์ฑ์์ ๋ง์ดํฌ๋ก ์ธ์์ํค๋ ค๋ฉด ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ์ด ํ์ํ๋ค.
To apply VST effects (noise removal, de-esser, EQ, etc.) to a USB mic and route the processed audio as a virtual microphone to apps like Discord, Zoom, or OBS, you need a virtual audio cable.
**ํ๋ซํผ๋ณ ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ / Virtual Audio Cable by Platform:**
| ํ๋ซํผ / Platform | ์ถ์ฒ / Recommended | ๋น์ฉ / Cost |
|---|---|---|
| **Windows** | [VB-Audio Virtual Cable](https://vb-audio.com/Cable/) | ๋ฌด๋ฃ / Free |
| **macOS** | [BlackHole](https://existential.audio/blackhole/) | ๋ฌด๋ฃ / Free |
| **macOS** | [Loopback](https://rogueamoeba.com/loopback/) | ์ ๋ฃ / Paid |
| **Linux** | PipeWire (virtual sink) ๋๋ JACK | ๋ด์ฅ / Built-in |
### ์ค์ ๋ฐฉ๋ฒ / Setup
1. ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ ์ค์น โ Install a virtual audio cable (์ ํ ์ฐธ์กฐ / see table above)
2. DirectPipe **Audio** ํญ์์ ์ค์ โ Configure in DirectPipe Audio tab:
- **Input**: USB ๋ง์ดํฌ ์ ํ โ Select your USB microphone
- **Output**: ๊ฐ์ ์ผ์ด๋ธ ์
๋ ฅ ์ ํ (์: Windows `CABLE Input`, macOS `BlackHole 2ch`) โ Select virtual cable input (e.g., Windows `CABLE Input`, macOS `BlackHole 2ch`)
3. Discord/Zoom/OBS ๋ฑ์์ ๋ง์ดํฌ๋ฅผ ๊ฐ์ ์ผ์ด๋ธ ์ถ๋ ฅ์ผ๋ก ๋ณ๊ฒฝ (์: Windows `CABLE Output`, macOS `BlackHole 2ch`) โ In your app, set mic to virtual cable output
```
USB Mic โ DirectPipe (VST Chain: ๋
ธ์ด์ฆ ์ ๊ฑฐ, EQ, ์ปดํ ...) โ Virtual Cable Input
โ
Discord/Zoom/OBS โ Virtual Cable Output
```
4. (์ ํ) **Output** ํญ์์ ํค๋ํฐ ์ฅ์น๋ฅผ ์ค์ ํ๋ฉด ์ฒ๋ฆฌ๋ ์์ ์ ๋ชฉ์๋ฆฌ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋ง ๊ฐ๋ฅ โ Optionally configure headphone monitoring in the Output tab
> **Tip**: [VoiceMeeter](https://vb-audio.com/Voicemeeter/) (Windows) ๋ฑ ๋ค๋ฅธ ๊ฐ์ ์ค๋์ค ์ฅ์น๋ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ. Output ์ฅ์น๋ง ๋ฐ๊พธ๋ฉด ๋๋ค. โ Any virtual audio device works; just change the Output device.
### OBS์์ VST ์ถ๋ ฅ์ผ๋ก ์ง์ ์ฐ๊ฒฐ (๊ฐ์ ์ผ์ด๋ธ ๋ถํ์) / Direct OBS Connection via VST Output (No Virtual Cable)
OBS์์๋ Receiver VST2 ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ ์ผ์ด๋ธ ์์ด ๋ ๊ฐ๋จํ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
If you use OBS, the Receiver VST2 plugin offers a simpler setup without any virtual cable.
1. Receiver ํ๋ฌ๊ทธ์ธ ํ์ผ์ VST2 ํด๋์ ๋ณต์ฌ โ Copy the Receiver plugin to a VST2 folder:
- **Windows**: `DirectPipe Receiver.dll` โ `C:\Program Files\VSTPlugins\` (๊ถ์ฅ), `C:\Program Files\Common Files\VST2\`, ๋๋ `C:\Program Files\Steinberg\VstPlugins\`
- **macOS**: `DirectPipe Receiver.vst` โ `/Library/Audio/Plug-Ins/VST/` ๋๋ `~/Library/Audio/Plug-Ins/VST/`
- **Linux**: `DirectPipe Receiver.so` โ `/usr/lib/vst/` ๋๋ `~/.vst/`
2. DirectPipe์์ **VST** ๋ฒํผ ํด๋ฆญ (VST ์ถ๋ ฅ ์ผ๊ธฐ) โ Enable VST output in DirectPipe
3. OBS โ ์ค๋์ค ์์ค (ex.๊ธฐ์กด ๋ง์ดํฌ)โ ํํฐ โ VST 2.x ํ๋ฌ๊ทธ์ธ โ **DirectPipe Receiver** ์ ํ โ Add VST filter in OBS
```
USB Mic โ DirectPipe (VST Chain: ๋
ธ์ด์ฆ ์ ๊ฑฐ, EQ, ์ปดํ ...)
โ VST ์ถ๋ ฅ (๊ณต์ ๋ฉ๋ชจ๋ฆฌ, ๊ฐ์ ์ผ์ด๋ธ ๋ถํ์)
OBS [DirectPipe Receiver VST ํํฐ] โ ๋ฐฉ์ก/๋
นํ
```
> **Tip**: ๊ฐ์ ์ผ์ด๋ธ๊ณผ DirectPipe Receiver๋ฅผ **๋์์** ์ฌ์ฉํ ์๋ ์์ต๋๋ค. Discord๋ ๊ฐ์ ์ผ์ด๋ธ๋ก, OBS๋ Receiver๋ก ๊ฐ๊ฐ ๋ณด๋ด๋ฉด ๋ฉ๋๋ค. โ You can use both methods simultaneously: virtual cable for Discord, DirectPipe Receiver for OBS.
> **์ค์**: DirectPipe Receiver๋ **์
๋ ฅ ๋ฒ์ค๊ฐ ์๋ ์ถ๋ ฅ ์ ์ฉ ํ๋ฌ๊ทธ์ธ**์
๋๋ค. OBS ์ค๋์ค ์์ค(๋ง์ดํฌ ์บก์ฒ ๋ฑ)์ ์ค๋์ค๋ ์๋จ ํํฐ์ ์ค๋์ค๋ ์์ ํ ๋ฌด์๋๊ณ , DirectPipe์์ IPC๋ก ์ ์ก๋ ์ฒ๋ฆฌ ์๋ฃ ์ค๋์ค๋ง ์ถ๋ ฅ๋ฉ๋๋ค.
>
> **Important**: DirectPipe Receiver is an **output-only plugin with no input bus**. Audio from the OBS source (mic capture, etc.) or preceding filters is completely ignored โ only the processed audio sent from DirectPipe via IPC is output.
### ์ถ๋ ฅ๋ณ ๊ฐ๋ณ ์ ์ด ํ์ฉ / Independent Output Control
๊ฐ์ ์ผ์ด๋ธ(Discord) + Receiver VST2(OBS)๋ฅผ ๋์ ์ฌ์ฉํ๋ฉด **OUT/VST ๋ฒํผ์ผ๋ก ๊ฐ ์ฑ์ ๋ง์ดํฌ๋ฅผ ๊ฐ๋ณ ์ ์ด**ํ ์ ์์ต๋๋ค. โ Using virtual cable (Discord) + Receiver VST2 (OBS) together lets you **independently control each app's mic feed with OUT/VST buttons**.
```
USB Mic โ DirectPipe (Plugin Chain)
โโ OUT โ Virtual Cable โ Discord โ OUT ๋ฒํผ์ผ๋ก ๊ฐ๋ณ ๋ฎคํธ
โโ VST โ Receiver VST2 โ OBS โ VST ๋ฒํผ์ผ๋ก ๊ฐ๋ณ ๋ฎคํธ
โโ MON โ Headphones โ MON ๋ฒํผ์ผ๋ก ๊ฐ๋ณ ๋ฎคํธ
```
- **VST OFF / OUT ON** โ OBS ๋ฐฉ์ก ๋ง์ดํฌ๋ง ๋ฎคํธ, Discord ํตํ ์ ์ง โ Mute OBS mic only, keep Discord
- **OUT OFF / VST ON** โ Discord๋ง ๋ฎคํธ, OBS ๋ฐฉ์ก ๋ง์ดํฌ ์ ์ง โ Mute Discord only, keep OBS
- **Ctrl+Shift+M (Panic Mute)** โ ์ ์ฒด ์ฆ์ ๋ฎคํธ, ํด์ ์ ์ด์ ์ํ ๋ณต์ โ Kill all outputs instantly, auto-restore on unmute
์์ธํ ํ์ฉ ์์๋ [User Guide โ ํ์ฉ ๊ฐ์ด๋](docs/USER_GUIDE.md#ํ์ฉ-๊ฐ์ด๋--usage-guide) ์ฐธ์กฐ.
---
## ๋น๋ / Build
```bash
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
```
ํ๋ซํผ๋ณ ๋น๋ ์๊ตฌ ์ฌํญ, ์ต์
, CI ์ค์ ๋ฑ ์์ธํ ๋ด์ฉ์ [Build Guide](docs/BUILDING.md) ์ฐธ์กฐ.
See [Build Guide](docs/BUILDING.md) for platform-specific requirements, build options, and CI setup.
## ํ๋ก์ ํธ ๊ตฌ์กฐ / Project Structure
```
host/ JUCE host application (main)
Source/
ActionResult.h Typed success/failure return value
Audio/ AudioEngine, VSTChain, OutputRouter, MonitorOutput,
AudioRingBuffer, LatencyMonitor, AudioRecorder,
SafetyLimiter, BuiltinFilter, BuiltinNoiseRemoval,
BuiltinAutoGain
Control/ ActionDispatcher, ActionHandler, SettingsAutosaver,
ControlManager, ControlMapping,
WebSocketServer, HttpApiServer,
HotkeyHandler, MidiHandler, StateBroadcaster,
DirectPipeLogger
IPC/ SharedMemWriter
Platform/ Cross-platform abstractions
Windows/ Registry autostart, Named Mutex, Win32 priority
macOS/ LaunchAgent, CGEventTap hotkeys, pthread QoS
Linux/ XDG autostart, setpriority, InterProcessLock
UI/ AudioSettings, OutputPanel, ControlSettingsPanel,
HotkeyTab, MidiTab, StreamDeckTab,
PresetSlotBar, StatusUpdater, UpdateChecker,
PluginChainEditor, PluginScanner, PresetManager,
LevelMeter, LogPanel, NotificationBar,
DirectPipeLookAndFeel, SettingsExporter,
FilterEditPanel, NoiseRemovalEditPanel, AGCEditPanel
core/ IPC library (RingBuffer, SharedMemory, Protocol)
plugins/receiver/ Receiver VST2/VST3/AU plugin (for OBS/DAW)
com.directpipe.directpipe.sdPlugin/ Stream Deck plugin (Node.js, SDK v3)
dist/ Packaged plugin (.streamDeckPlugin) + marketplace assets
tests/ Unit tests (Google Test)
thirdparty/ VST2 SDK, ASIO SDK (not included), RNNoise (BSD-3, included)
```
## ๋ฌธ์ / Documentation
- **[Quick Start](docs/QUICKSTART.md) โ USB ๋ง์ดํฌ 5๋ถ ์ค์ ๊ฐ์ด๋ / 5-minute USB mic setup guide**
- [Platform Guide](docs/PLATFORM_GUIDE.md) โ ํ๋ซํผ๋ณ ๊ฐ์ด๋ (Windows/macOS/Linux) / Platform-specific setup, features, and limitations
- [Release Notes](docs/ReleaseNote.md) โ ๋ณ๊ฒฝ ์ด๋ ฅ / Changelog and version history
- [Auto Design](docs/AUTO_DESIGN.md) โ [Auto] ์ค๊ณ ์์น ๋ฐ ํ๋ผ๋ฏธํฐ ๊ทผ๊ฑฐ / Auto chain design principles, parameter rationale
- [Architecture](docs/ARCHITECTURE.md) โ ์์คํ
์ค๊ณ / System design, data flow, thread safety
- [Build Guide](docs/BUILDING.md) โ ๋น๋ ๊ฐ์ด๋ (๋ฉํฐ ํ๋ซํผ) / Build instructions for all platforms
- [User Guide](docs/USER_GUIDE.md) โ ์ฌ์ฉ๋ฒ / Setup and usage
- [Control API](docs/CONTROL_API.md) โ WebSocket / HTTP API ๋ ํผ๋ฐ์ค / API reference
- [API Examples](docs/API_EXAMPLES.md) โ ์๋ํ ์์ (Python, AutoHotkey, OBS ์ฐ๋, curl, PowerShell) / Automation examples
- [Stream Deck Guide](docs/STREAMDECK_GUIDE.md) โ Stream Deck ํ๋ฌ๊ทธ์ธ / Stream Deck integration
- [Product Spec](docs/PRODUCT_SPEC.md) โ ์ ํ ์์ธ ๊ธฐํ์ / Detailed product specification (reverse-engineered from implementation)
- [Logging Rules](docs/LOGRULE.md) โ ๋ก๊น
ํ์ ๋ฐ ๊ท์น / Log format, categories, and audit mode
- [Security](SECURITY.md) โ ๋ณด์ ์ ์ฑ
๋ฐ ์ค๊ณ / Security policy, architecture, and known limitations
- [Testing](TESTING.md) โ ํ
์คํธ ๊ฐ์ด๋ (์๋/์๋ ํ
์คํธ ์ฒดํฌ๋ฆฌ์คํธ) / Testing guide (automated and manual test checklists)
- [Contributing](CONTRIBUTING.md) โ ๊ธฐ์ฌ ๊ฐ์ด๋ / Contributor guidelines
- [AutoGain Plugin Guide](docs/AUTOGAIN_PLUGIN_GUIDE.md) โ AutoGain ๋
๋ฆฝ ํ๋ฌ๊ทธ์ธ ๋ถ๋ฆฌ ๊ฐ์ด๋ / AutoGain standalone plugin extraction guide
## FAQ
X ๋ฒํผ์ ๋๋ ๋๋ฐ ํ๋ก๊ทธ๋จ์ด ๊บผ์ง์ง ์์์ / Clicking X doesn't close the app
DirectPipe๋ **์์คํ
ํธ๋ ์ด**์์ ์์ฃผํ๋ ์ฑ์
๋๋ค. X ๋ฒํผ(๋ซ๊ธฐ)์ ๋๋ฅด๋ฉด **์ข
๋ฃ๋๋ ๊ฒ์ด ์๋๋ผ ํธ๋ ์ด๋ก ์ต์ํ**๋ฉ๋๋ค. ์ค๋์ค ์ฒ๋ฆฌ๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๊ณ์ ๋์ํฉ๋๋ค.
- **ํธ๋ ์ด ์์ด์ฝ ๋๋ธํด๋ฆญ** โ ์ฐฝ ๋ณต์
- **ํธ๋ ์ด ์์ด์ฝ ์ฐํด๋ฆญ** โ ๋ฉ๋ด์์ **"Quit DirectPipe"** ์ ํ โ ์์ ์ข
๋ฃ
์ด ๋์์ ์๋๋ ์ค๊ณ์
๋๋ค โ Discord๋ OBS ๋ฑ์ ์ค์๊ฐ ์ค๋์ค๋ฅผ ๊ณ์ ๋ณด๋ด๋ฉด์ ์ฐฝ์ ๋ซ์๋ ์ฒ๋ฆฌ๊ฐ ์ค๋จ๋์ง ์๋๋ก ํฉ๋๋ค.
---
DirectPipe is a **system tray** resident app. Clicking the X (close) button **minimizes it to the tray** instead of quitting. Audio processing continues running in the background.
- **Double-click the tray icon** โ restore the window
- **Right-click the tray icon** โ select **"Quit DirectPipe"** โ fully exit
This is by design โ it ensures audio processing keeps running for Discord, OBS, etc. even when the window is closed.
ํธ๋ ์ด ์์ด์ฝ์ด ์ ๋ณด์ฌ์ / ํธ๋ ์ด์ ๊ณ ์ ํ๋ ๋ฐฉ๋ฒ / Tray icon not visible / How to pin to tray
Windows๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋ ์ด ์์ด์ฝ์ ์จ๊น ์์ญ(โฒ ํ์ดํ ์)์ ๋ฃ์ต๋๋ค. DirectPipe ์์ด์ฝ์ ํญ์ ๋ณด์ด๊ฒ ํ๋ ค๋ฉด **ํธ๋ ์ด์ ๊ณ ์ **ํ์ธ์.
**Windows 11:**
1. **์ค์ ** โ **๊ฐ์ธ ์ค์ ** โ **์์
ํ์์ค** โ **๊ธฐํ ์์คํ
ํธ๋ ์ด ์์ด์ฝ** ํด๋ฆญ
2. ๋ชฉ๋ก์์ **DirectPipe**๋ฅผ ์ฐพ์ **์ผฌ** ์ผ๋ก ๋ณ๊ฒฝ
3. ๋๋: ์จ๊น ์์ญ(โฒ)์์ DirectPipe ์์ด์ฝ์ **์์
ํ์์ค๋ก ๋๋๊ทธ**
**Windows 10:**
1. **์ค์ ** โ **๊ฐ์ธ ์ค์ ** โ **์์
ํ์์ค** โ **์๋ฆผ ์์ญ** โ **์์
ํ์์ค์ ํ์ํ ์์ด์ฝ ์ ํ** ํด๋ฆญ
2. ๋ชฉ๋ก์์ **DirectPipe**๋ฅผ ์ฐพ์ **์ผฌ** ์ผ๋ก ๋ณ๊ฒฝ
3. ๋๋: ์จ๊น ์์ญ(โฒ)์์ DirectPipe ์์ด์ฝ์ **์์
ํ์์ค๋ก ๋๋๊ทธ**
**macOS:** ๋ฉ๋ด ๋ฐ์ ์๋์ผ๋ก ํ์๋ฉ๋๋ค. ๋ฉ๋ด ๋ฐ ์์ด์ฝ์ด ๋๋ฌด ๋ง์ผ๋ฉด Cmd ํค๋ฅผ ๋๋ฅธ ์ฑ ์์ด์ฝ์ ๋๋๊ทธํ์ฌ ์์๋ฅผ ๋ณ๊ฒฝํ์ธ์.
**Linux:** ๋ฐ์คํฌํฑ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. GNOME์ AppIndicator ํ์ฅ, KDE๋ ์์คํ
ํธ๋ ์ด์ ์๋ ํ์๋ฉ๋๋ค.
---
Windows hides tray icons in the overflow area (โฒ arrow) by default. To keep the DirectPipe icon always visible, **pin it to the taskbar tray**.
**Windows 11:**
1. **Settings** โ **Personalization** โ **Taskbar** โ click **Other system tray icons**
2. Find **DirectPipe** and toggle it **On**
3. Or: drag the DirectPipe icon from the overflow area (โฒ) onto the **taskbar**
**Windows 10:**
1. **Settings** โ **Personalization** โ **Taskbar** โ **Notification area** โ click **Select which icons appear on the taskbar**
2. Find **DirectPipe** and toggle it **On**
3. Or: drag the DirectPipe icon from the overflow area (โฒ) onto the **taskbar**
**macOS:** Appears automatically in the menu bar. If crowded, hold Cmd and drag to reorder menu bar icons.
**Linux:** Depends on desktop environment. GNOME requires AppIndicator extension; KDE shows in system tray automatically.
์ฒ์ ์คํํ ๋ ๋ณด์ ๊ฒฝ๊ณ ๊ฐ ๋ ์ / Security warning on first run
์ ์์
๋๋ค! DirectPipe๋ ์คํ์์ค๋ผ ์ฝ๋ ์๋ช
์ธ์ฆ์๊ฐ ์์ด์ ๋ํ๋๋ ๊ฒฝ๊ณ ์
๋๋ค. ์
์ฑ ์ํํธ์จ์ด๊ฐ ์๋๋๋ค.
**Windows (SmartScreen):**
1. **"์ถ๊ฐ ์ ๋ณด"** ํ
์คํธ๋ฅผ ํด๋ฆญํ์ธ์
2. ์๋์ ๋ํ๋๋ **"์คํ"** ๋ฒํผ์ ๋๋ฅด์ธ์
**macOS (Gatekeeper):**
1. **์์คํ
์ค์ ** โ **๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฐ ๋ณด์** โ ํ๋จ์ **"ํ์ธ ์์ด ์ด๊ธฐ"** ํด๋ฆญ
2. ๋๋: Finder์์ DirectPipe.app์ **์ฐํด๋ฆญ** โ **์ด๊ธฐ** โ **์ด๊ธฐ** ํด๋ฆญ
ํ ๋ฒ๋ง ํ๋ฉด ์ดํ๋ก๋ ๊ฒฝ๊ณ ์์ด ์คํ๋ฉ๋๋ค.
---
This is normal! DirectPipe is open-source and does not have a code signing certificate, so your OS shows a warning. It is not malware.
**Windows (SmartScreen):**
1. Click the **"More info"** text
2. Click the **"Run anyway"** button that appears
**macOS (Gatekeeper):**
1. **System Settings** โ **Privacy & Security** โ click **"Open Anyway"** at the bottom
2. Or: Right-click DirectPipe.app in Finder โ **Open** โ click **Open**
You only need to do this once โ the warning won't appear again.
VST ํ๋ฌ๊ทธ์ธ์ด ๋ญ๊ฐ์? ์ด๋์ ๊ตฌํ๋์? / What are VST plugins and where to get them?
VST ํ๋ฌ๊ทธ์ธ์ ์ค๋์ค์ ํจ๊ณผ๋ฅผ ์ถ๊ฐํ๋ ์ํํธ์จ์ด์
๋๋ค. ๋
ธ์ด์ฆ ์ ๊ฑฐ, EQ, ์ปดํ๋ ์ ๋ฑ ๋ค์ํ ์ข
๋ฅ๊ฐ ์์ต๋๋ค.
**๋ฌด๋ฃ ์ถ์ฒ ํ๋ฌ๊ทธ์ธ:**
- [ReaPlugs](https://www.reaper.fm/reaplugs/) โ EQ, ์ปดํ๋ ์, ๊ฒ์ดํธ ๋ฑ ๊ธฐ๋ณธ ํ๋ฌ๊ทธ์ธ ๋ชจ์ (๋ฌด๋ฃ)
- [RNNoise](https://github.com/werman/noise-suppression-for-voice) โ AI ๊ธฐ๋ฐ ์ค์๊ฐ ๋
ธ์ด์ฆ ์ ๊ฑฐ (๋ฌด๋ฃ)
- [TDR Nova](https://www.tokyodawn.net/tdr-nova/) โ ๊ณ ํ์ง ๋ค์ด๋๋ฏน EQ (๋ฌด๋ฃ)
- [OrilRiver](https://www.kvraudio.com/product/orilriver-by-denis-tihanov) โ ๋ฆฌ๋ฒ๋ธ (๋ฌด๋ฃ)
์ค์น ํ DirectPipe์์ **"Scan..."** ๋ฒํผ์ผ๋ก ํ๋ฌ๊ทธ์ธ ํด๋๋ฅผ ์ค์บํ๋ฉด ๋ชฉ๋ก์ ๋ํ๋ฉ๋๋ค.
---
VST plugins are software that add audio effects to your signal โ noise removal, EQ, compressor, reverb, and more.
**Free recommended plugins:**
- [ReaPlugs](https://www.reaper.fm/reaplugs/) โ EQ, compressor, gate, and more essentials (free)
- [RNNoise](https://github.com/werman/noise-suppression-for-voice) โ AI-powered real-time noise removal (free)
- [TDR Nova](https://www.tokyodawn.net/tdr-nova/) โ High-quality dynamic EQ (free)
- [OrilRiver](https://www.kvraudio.com/product/orilriver-by-denis-tihanov) โ Reverb (free)
After installing plugins, click **"Scan..."** in DirectPipe to scan your plugin folders. They will appear in the plugin list.
Discord / Zoom / OBS์์ ์ฒ๋ฆฌ๋ ๋ง์ดํฌ๋ฅผ ์ฐ๋ ค๋ฉด? / How to use with Discord, Zoom, or OBS?
๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ์ด ํ์ํฉ๋๋ค. Windows: [VB-Cable](https://vb-audio.com/Cable/) (๋ฌด๋ฃ), macOS: [BlackHole](https://existential.audio/blackhole/) (๋ฌด๋ฃ) ๋๋ [Loopback](https://rogueamoeba.com/loopback/), Linux: PipeWire virtual sink ๋๋ JACK.
**์ค์ ์์:**
1. ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ์ ์ค์น (Windows: VB-Cable ์ค์น ํ ์ฌ๋ถํ
, macOS: BlackHole ์ค์น, Linux: PipeWire/JACK ์ค์ )
2. DirectPipe **Audio** ํญ:
- **Input** โ ๋ด USB ๋ง์ดํฌ ์ ํ
- **Output** โ ๊ฐ์ ์ผ์ด๋ธ ์
๋ ฅ ์ ํ (์: Windows `CABLE Input`, macOS `BlackHole 2ch`)
3. Discord/Zoom/OBS ์์ฑ ์ค์ :
- **๋ง์ดํฌ** โ ๊ฐ์ ์ผ์ด๋ธ ์ถ๋ ฅ ์ ํ (์: Windows `CABLE Output`, macOS `BlackHole 2ch`)
4. ์๊ธฐ ๋ชฉ์๋ฆฌ๋ฅผ ํ์ธํ๋ ค๋ฉด **Output** ํญ์์ ํค๋ํฐ ์ฅ์น๋ฅผ ์ค์ ํ์ธ์
```
๋ด USB ๋ง์ดํฌ โ DirectPipe (๋
ธ์ด์ฆ ์ ๊ฑฐ, EQ ๋ฑ) โ Virtual Cable Input
โ
Discord/Zoom/OBS โ Virtual Cable Output (๋ง์ดํฌ๋ก ์ธ์)
```
---
You need a virtual audio cable. Windows: [VB-Cable](https://vb-audio.com/Cable/) (free), macOS: [BlackHole](https://existential.audio/blackhole/) (free) or [Loopback](https://rogueamoeba.com/loopback/), Linux: PipeWire virtual sink or JACK.
**Setup steps:**
1. Install a virtual audio cable (Windows: VB-Cable + reboot, macOS: BlackHole, Linux: configure PipeWire/JACK)
2. In DirectPipe **Audio** tab:
- **Input** โ Select your USB microphone
- **Output** โ Select virtual cable input (e.g., Windows `CABLE Input`, macOS `BlackHole 2ch`)
3. In Discord / Zoom / OBS voice settings:
- **Microphone** โ Select virtual cable output (e.g., Windows `CABLE Output`, macOS `BlackHole 2ch`)
4. To hear yourself, configure your headphone device in the **Output** tab
```
USB Mic โ DirectPipe (Noise removal, EQ, etc.) โ Virtual Cable Input
โ
Discord/Zoom/OBS โ Virtual Cable Output (recognized as mic)
```
์๋ฆฌ๊ฐ ์ ๋์์ / ๋ง์ดํฌ๊ฐ ์ธ์์ด ์ ๋ผ์ / No sound or mic not detected
**ํ์ธ ์์:**
1. **Audio ํญ** โ Input ์ฅ์น๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํ๋์ด ์๋์ง ํ์ธ
2. ์ผ์ชฝ **INPUT ๋ ๋ฒจ ๋ฏธํฐ**๊ฐ ์์ง์ด๋์ง ํ์ธ โ ์์ง์ด๋ฉด ๋ง์ดํฌ ์
๋ ฅ์ ์ ์
3. ๋ ๋ฒจ ๋ฏธํฐ๊ฐ ์์ง์ด์ง ์์ผ๋ฉด:
- **Windows**: ์ค์ โ ๊ฐ์ธ ์ ๋ณด โ ๋ง์ดํฌ์์ ์ฑ ์ ๊ทผ์ด ํ์ฉ๋์ด ์๋์ง ํ์ธ
- **macOS**: ์์คํ
์ค์ โ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฐ ๋ณด์ โ ๋ง์ดํฌ์์ DirectPipe ํ์ฉ
- **Linux**: PulseAudio/PipeWire ๋ณผ๋ฅจ ์ค์ ์์ ์
๋ ฅ ์ฅ์น ํ์ธ
- ๋ค๋ฅธ ์ฑ(Discord ๋ฑ)์ด ๋ง์ดํฌ๋ฅผ ๋
์ ๋ชจ๋๋ก ์ฌ์ฉ ์ค์ด๋ฉด ํด์
4. **OUT** ๋ฒํผ์ด ์ด๋ก์์ธ์ง ํ์ธ (๋นจ๊ฐ์์ด๋ฉด ๋ฎคํธ ์ํ โ ํด๋ฆญํด์ ํด์ )
5. **PANIC MUTE**๊ฐ ํ์ฑํ๋์ด ์์ผ๋ฉด ๋ค์ ํด๋ฆญํด์ ํด์
---
**Troubleshooting steps:**
1. **Audio tab** โ Make sure the correct Input device is selected
2. Check if the left **INPUT level meter** is moving โ if it moves, mic input is working
3. If the level meter doesn't move:
- **Windows**: Settings โ Privacy โ Microphone โ make sure app access is allowed
- **macOS**: System Settings โ Privacy & Security โ Microphone โ allow DirectPipe
- **Linux**: Check input device in PulseAudio/PipeWire volume settings
- If another app (e.g., Discord) is using the mic in exclusive mode, disable exclusive mode
4. Check that the **OUT** button is green (red means muted โ click to unmute)
5. If **PANIC MUTE** is active, click it again to deactivate
์๋ฆฌ๊ฐ ๋๊ธฐ๊ฑฐ๋ ์ง์ฐ์ด ์ปค์ / Audio crackling or high latency
**Buffer Size๋ฅผ ์กฐ์ ํ์ธ์:**
- Audio ํญ โ **Buffer Size**: ๊ฐ์ ๋ฎ์ถ๋ฉด ์ง์ฐ์ด ์ค์ง๋ง CPU ๋ถ๋ด ์ฆ๊ฐ
- `256 samples` (์ฝ 5ms @ 48kHz) โ ์ผ๋ฐ์ ์ธ ์์์
- `128 samples` (์ฝ 2.7ms) โ ๋ฎ์ ์ง์ฐ, ๊ณ ์ฌ์ PC ๊ถ์ฅ
- `512 samples` (์ฝ 10ms) โ ์์ ์ , ์ ์ฌ์ PC ๊ถ์ฅ
**๊ทธ๋๋ ๋๊ธด๋ค๋ฉด:**
- ํ๋ฌ๊ทธ์ธ ์๋ฅผ ์ค์ด๊ฑฐ๋, CPU๋ฅผ ๋ง์ด ์ฐ๋ ํ๋ฌ๊ทธ์ธ์ Bypass ์ฒ๋ฆฌ
- ์ค๋์ค ์ธํฐํ์ด์ค๊ฐ ์๋ค๋ฉด **ASIO** ๋๋ผ์ด๋ฒ ์ฌ์ฉ (Windows, ๋ ๋ฎ์ ์ง์ฐ ๊ฐ๋ฅ)
- ํ๋จ ์ํ ๋ฐ์ **CPU %** ์์น๋ฅผ ํ์ธ โ 60% ์ด์์ด๋ฉด ๊ณผ๋ถํ
- ํ๋จ ์ํ ๋ฐ์ **XRun** ์์น๋ฅผ ํ์ธ โ 1๋ถ๊ฐ ๋ฒํผ ์ธ๋๋ฐ ํ์ ํ์
- **Windows Audio (Low Latency)** ๋ชจ๋์์ ๋๊ธด๋ค๋ฉด โ **Windows Audio**๋ก ๋ณ๊ฒฝ ์๋ (FAQ์ ๋๋ผ์ด๋ฒ ๊ฐ์ด๋ ์ฐธ์กฐ)
- **macOS**: CoreAudio ๊ธฐ๋ณธ ๋ฒํผ ํฌ๊ธฐ ์กฐ์ (Audio MIDI Setup์์๋ ํ์ธ ๊ฐ๋ฅ)
- **Linux**: JACK ์ฌ์ฉ ์ `jackd` ์ค์ ์์ period/nperiods ์กฐ์
---
**Adjust the Buffer Size:**
- Audio tab โ **Buffer Size**: lower values reduce latency but increase CPU load
- `256 samples` (~5ms @ 48kHz) โ good starting point
- `128 samples` (~2.7ms) โ low latency, recommended for higher-end PCs
- `512 samples` (~10ms) โ stable, recommended for lower-end PCs
**Still crackling?**
- Reduce the number of plugins, or Bypass CPU-heavy ones
- If you have an audio interface, switch to **ASIO** driver (Windows, allows even lower latency)
- Check the **CPU %** in the bottom status bar โ above 60% indicates overload
- Check the **XRun** count in the status bar โ shows buffer underruns in the last 60 seconds
- **Windows**: If crackling in **Windows Audio (Low Latency)** โ try switching to **Windows Audio** (see Driver Guide FAQ)
- **macOS**: Adjust CoreAudio buffer size (also configurable in Audio MIDI Setup)
- **Linux**: With JACK, tune `jackd` period/nperiods settings
์ค๋์ค ๋๋ผ์ด๋ฒ ์ข
๋ฅ์ ์ ํ ๊ฐ์ด๋ / Audio Driver Types & Selection Guide
DirectPipe๋ ํ๋ซํผ๋ณ๋ก ๋ค๋ฅธ ์ค๋์ค ๋๋ผ์ด๋ฒ๋ฅผ ์ง์ํฉ๋๋ค. Audio ํญ์ **Driver** ๋๋กญ๋ค์ด์์ ์ ํํ ์ ์์ต๋๋ค.
- **Windows**: 5๊ฐ์ง ๋๋ผ์ด๋ฒ (์๋ ์์ธ ์ค๋ช
)
- **macOS**: **CoreAudio** โ macOS ๊ธฐ๋ณธ ์ค๋์ค ์์คํ
. ์ถ๊ฐ ์ค์ ์์ด ์๋ ๋์, ์ถฉ๋ถํ ๋ฎ์ ์ง์ฐ
- **Linux**: **ALSA** (๊ธฐ๋ณธ) ๋๋ **JACK** (์ ์ง์ฐ) โ JACK ์ฌ์ฉ ์ `jackd` ์คํ ํ์
DirectPipe supports different audio drivers per platform. Select from the **Driver** dropdown in the Audio tab.
- **Windows**: 5 driver types (detailed below)
- **macOS**: **CoreAudio** โ macOS native audio system. Works automatically with low latency, no extra setup
- **Linux**: **ALSA** (default) or **JACK** (low latency) โ JACK requires running `jackd`
**Windows ๋๋ผ์ด๋ฒ ์์ธ / Windows Driver Details:**
### DirectSound (๋ ๊ฑฐ์ / Legacy)
Windows XP ์์ ์ ์ค๋์ค API์
๋๋ค. JUCE๊ฐ ์๋์ผ๋ก ๋ฑ๋กํ๋ฉฐ ๋ชฉ๋ก์ ํ์๋์ง๋ง, **WASAPI๋ณด๋ค ์ง์ฐ์ด ํฌ๊ณ ๊ธฐ๋ฅ์ด ์ ํ์ ์ด๋ฏ๋ก ์ฌ์ฉํ ์ด์ ๊ฐ ์์ต๋๋ค.**
Legacy audio API from the Windows XP era. JUCE registers it automatically, but **it has higher latency and fewer features than WASAPI โ there is no reason to use it.**
- **์ง์ฐ / Latency**: 50-100ms+ (๊ฐ์ฅ ๋์ / highest)
- **๋ฒํผ ์ ์ด / Buffer control**: ์ ํ์ / Limited
- **๋ค๋ฅธ ์ฑ ๋์ ์ฌ์ฉ / Shared access**: O
- **์ถ์ฒ / Recommended for**: ์ฌ์ฉํ์ง ๋ง์ธ์. **Windows Audio**๋ฅผ ์ฐ์ธ์ / Don't use this. Use **Windows Audio**
### Windows Audio -- ์ถ์ฒ / Recommended
Windows WASAPI ๊ณต์ ๋ชจ๋. ๋ค๋ฅธ ์ฑ๊ณผ ๋์์ ๊ฐ์ ์ฅ์น๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. **๋๋ถ๋ถ์ ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ์์ ์ ์ธ ์ ํ์
๋๋ค.**
Windows WASAPI shared mode. Other apps can use the same device simultaneously. **The most reliable choice for most users.**
- **์ง์ฐ / Latency**: 3-10ms (๋ฒํผ ํฌ๊ธฐ์ ๋ฐ๋ผ / depends on buffer size)
- **๋ฒํผ ์ ์ด / Buffer control**: 144 samples (~3ms @ 48kHz)๋ถํฐ ์ ํ ๊ฐ๋ฅ / Selectable from 144 samples
- **๋ค๋ฅธ ์ฑ ๋์ ์ฌ์ฉ / Shared access**: O
- **์ถ์ฒ / Recommended for**: ๋๋ถ๋ถ์ ์ฌ์ฉ์, USB ๋ง์ดํฌ ์ฌ์ฉ์ / Most users, USB mic users
### Windows Audio (Low Latency)
WASAPI ๊ณต์ ๋ชจ๋์ด๋ฉด์ ์ ์ง์ฐ. Windows 10 1607+ ์์ IAudioClient3๋ฅผ ์ฌ์ฉํด ์ต์ ์ฃผ๊ธฐ(period)๋ก ๋์ํฉ๋๋ค.
Low-latency shared WASAPI mode. Uses IAudioClient3 on Windows 10 1607+ for minimum audio periods.
- **์ง์ฐ / Latency**: ํ๋์จ์ด์ ๋ฐ๋ผ ๋ค๋ฆ / Varies by hardware
- **๋ฒํผ ์ ์ด / Buffer control**: ํ๋์จ์ด๊ฐ ๋ณด๊ณ ํ ์ต์ ๋จ์๋ก ์ธ๋ฐ ์กฐ์ / Fine-grained, hardware-defined steps
- **๋ค๋ฅธ ์ฑ ๋์ ์ฌ์ฉ / Shared access**: O
- **์ฐธ๊ณ / Note**: USB ๋ง์ดํฌ ๋ฑ ๋ง์ ์ค๋์ค ์ฅ์น๊ฐ IAudioClient3๋ฅผ ์ ๋๋ก ์ง์ํ์ง ์์ต๋๋ค / Many audio devices (especially USB mics) don't properly support IAudioClient3
> **์ฃผ์ / Warning**: LL ๋ชจ๋์ ์ค์ ์ฑ๋ฅ์ **์ค๋์ค ๋๋ผ์ด๋ฒ์ IAudioClient3 ๊ตฌํ์ ์ ์ ์ผ๋ก ์์กด**ํฉ๋๋ค. ๋ง์ USB ๋ง์ดํฌ์ ์ผ๋ฐ ์ค๋์ค ์ฅ์น์ ๋๋ผ์ด๋ฒ๋ IAudioClient3์ `GetSharedModeEnginePeriod()`์์ ์ต์/์ต๋/๊ธฐ๋ณธ ์ฃผ๊ธฐ๋ฅผ ๋์ผํ ๊ฐ(์: 480 samples = 10ms)์ผ๋ก ๋ณด๊ณ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ **์ผ๋ฐ Windows Audio ๋ชจ๋๊ฐ ์คํ๋ ค ๋ ๋ฎ์ ๋ฒํผ(144 samples = ~3ms)๋ฅผ ์ฌ์ฉํ ์ ์์ด ์ง์ฐ์ด ๋ ์ ์ต๋๋ค.** LL ๋ชจ๋์์ ๋ฒํผ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ฑฐ๋ ์ผ๋ฐ ๋ชจ๋๋ณด๋ค ๋์ ์ง์ฐ์ด ๋ํ๋๋ค๋ฉด, **Windows Audio**๋ฅผ ์ฌ์ฉํ์ธ์.
>
> **Warning**: LL mode performance **depends entirely on your audio driver's IAudioClient3 implementation**. Many USB mics and generic audio devices report the same value for min/max/default period in `GetSharedModeEnginePeriod()` (e.g., 480 samples = 10ms). In such cases, **standard Windows Audio mode can actually achieve lower buffers (144 samples = ~3ms) and thus lower latency.** If you can't change the buffer size in LL mode or see higher latency than standard mode, use **Windows Audio** instead.
### Windows Audio (Exclusive Mode)
WASAPI ๋
์ ๋ชจ๋. ํด๋น ์ฅ์น๋ฅผ ์ฑ์ด ๋
์ ํ๋ฏ๋ก ๋ค๋ฅธ ์ฑ์ ์๋ฆฌ๊ฐ ๋์ง ์์ต๋๋ค.
WASAPI exclusive mode. The app takes exclusive control of the device -- other apps cannot output sound.
- **์ง์ฐ / Latency**: 10-20ms
- **๋ฒํผ ์ ์ด / Buffer control**: ์ฑ์ด ์ง์ ์ ์ด / App-controlled
- **๋ค๋ฅธ ์ฑ ๋์ ์ฌ์ฉ / Shared access**: **X** (๋
์ / exclusive)
- **์ถ์ฒ / Recommended for**: ๋
น์ ์ ์ฉ ํ๊ฒฝ / Dedicated recording setups
- **์ฐธ๊ณ / Note**: Windows ์ฌ์ด๋ ์ค์ > ์ฅ์น ์์ฑ > "์ฑ์ด ์ด ๊ธฐ๊ธฐ๋ฅผ ๋
์ ์ ์ผ๋ก ์ ์ด" ์ฒดํฌ ํ์ / Enable "Allow apps to take exclusive control" in Windows Sound settings
### ASIO
์ ๋ฌธ๊ฐ์ฉ ์ ์ง์ฐ ๋๋ผ์ด๋ฒ. ์ค๋์ค ์ธํฐํ์ด์ค์ ๋ค์ดํฐ๋ธ ASIO ๋๋ผ์ด๋ฒ๊ฐ ํ์ํฉ๋๋ค.
Professional low-latency driver. Requires native ASIO driver from your audio interface.
- **์ง์ฐ / Latency**: 2-5ms (๊ฐ์ฅ ๋ฎ์ / lowest)
- **๋ฒํผ ์ ์ด / Buffer control**: ASIO Control Panel์์ ์ธ๋ฐ ์กฐ์ / Fine control via ASIO Control Panel
- **๋ค๋ฅธ ์ฑ ๋์ ์ฌ์ฉ / Shared access**: ์ฅ์น์ ๋ฐ๋ผ ๋ค๋ฆ / Depends on device
- **์ถ์ฒ / Recommended for**: ์ ๋ฌธ๊ฐ, ์ค๋์ค ์ธํฐํ์ด์ค ์ฌ์ฉ์ / Pros, audio interface users
### Windows ๋น๊ต ์์ฝ / Windows Driver Comparison
| | DirectSound | Windows Audio | Low Latency | Exclusive Mode | ASIO |
|---|---|---|---|---|---|
| ์ง์ฐ / Latency | 50-100ms+ | **3-10ms** | ๋๋ผ์ด๋ฒ ์์กด / Driver-dependent | 10-20ms | **2-5ms** |
| ๋ค๋ฅธ ์ฑ ๋์ / Shared | O | O | O | X | - |
| ๋ฒํผ ์ธ๋ฐ๋ / Buffer granularity | ์ ํ์ / Limited | ๋ณดํต / Moderate | ๋๋ผ์ด๋ฒ ์์กด / Driver-dependent | ๋ณดํต / Moderate | **์ธ๋ฐ / Fine** |
| ํธํ์ฑ / Compatibility | ๋ชจ๋ ์ฅ์น / All | **๋ชจ๋ ์ฅ์น / All devices** | ์ ํ์ / Limited | ๋๋ถ๋ถ / Most | ์ ์ฉ ๋๋ผ์ด๋ฒ / Driver needed |
| ์ค์น / Setup | ์์ / None | ์์ / None | ์์ / None | ์์ / None | ๋๋ผ์ด๋ฒ ํ์ / Driver needed |
| ์ถ์ฒ / Recommended | X | **O** | ์ฅ์น์ ๋ฐ๋ผ / Depends | ๋
น์ ์ ์ฉ / Recording | ์ ๋ฌธ๊ฐ / Pro |
### ์ ํ ๊ฐ์ด๋ / Quick Selection Guide
**Windows:**
1. **USB ๋ง์ดํฌ ์ฌ์ฉ์** -> **Windows Audio** ์ฌ์ฉ (๊ฐ์ฅ ์์ ์ , ์ถฉ๋ถํ ๋ฎ์ ์ง์ฐ) / Use Windows Audio (most reliable, low enough latency)
2. **์ค๋์ค ์ธํฐํ์ด์ค๊ฐ ์๋ค๋ฉด** -> **ASIO** ์ฌ์ฉ (์ต์ ์ง์ฐ) / Use ASIO (lowest latency)
3. **LL ๋ชจ๋๋ฅผ ์๋ํด๋ดค๋๋ฐ ๋ฒํผ ๋ณ๊ฒฝ์ด ์ ๋๊ฑฐ๋ ์ง์ฐ์ด ๋๋ค๋ฉด** -> **Windows Audio**๋ก ๋์๊ฐ์ธ์ / If LL mode doesn't allow buffer changes or has higher latency, go back to Windows Audio
4. **๋
น์ ์ ์ฉ PC๋ผ๋ฉด** -> **Windows Audio (Exclusive Mode)** ๋ ๊ณ ๋ ค / Consider Exclusive Mode
**macOS:** CoreAudio ํ๋๋ง ์ฌ์ฉ (์ถ๊ฐ ์ ํ ๋ถํ์) / CoreAudio is the only option (no driver selection needed)
**Linux:** ์ผ๋ฐ ์ฌ์ฉ์ ALSA, ์ ์ง์ฐ์ด ํ์ํ๋ฉด JACK ์ฌ์ฉ / Use ALSA for general use, JACK for low latency
ํ๋ฌ๊ทธ์ธ ์ค์บ ์ค ํ๋ก๊ทธ๋จ์ด ๋ฉ์ถ ๊ฒ ๊ฐ์์ / Plugin scan seems stuck
ํ๋ฌ๊ทธ์ธ ์ค์บ์ **๋ณ๋ ํ๋ก์ธ์ค**์์ ์คํ๋๋ฏ๋ก DirectPipe๊ฐ ๋ฉ์ถ๊ฑฐ๋ ํฌ๋์ํ์ง ์์ต๋๋ค. ์ผ๋ถ ํ๋ฌ๊ทธ์ธ์ ์ค์บ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค (์ต๋ 5๋ถ).
- ํฌ๋์๋ฅผ ์ ๋ฐํ๋ ํ๋ฌ๊ทธ์ธ์ ์๋์ผ๋ก **๋ธ๋๋ฆฌ์คํธ**์ ๋ฑ๋ก๋์ด ๋ค์ ์ค์บ์์ ๊ฑด๋๋๋๋ค
- ์ค์บ ๋ก๊ทธ ํ์ธ: Windows `%AppData%/DirectPipe/scanner-log.txt`, macOS `~/Library/Application Support/DirectPipe/scanner-log.txt`, Linux `~/.config/DirectPipe/scanner-log.txt`
---
Plugin scanning runs in a **separate process**, so a plugin scan crash should not take down the main DirectPipe app. Some plugins may take a while to scan (up to 5 minutes).
- Plugins that cause crashes are automatically **blacklisted** and skipped in future scans
- Scan log: Windows `%AppData%/DirectPipe/scanner-log.txt`, macOS `~/Library/Application Support/DirectPipe/scanner-log.txt`, Linux `~/.config/DirectPipe/scanner-log.txt`
ํ๋ฆฌ์
์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์? / How to use presets?
**Quick Preset Slots (AโE):**
- ํ์ฌ ํ๋ฌ๊ทธ์ธ ์ฒด์ธ๊ณผ ์ค์ ์ **AโE** ์ฌ๋กฏ์ ์ ์ฅํ ์ ์์ต๋๋ค
- ์ฌ๋กฏ ๋ฒํผ **(A/B/C/D/E)** ํด๋ฆญ โ ๋น์ด์์ผ๋ฉด ํ์ฌ ์ํ ์ ์ฅ, ์ฐจ์์ผ๋ฉด ํด๋น ์ฌ๋กฏ ๋ก๋
- ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ด๋ฉด ํ๋ผ๋ฏธํฐ๋ง ๋ฐ๊ฟ์ **์ฆ์ ์ ํ**, ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ด๋ฉด **๋น๋๊ธฐ ๋ก๋ฉ** (ํ๋ฆฌ๋ก๋ฉ ์บ์๋ก ๋๊น ์์ด ์ฆ์ ์ ํ)
- ์ฌ๋กฏ **์ฐํด๋ฆญ** โ **์ด๋ฆ ๋ณ๊ฒฝ** (์: `A|๊ฒ์`), **๋ณต์ **, **์ญ์ **, **๋ด๋ณด๋ด๊ธฐ/๊ฐ์ ธ์ค๊ธฐ** (`.dppreset`)
- **Save/Load** ๋ฒํผ์ผ๋ก .dppreset ํ์ผ์ ํ๋ฆฌ์
์ ์ฅ/๋ถ๋ฌ์ค๊ธฐ ๊ฐ๋ฅ
์: ๊ฒ์ ์ค์ **A|๊ฒ์** (๋
ธ์ด์ฆ ์ ๊ฑฐ๋ง), ๋
ธ๋๋ฐฉ์์ **B|๋
ธ๋** (๋ฆฌ๋ฒ๋ธ + ์ปดํ๋ ์)
---
**Quick Preset Slots (AโE):**
- Save your current plugin chain and settings to slots **A through E**
- Click a slot button **(A/B/C/D/E)** โ saves current state if empty, loads slot if occupied
- If the plugins are the same, only parameters change (**near-instant switch**); different plugins use **async loading** (preloading cache can shorten the transition)
- **Right-click** slot โ **Rename** (e.g., `A|Game`), **Copy**, **Delete**, **Export/Import** (`.dppreset`)
- Use **Save/Load** buttons to save/load presets as .dppreset files
Example: Slot **A|Game** for gaming (noise removal only), Slot **B|Karaoke** for karaoke (reverb + compressor)
Monitor ์ถ๋ ฅ์ ๋ญ๊ฐ์? / What is Monitor output?
**Monitor**๋ ์๊ธฐ ๋ชฉ์๋ฆฌ๋ฅผ ํค๋ํฐ์ผ๋ก ์ค์๊ฐ ํ์ธํ๋ ๊ธฐ๋ฅ์
๋๋ค. VST ์ดํํธ๊ฐ ์ ์ฉ๋ ์์ ์ ๋ชฉ์๋ฆฌ๋ฅผ ๋ค์ ์ ์์ต๋๋ค.
- **Output** ํญ์์ ํค๋ํฐ์ด ์ฐ๊ฒฐ๋ ์ค๋์ค ์ฅ์น๋ฅผ ์ ํ
- Main Output๊ณผ๋ ๋ณ๋์ ์ค๋์ค ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ฏ๋ก **๋
๋ฆฝ์ ์ผ๋ก ๋์** (Windows: WASAPI, macOS: CoreAudio)
- **MON** ๋ฒํผ์ผ๋ก ์ผ๊ธฐ/๋๊ธฐ
> **์ง์ฐ(๋ ์ดํด์) ์ฐธ๊ณ **: ๋ชจ๋ํฐ ์ถ๋ ฅ์ ๋ฉ์ธ ์ค๋์ค์ ๋ณ๋์ ์ค๋์ค ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ์ฅ์น/๋๋ผ์ด๋ฒ/๋ฒํผ ์ค์ ์ ๋ฐ๋ผ ๋ณดํต **์ถ๊ฐ ์ง์ฐ์ด ๋๊ปด์ง ์ ์์ต๋๋ค**. ๋ง์ ํ๊ฒฝ์์ ๋๋ต `~15-20ms` ์์ค์ด์ง๋ง ์์คํ
์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๊ฐ์ฅ ๋ฎ์ ๋ชจ๋ํฐ ์ง์ฐ์ด ํ์ํ๋ค๋ฉด **ASIO ๋๋ผ์ด๋ฒ ์ฌ์ฉ** (Windows, ์
์ถ๋ ฅ์ด ํ๋์ ๋๋ฐ์ด์ค๋ก ์ฒ๋ฆฌ๋จ) ๋๋ ์ค๋์ค ์ธํฐํ์ด์ค์ **ํ๋์จ์ด ๋ค์ด๋ ํธ ๋ชจ๋ํฐ๋ง** ๊ธฐ๋ฅ์ ๊ถ์ฅํฉ๋๋ค.
---
**Monitor** lets you hear your own processed voice through headphones in real-time, with all VST effects applied.
- Select your headphone device in the **Output** tab
- Uses a separate audio device from the Main Output, so it **works independently** (Windows: WASAPI, macOS: CoreAudio)
- Toggle on/off with the **MON** button
> **Latency note**: Monitor output uses a separate audio device, so you will usually hear some extra latency depending on the device, driver, and buffer settings. In many setups this is roughly `~15-20ms`, but it can vary by system. For the lowest monitor latency, use an **ASIO driver** (Windows only, single device handles both input and output) or your audio interface's **hardware direct monitoring** feature.
์ปดํจํฐ ์์ํ ๋ ์๋์ผ๋ก ์คํ๋๊ฒ ํ๋ ค๋ฉด? / How to auto-start at login?
๋ ๊ฐ์ง ๋ฐฉ๋ฒ:
1. **์์คํ
ํธ๋ ์ด** ์์ด์ฝ ์ฐํด๋ฆญ โ ์๋ ์์ ์ฒดํฌ
2. **Settings** ํญ โ ์๋ ์์ ์ฒดํฌ
๋ผ๋ฒจ์ ํ๋ซํผ๋ณ๋ก ๋ค๋ฆ
๋๋ค: Windows/Linux "Start with System", macOS "Open at Login".
ํ์ฑํํ๋ฉด ๋ก๊ทธ์ธ ์ ์๋์ผ๋ก ํธ๋ ์ด์์ ์คํ๋ฉ๋๋ค. X ๋ฒํผ์ผ๋ก ์ฐฝ์ ๋ซ์๋ ํธ๋ ์ด์ ๋จ์์ ๊ณ์ ๋์ํฉ๋๋ค.
- **Windows**: ๋ ์ง์คํธ๋ฆฌ (`HKCU\...\Run`)
- **macOS**: LaunchAgent (`~/Library/LaunchAgents/`)
- **Linux**: XDG autostart (`~/.config/autostart/`)
---
Two ways to enable:
1. Right-click the **system tray** icon โ check the auto-start toggle
2. **Settings** tab โ check the auto-start toggle
The label adapts to your platform: Windows/Linux "Start with System", macOS "Open at Login".
Once enabled, DirectPipe launches automatically at login. Closing the window (X button) minimizes it to the tray โ it keeps running in the background.
- **Windows**: Registry (`HKCU\...\Run`)
- **macOS**: LaunchAgent (`~/Library/LaunchAgents/`)
- **Linux**: XDG autostart (`~/.config/autostart/`)
Stream Deck ํ๋ฌ๊ทธ์ธ์ ์ด๋์ ๋ฐ๋์? / Where to get the Stream Deck plugin?
**[Elgato Marketplace์์ ๋ฌด๋ฃ ์ค์น](https://marketplace.elgato.com/product/directpipe-29f7cbb8-cb90-425d-9dbc-b2158e7ea8b3)** โ Stream Deck ์ฑ์์ ๋ฐ๋ก ์ค์น๋ฉ๋๋ค.
**[Install free from Elgato Marketplace](https://marketplace.elgato.com/product/directpipe-29f7cbb8-cb90-425d-9dbc-b2158e7ea8b3)** โ Installs directly into the Stream Deck app.
์ง์ ์ก์
(10์ข
): Bypass Toggle, Volume Control (SD+ ๋ค์ด์ผ), Preset Switch, Monitor Toggle, Panic Mute, Recording Toggle, IPC Toggle, Performance Monitor, Plugin Parameter (SD+ ๋ค์ด์ผ), Preset Bar (SD+ ํฐ์น์คํฌ๋ฆฐ)
Supported actions (10): Bypass Toggle, Volume Control (SD+ dial), Preset Switch, Monitor Toggle, Panic Mute, Recording Toggle, IPC Toggle, Performance Monitor, Plugin Parameter (SD+ dial), Preset Bar (SD+ touchscreen)
Stream Deck ์์ด๋ ์ธ๋ถ ์ ์ด๊ฐ ๋๋์? / Can I control without a Stream Deck?
๋ค! ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค:
Yes! Multiple control methods are available:
| ๋ฐฉ๋ฒ / Method | ์์ / Example | ์ ํฉํ ์ฉ๋ / Best for |
|---|---|---|
| **ํค๋ณด๋ ๋จ์ถํค / Hotkeys** | Ctrl+Shift+1โ9 bypass, F1โF5 ํ๋ฆฌ์
/ presets | ๊ฐ์ฅ ๊ฐํธ / Simplest |
| **MIDI CC** | ๋ฏธ๋ ์ปจํธ๋กค๋ฌ ๋
ธ๋ธ/๋ฒํผ / MIDI controller knobs | ์ค์๊ฐ ๋ณผ๋ฅจ ์กฐ์ / Real-time volume |
| **HTTP API** | `curl http://localhost:8766/api/...` | ์คํฌ๋ฆฝํธ ์๋ํ / Script automation |
| **WebSocket** | ws://localhost:8765 | ์ปค์คํ
์ฑ/๋ด ์ฐ๋ / Custom app integration |
์์ธํ ๋ด์ฉ / Details: [Control API](docs/CONTROL_API.md)
DirectPipe Receiver ํ๋ฌ๊ทธ์ธ์ด ๋ญ๊ฐ์? / What is the DirectPipe Receiver plugin?
**DirectPipe Receiver**๋ DirectPipe์์ ์ฒ๋ฆฌํ ๋ง์ดํฌ ์ค๋์ค๋ฅผ **OBS, DAW ๋ฑ**์์ ์ง์ ๋ฐ์ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ์
๋๋ค. VST2, VST3, AU ํฌ๋งท์ผ๋ก ์ ๊ณต๋ฉ๋๋ค (OBS๋ VST2๋ง ์ง์).
๋ณดํต DirectPipe์์ ์ฒ๋ฆฌ๋ ์ค๋์ค๋ฅผ OBS๋ก ๋ณด๋ด๋ ค๋ฉด ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ (VB-Cable, BlackHole ๋ฑ)์ด ํ์ํฉ๋๋ค. DirectPipe Receiver๋ฅผ ์ฌ์ฉํ๋ฉด **๊ฐ์ ์ผ์ด๋ธ ์์ด** ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(IPC)๋ฅผ ํตํด ์ค๋์ค๋ฅผ ์ง์ ๋ฐ์ ์ ์์ด ์ค์ ์ด ๋ ๊ฐ๋จํ๊ณ ์ง์ฐ๋ ์ ์ต๋๋ค.
---
**DirectPipe Receiver** is a plugin that lets **OBS, DAWs, and other hosts** receive DirectPipe's processed mic audio directly. Available in VST2, VST3, and AU formats (OBS only supports VST2).
Normally, to route DirectPipe's processed audio to OBS, you need a **virtual audio cable** (VB-Cable, BlackHole, etc.). With the DirectPipe Receiver, you can receive audio directly via shared memory (IPC) โ **no virtual cable needed**, usually simpler to set up, and often lower-latency or more predictable than virtual-cable routing depending on the host and driver setup.
**DirectPipe Receiver vs. Virtual Cable ๋น๊ต / Comparison:**
| | DirectPipe Receiver | ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ / Virtual Audio Cable |
|---|---|---|
| ์ค์น / Install | Receiver ํ๋ฌ๊ทธ์ธ์ VST/AU ํด๋์ ๋ณต์ฌ / Copy plugin to VST/AU folder | ๊ฐ์ ์ผ์ด๋ธ ์ค์น (VB-Cable/BlackHole ๋ฑ) / Install virtual cable |
| ์ค์ / Setup | OBS/DAW์์ ํ๋ฌ๊ทธ์ธ ํํฐ ์ถ๊ฐ๋ง ํ๋ฉด ๋จ / Just add plugin filter in OBS/DAW | DirectPipe Output + OBS Input ์์ชฝ ์ค์ ํ์ / Configure both sides |
| ์ง์ฐ / Latency | ~5โ85ms (ํ๋ฆฌ์
์ ํ ๊ฐ๋ฅ) / Configurable | ๋๋ผ์ด๋ฒ์ ์์กด / Depends on driver |
| ์ถ๊ฐ ์ํํธ์จ์ด / Extra software | ๋ถํ์ / None needed | ๊ฐ์ ์ผ์ด๋ธ ํ์ (VB-Cable/BlackHole ๋ฑ) / Virtual cable required |
| ํธํ์ฑ / Compatibility | VST2/VST3/AU ์ง์ ์ฑ / VST2/VST3/AU-capable apps | ๋ชจ๋ ์ฑ / Any app |
| ์ถ์ฒ / Recommended for | OBS, DAW ์ฌ์ฉ์ / OBS, DAW users | Discord, Zoom ๋ฑ ์ผ๋ฐ ์ฑ / General apps |
OBS์์ Receiver VST2๋ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์? / How to use the Receiver VST2 in OBS?
**OBS์์ Receiver VST2 ์ค์ ํ๊ธฐ (OBS๋ VST2๋ง ์ง์):**
1. **Receiver ํ๋ฌ๊ทธ์ธ**์ VST2 ํด๋์ ๋ณต์ฌ
- **Windows**: `DirectPipe Receiver.dll` โ `C:\Program Files\VSTPlugins\` (๊ถ์ฅ), `C:\Program Files\Common Files\VST2\`, ๋๋ `C:\Program Files\Steinberg\VstPlugins\`
- **macOS**: `DirectPipe Receiver.vst` โ `/Library/Audio/Plug-Ins/VST/` ๋๋ `~/Library/Audio/Plug-Ins/VST/`
- **Linux**: `DirectPipe Receiver.so` โ `/usr/lib/vst/` ๋๋ `~/.vst/`
2. **DirectPipe**์์ IPC ์ถ๋ ฅ ์ผ๊ธฐ
- DirectPipe ์คํ โ ํ๋จ์ **VST** ๋ฒํผ ํด๋ฆญ (์ด๋ก์์ผ๋ก ๋ณ๊ฒฝ)
- ๋๋: **Output** ํญ์์ **"Enable VST Receiver Output"** ์ฒดํฌ
- ๋๋: ์ฌ์ฉ์ ์ ์ ๋จ์ถํค (Controls > Hotkeys์์ IPC Toggle์ ๋จ์ถํค ํ ๋น)
3. **OBS** ์ค์
- OBS ์คํ โ **์์ค** ์์ญ์์ ์ค๋์ค ์์ค(๋ง์ดํฌ ๋ฑ) ์ ํ โ **ํํฐ** ํด๋ฆญ
- **"+" ๋ฒํผ** โ **"VST 2.x ํ๋ฌ๊ทธ์ธ"** ์ ํ
- ํ๋ฌ๊ทธ์ธ ๋ชฉ๋ก์์ **"DirectPipe Receiver"** ์ ํ
- **"ํ๋ฌ๊ทธ์ธ ์ธํฐํ์ด์ค ์ด๊ธฐ"** ํด๋ฆญํ๋ฉด ์ฐ๊ฒฐ ์ํ์ ๋ฒํผ ์ค์ ํ์ธ ๊ฐ๋ฅ
4. **์ฐ๊ฒฐ ํ์ธ**
- Receiver ํ๋ฌ๊ทธ์ธ UI์์ **"Connected"** (์ด๋ก์ ์)์ด ํ์๋๋ฉด ์ ์
- "Disconnected" (๋นจ๊ฐ์)์ด๋ฉด DirectPipe๊ฐ ์คํ ์ค์ด๊ณ IPC๊ฐ ์ผ์ ธ ์๋์ง ํ์ธ
```
DirectPipe (๋ง์ดํฌ + VST ์ดํํธ)
โ IPC (๊ณต์ ๋ฉ๋ชจ๋ฆฌ)
OBS [DirectPipe Receiver VST ํํฐ]
โ
๋ฐฉ์ก / ๋
นํ
```
---
**Setting up Receiver VST2 in OBS (OBS only supports VST2):**
1. **Copy the Receiver plugin** to a VST2 folder:
- **Windows**: `DirectPipe Receiver.dll` โ `C:\Program Files\VSTPlugins\` (Recommended), `C:\Program Files\Common Files\VST2\`, or `C:\Program Files\Steinberg\VstPlugins\`
- **macOS**: `DirectPipe Receiver.vst` โ `/Library/Audio/Plug-Ins/VST/` or `~/Library/Audio/Plug-Ins/VST/`
- **Linux**: `DirectPipe Receiver.so` โ `/usr/lib/vst/` or `~/.vst/`
2. **Enable IPC output in DirectPipe**
- Run DirectPipe โ click the **VST** button at the bottom (turns green)
- Or: **Output** tab โ check **"Enable VST Receiver Output"**
- Or: user-defined hotkey (assign a key combo to IPC Toggle in Controls > Hotkeys)
3. **Configure OBS**
- Open OBS โ select an audio source (e.g., mic) โ click **Filters**
- Click **"+"** โ select **"VST 2.x Plug-in"**
- Choose **"DirectPipe Receiver"** from the plugin list
- Click **"Open Plug-in Interface"** to verify connection and adjust buffer settings
4. **Verify connection**
- In the Receiver plugin UI, **"Connected"** with a green circle = working
- If "Disconnected" (red), check that DirectPipe is running and IPC is enabled
```
DirectPipe (Mic + VST Effects)
โ IPC (Shared Memory)
OBS [DirectPipe Receiver VST Filter]
โ
Stream / Recording
```
Receiver ํ๋ฌ๊ทธ์ธ์์ ๋๊น/์ง์ฐ์ด ์์ด์ / Audio crackling or latency with DirectPipe Receiver
**๋ฒํผ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ธ์:**
Receiver ํ๋ฌ๊ทธ์ธ UI๋ฅผ ์ด๋ฉด **Buffer** ๋๋กญ๋ค์ด์์ ๋ฒํผ ํฌ๊ธฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
| ํ๋ฆฌ์
| ์ง์ฐ | ๊ถ์ฅ ์ํฉ |
|---|---|---|
| **Ultra Low** | ~5ms | ์ค์๊ฐ ๋ชจ๋ํฐ๋ง์ด ์ค์ํ ๋ (๋๊น ๊ฐ๋ฅ์ฑ ์์) |
| **Low** (๊ธฐ๋ณธ) | ~10ms | ๋๋ถ๋ถ์ ์ํฉ์ ์ ํฉ |
| **Medium** | ~21ms | ์์ ์ ์ธ ์ฐ๊ฒฐ |
| **High** | ~42ms | CPU ์ฌ์ฉ๋์ด ๋์ ๋ |
| **Safe** | ~85ms | ๋๊น์ด ์์ฃผ ๋ฐ์ํ ๋ |
**์ฌ์ ํ ๋๊ธด๋ค๋ฉด:**
- ํ ๋จ๊ณ ๋์ ๋ฒํผ ํ๋ฆฌ์
์ ์ ํํ์ธ์
- DirectPipe์ OBS์ **์ํ๋ ์ดํธ๋ฅผ ๋์ผํ๊ฒ** ๋ง์ถ์ธ์ (์: ๋ ๋ค 48000Hz)
- CPU ์ฌ์ฉ๋์ ํ์ธํ์ธ์ โ DirectPipe ํ๋จ ์ํ ๋ฐ์์ ํ์ธ ๊ฐ๋ฅ
---
**Adjust the buffer size:**
Open the Receiver plugin interface and select a buffer size from the **Buffer** dropdown.
| Preset | Latency | Recommended for |
|---|---|---|
| **Ultra Low** | ~5ms | When real-time monitoring matters (risk of dropouts) |
| **Low** (default) | ~10ms | Most situations |
| **Medium** | ~21ms | Stable connection |
| **High** | ~42ms | When CPU load is high |
| **Safe** | ~85ms | If you experience frequent dropouts |
**Still getting dropouts?**
- Select a higher buffer preset
- Make sure DirectPipe and OBS use the **same sample rate** (e.g., both at 48000Hz)
- Check CPU usage โ visible in DirectPipe's bottom status bar
DirectPipe Receiver์ ๊ฐ์ ์ผ์ด๋ธ ์ค ๋ญ ์จ์ผ ํ๋์? / Should I use DirectPipe Receiver or Virtual Cable?
**์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค:**
**DirectPipe Receiver๋ฅผ ์ถ์ฒํ๋ ๊ฒฝ์ฐ:**
- **OBS**์์ DirectPipe ์ค๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ (OBS๋ VST2 ์ง์)
- **DAW**์์ DirectPipe ์ค๋์ค๋ฅผ ๋ฐ์ ์ถ๊ฐ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ (VST3/AU ์ฌ์ฉ ๊ฐ๋ฅ)
- ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ์ ์ค์นํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ
- ์ค์ ์ ์ต์ํํ๊ณ ์ถ์ ๊ฒฝ์ฐ
**๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ์ ์ถ์ฒํ๋ ๊ฒฝ์ฐ (VB-Cable/BlackHole/PipeWire):**
- **Discord, Zoom, Google Meet** ๋ฑ VST ํ๋ฌ๊ทธ์ธ์ ์ง์ํ์ง ์๋ ์ฑ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ์ฌ๋ฌ ์ฑ์์ ๋์์ DirectPipe ์ค๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ
- OBS ์ด์ธ์ ์ฑ์์๋ ๊ฐ์ ๋ง์ดํฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
**๋ ๋ค ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค!**
- DirectPipe Output โ ๊ฐ์ ์ผ์ด๋ธ (Discord/Zoom์ฉ)
- DirectPipe IPC โ Receiver VST2 (OBS์ฉ)
- ์ด๋ ๊ฒ ํ๋ฉด Discord์๋ ๊ฐ์ ์ผ์ด๋ธ๋ก, OBS์๋ DirectPipe Receiver๋ก ๋์์ ์ค๋์ค๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค
---
**Depends on your use case:**
**Use DirectPipe Receiver when:**
- Using DirectPipe audio in **OBS** (OBS supports VST2)
- Using DirectPipe audio in a **DAW** (VST3/AU available)
- Don't want to install virtual audio cable software
- Want minimal setup
**Use a virtual audio cable (VB-Cable/BlackHole/PipeWire) when:**
- Using apps that **don't support VST plugins** (Discord, Zoom, Google Meet, etc.)
- Need to use DirectPipe audio in multiple apps simultaneously
- Need a virtual microphone for non-OBS apps
**You can use both at the same time!**
- DirectPipe Output โ Virtual cable (for Discord/Zoom)
- DirectPipe IPC โ Receiver VST2 (for OBS)
- This lets you send audio to Discord via virtual cable and to OBS via DirectPipe Receiver simultaneously
IPC ์ถ๋ ฅ(VST ๋ฒํผ)์ ๋ญ๊ฐ์? ์ผ์ผ ํ๋์? / What is IPC Output (VST button)? Do I need to enable it?
**IPC(Inter-Process Communication) ์ถ๋ ฅ**์ DirectPipe์์ ์ฒ๋ฆฌํ ์ค๋์ค๋ฅผ **๊ณต์ ๋ฉ๋ชจ๋ฆฌ**๋ฅผ ํตํด ๋ค๋ฅธ ํ๋ก์ธ์ค(DirectPipe Receiver ํ๋ฌ๊ทธ์ธ)์ ์ ๋ฌํ๋ ๊ธฐ๋ฅ์
๋๋ค.
**๊ธฐ๋ณธ๊ฐ์ ๊บผ์ ธ(OFF) ์์ต๋๋ค.** ๊ฐ์ ์ค๋์ค ์ผ์ด๋ธ (VB-Cable, BlackHole ๋ฑ)๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ผค ํ์๊ฐ ์์ต๋๋ค.
**์ผ์ผ ํ๋ ๊ฒฝ์ฐ:**
- OBS์์ **DirectPipe Receiver VST2** ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ๋
- ๊ฐ์ ์ผ์ด๋ธ ์์ด OBS๋ก ์ค๋์ค๋ฅผ ์ง์ ๋ณด๋ด๊ณ ์ถ์ ๋
**์ผ๋ ๋ฐฉ๋ฒ (5๊ฐ์ง):**
1. DirectPipe ๋ฉ์ธ ํ๋ฉด ํ๋จ์ **VST** ๋ฒํผ ํด๋ฆญ
2. **Output** ํญ โ **"Enable VST Receiver Output"** ์ฒดํฌ
3. ์ฌ์ฉ์ ์ ์ ๋จ์ถํค (Controls > Hotkeys์์ IPC Toggle์ ๋จ์ถํค ํ ๋น)
4. Stream Deck **IPC Toggle** ๋ฒํผ
5. HTTP API: `curl http://localhost:8766/api/ipc/toggle`
์ผ๋ฉด VST ๋ฒํผ์ด **์ด๋ก์**์ผ๋ก ๋ณํ๊ณ , ๋๋ฉด **๋นจ๊ฐ์**์
๋๋ค.
---
**IPC (Inter-Process Communication) Output** sends DirectPipe's processed audio to another process (the DirectPipe Receiver plugin) via **shared memory**.
**It's OFF by default.** If you only use a virtual audio cable (VB-Cable, BlackHole, etc.), you don't need to enable it.
**Enable it when:**
- Using the **DirectPipe Receiver VST2** plugin in OBS
- Want to route audio to OBS without a virtual cable
**How to enable (5 ways):**
1. Click the **VST** button at the bottom of DirectPipe's main window
2. **Output** tab โ check **"Enable VST Receiver Output"**
3. User-defined hotkey (assign a key combo to IPC Toggle in Controls > Hotkeys)
4. Stream Deck **IPC Toggle** button
5. HTTP API: `curl http://localhost:8766/api/ipc/toggle`
When enabled, the VST button turns **green**; when disabled, it's **red**.
์
๋ฐ์ดํธ๋ ์ด๋ป๊ฒ ํ๋์? / How to update DirectPipe?
DirectPipe๋ **์ธ์ฑ ์
๋ฐ์ดํธ ์๋ฆผ**์ ์ง์ํฉ๋๋ค. ์ ๋ฒ์ ์ด ์์ผ๋ฉด ํ๋จ credit ๋ผ๋ฒจ์ **"NEW vX.Y.Z"** ๊ฐ ์ฃผํฉ์์ผ๋ก ํ์๋ฉ๋๋ค.
**Windows**: "Update Now" ๋ฒํผ์ผ๋ก ์๋ ๋ค์ด๋ก๋ โ exe ๊ต์ฒด โ ์ฌ์์.
**macOS/Linux**: "View on GitHub" ๋ฒํผ์ผ๋ก ๋ฆด๋ฆฌ์ฆ ํ์ด์ง์์ ์๋ ๋ค์ด๋ก๋.
์ธํฐ๋ท์ด ์ฐ๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ์๋ ๊ธฐ์กด ๋ฒ์ ์ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค.
---
DirectPipe includes **in-app update notification**. When a newer version is available, the bottom credit label shows **"NEW vX.Y.Z"** in orange.
**Windows**: Click "Update Now" for auto-download โ replace exe โ restart.
**macOS/Linux**: Click "View on GitHub" to manually download from the release page.
If you're offline, the current version continues to work normally.
ASIO๋ฅผ ์ ํํ๋๋ฐ ๋ค๋ฅธ ์ฑ์์ ์๋ฆฌ๊ฐ ์ ๋์ / Other apps lose audio when ASIO is selected
ASIO ๋๋ผ์ด๋ฒ๋ ์ค๋์ค ์ฅ์น๋ฅผ **๋
์ (Exclusive)** ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. DirectPipe๊ฐ ASIO๋ก ์ค๋์ค ์ฅ์น๋ฅผ ์ด๋ฉด, ๋ค๋ฅธ ์ฑ(Discord, ๋ธ๋ผ์ฐ์ ๋ฑ)์ด ๊ฐ์ ์ฅ์น์ ์ ๊ทผํ ์ ์์ต๋๋ค.
**ํด๊ฒฐ ๋ฐฉ๋ฒ:**
1. **WASAPI Shared ์ฌ์ฉ (๊ถ์ฅ)** โ Audio ํญ > Driver Type์ "Windows Audio"๋ก ๋ณ๊ฒฝ. ๋ค๋ฅธ ์ฑ๊ณผ ์ฅ์น๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
2. **ASIO4ALL ์ฌ์ฉ** โ ์ฌ๋ฌ ์ฅ์น๋ฅผ ํ๋์ ๊ฐ์ ASIO ์ฅ์น๋ก ๋ฌถ์ ์ ์์ง๋ง, ์ง์ฐ์ด ๋ค์ ์ฆ๊ฐํฉ๋๋ค.
3. **์ ์ฉ ์ค๋์ค ์ธํฐํ์ด์ค ์ฌ์ฉ** โ Focusrite, SSL ๋ฑ ์ ์ฉ ์ธํฐํ์ด์ค์ ASIO ๋๋ผ์ด๋ฒ๋ ํด๋น ์ฅ์น๋ง ๋
์ ํ๋ฏ๋ก, ๋ด์ฅ ์ฌ์ด๋์นด๋๋ ๋ค๋ฅธ ์ฑ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
---
ASIO drivers use **exclusive access** to the audio device. When DirectPipe opens a device via ASIO, other apps (Discord, browser, etc.) cannot access it.
**Solutions:**
1. **Use WASAPI Shared (recommended)** โ Change Driver Type to "Windows Audio" in Audio tab. Shares the device with other apps.
2. **Use ASIO4ALL** โ Combines multiple devices into one virtual ASIO device, but adds some latency.
3. **Use a dedicated audio interface** โ Focusrite, SSL, etc. Their ASIO driver only locks the interface, leaving the built-in sound card free for other apps.
ํ๋ฌ๊ทธ์ธ์ด ์ค์บ ๋ชฉ๋ก์ ์ ๋์์ (64-bit ์ ์ฉ) / Plugin not showing in scan results (64-bit only)
DirectPipe๋ **64-bit VST2/VST3 ํ๋ฌ๊ทธ์ธ๋ง** ์ง์ํฉ๋๋ค. 32-bit ํ๋ฌ๊ทธ์ธ์ ํ์๋์ง ์์ต๋๋ค.
**์ฒดํฌ๋ฆฌ์คํธ:**
1. **64-bit์ธ์ง ํ์ธ** โ 32-bit ์ ์ฉ ํ๋ฌ๊ทธ์ธ์ ์ง์๋์ง ์์ต๋๋ค
2. **VST ๊ฒฝ๋ก ํ์ธ** โ Audio ํญ > Scan Plugins > ์ค์บ ๊ฒฝ๋ก์ ํ๋ฌ๊ทธ์ธ ํด๋๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
3. **๋ธ๋๋ฆฌ์คํธ ํ์ธ** โ ์ด์ ์ค์บ์์ ํฌ๋์ํ ํ๋ฌ๊ทธ์ธ์ ๋ธ๋๋ฆฌ์คํธ์ ๋ฑ๋ก๋ฉ๋๋ค. Settings > Clear Plugin Cache๋ก ์ด๊ธฐํ ํ ์ฌ์ค์บ
4. **ํ๋ฌ๊ทธ์ธ ์ฌ์ค์น** โ ๊ฐํน ์์๋ DLL/VST3 ๋ฒ๋ค์ ์ค์บ๋๊ฐ ๊ฑด๋๋๋๋ค
---
DirectPipe only supports **64-bit VST2/VST3 plugins**. 32-bit plugins won't appear.
**Checklist:**
1. **Verify 64-bit** โ 32-bit-only plugins are not supported
2. **Check VST paths** โ Audio tab > Scan Plugins > verify plugin folder is in scan paths
3. **Check blacklist** โ Plugins that crashed during previous scans are blacklisted. Reset via Settings > Clear Plugin Cache, then re-scan
4. **Reinstall plugin** โ Corrupted DLL/VST3 bundles may be silently skipped
ํ๋ฆฌ์
์ ํํ ๋ ์๋ฆฌ๊ฐ ์ ๊น ๋๊ฒจ์ / Brief audio gap when switching presets
ํ๋ฆฌ์
์ ํ ์ **๋งค์ฐ ์งง์ ์ค๋์ค ๊ฐญ**์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ฐ์ ์ฒด์ธ ์ ํ์ด๋ ์บ์ ํํธ ์ํฉ์์๋ ํํ `~10-50ms` ์์ค์ด์ง๋ง, ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ๊ณผ ์์คํ
์ํ์ ๋ฐ๋ผ ๋ ๊ธธ์ด์ง ์ ์์ต๋๋ค. ์ด๊ฒ์ **Keep-Old-Until-Ready** ๋ฉ์ปค๋์ฆ์ ์ ์ ๋์์
๋๋ค โ ์ ํ๋ฌ๊ทธ์ธ ์ฒด์ธ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์์ ํ ๋ก๋๋ ๋๊น์ง ์ด์ ์ฒด์ธ์ด ๊ณ์ ์ค๋์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์ค๋น๊ฐ ๋๋ฉด ์์์ ์ผ๋ก ๊ต์ฒดํฉ๋๋ค.
์ด ์งง์ ๊ฐญ์ v3์ 1-3์ด ๋ฌด์ ๊ฐญ์์ ํฌ๊ฒ ๊ฐ์ ๋ ๊ฒ์
๋๋ค. ํ๋ฆฌ๋ก๋ ์บ์๊ฐ ํ์ฑํ๋์ด ์์ผ๋ฉด (๋ค๋ฅธ ์ฌ๋กฏ ํ๋ฌ๊ทธ์ธ์ ๋ฏธ๋ฆฌ ๋ก๋) ๋ ์งง์์ง ์ ์์ต๋๋ค.
---
A **very brief audio gap** may occur during preset switches. In same-chain or cache-hit cases this is often around `~10-50ms`, but it can be longer depending on the plugin set and system state. This is normal **Keep-Old-Until-Ready** behavior โ the old plugin chain continues processing audio while the new chain loads in the background, then swaps atomically when ready.
This short gap is a major improvement over v3's 1-3 second mute gap. With the preload cache active (pre-loads other slots' plugins), the gap can be even shorter.
CPU ์ฌ์ฉ๋์ด ๋์์ / High CPU usage
**์์ธ ์ง๋จ:**
1. **Performance Monitor ํ์ธ** โ ์ํ ๋ฐ์ CPU % ํ์ธ. 70% ์ด์์ด๋ฉด ํ๋ฌ๊ทธ์ธ ์ฒด์ธ ์ต์ ํ ํ์
2. **๋ฌด๊ฑฐ์ด ํ๋ฌ๊ทธ์ธ ์๋ณ** โ ๊ฐ ํ๋ฌ๊ทธ์ธ์ ํ๋์ฉ Bypassํ๋ฉด์ CPU ๋ณํ ํ์ธ
3. **์ค๋ฒ์ํ๋ง ํ์ธ** โ ์ผ๋ถ ํ๋ฌ๊ทธ์ธ(๋ฆฌ๋ฏธํฐ, ์ดํ๋ผ์ด์ )์ ๋ด๋ถ ์ค๋ฒ์ํ๋ง(2x-8x)์ด ์์ด CPU๋ฅผ ํฌ๊ฒ ์ฌ์ฉ
**ํด๊ฒฐ ๋ฐฉ๋ฒ:**
- ๋ฌด๊ฑฐ์ด ํ๋ฌ๊ทธ์ธ์ ๋ ๊ฐ๋ฒผ์ด ๋์์ผ๋ก ๊ต์ฒด (์: FabFilter Pro-Q 3 โ TDR Nova)
- ๋ถํ์ํ ํ๋ฌ๊ทธ์ธ ์ ๊ฑฐ ๋๋ Bypass
- ๋ฒํผ ํฌ๊ธฐ ๋๋ฆฌ๊ธฐ (Audio ํญ) โ ์ง์ฐ์ด ์ฆ๊ฐํ์ง๋ง CPU ๋ถํ ๊ฐ์
- Auto ๋ชจ๋์ ๋ด์ฅ ํ๋ก์ธ์๋ ์ต์ ํ๋์ด ์์ด CPU ์ฌ์ฉ๋์ด ๋งค์ฐ ๋ฎ์
---
**Diagnosis:**
1. **Check Performance Monitor** โ Look at CPU % in status bar. Above 70% means the plugin chain needs optimization
2. **Identify heavy plugins** โ Bypass plugins one by one and observe CPU change
3. **Check oversampling** โ Some plugins (limiters, EQs) have internal oversampling (2x-8x) that significantly increases CPU
**Solutions:**
- Replace heavy plugins with lighter alternatives (e.g., FabFilter Pro-Q 3 โ TDR Nova)
- Remove or Bypass unused plugins
- Increase buffer size (Audio tab) โ adds latency but reduces CPU load
- Auto mode's built-in processors are optimized and use very little CPU
๋ชจ๋ํฐ์์ ์ง์ฐ์ด ๋๊ปด์ ธ์ / Hearing delay in monitor output
๋ชจ๋ํฐ ์ถ๋ ฅ์ ๋ฉ์ธ ์ถ๋ ฅ๊ณผ **๋ณ๋์ ์ค๋์ค ์ฅ์น**๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ์ถ๊ฐ ์ง์ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
**์์ธ:**
1. **๋ชจ๋ํฐ ์ฅ์น์ ๋ฒํผ ํฌ๊ธฐ** โ WASAPI Shared ๋ชจ๋๋ ์ฅ์น ๊ธฐ๋ณธ ๋ฒํผ๋ฅผ ์ฌ์ฉํฉ๋๋ค (๋ณดํต 10-20ms)
2. **์ํ๋ ์ดํธ ๋ถ์ผ์น** โ ๋ฉ์ธ ์ฅ์น์ ๋ชจ๋ํฐ ์ฅ์น์ ์ํ๋ ์ดํธ๊ฐ ๋ค๋ฅด๋ฉด ๋ฆฌ์ํ๋ง ์ง์ฐ ๋ฐ์
**ํด๊ฒฐ ๋ฐฉ๋ฒ:**
- ๋ฉ์ธ ์ฅ์น์ ๋ชจ๋ํฐ ์ฅ์น์ ์ํ๋ ์ดํธ๋ฅผ ์ผ์น์ํค๊ธฐ (Audio ํญ์์ ํ์ธ)
- ASIO๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๊ฐ์ ์ธํฐํ์ด์ค์ ๋ค๋ฅธ ์ถ๋ ฅ์ ๋ชจ๋ํฐ๋ก ์ฌ์ฉ (์ถ๊ฐ ์ฅ์น ๋ถํ์)
- ๋ชจ๋ํฐ ์ง์ฐ์ ์๊ธฐ ๋ชฉ์๋ฆฌ ๋ชจ๋ํฐ๋ง์ฉ์ด๋ฏ๋ก, ๋ฐฉ์ก/๋
น์ ํ์ง์๋ ์ํฅ ์์
---
Monitor output uses a **separate audio device** from the main output, which can introduce additional latency.
**Causes:**
1. **Monitor device buffer size** โ WASAPI Shared mode uses the device's default buffer (typically 10-20ms)
2. **Sample rate mismatch** โ Different sample rates between main and monitor devices cause resampling delay
**Solutions:**
- Match sample rates between main and monitor devices (check in Audio tab)
- If using ASIO, use a different output of the same interface as monitor (no extra device needed)
- Monitor delay only affects self-monitoring; it doesn't affect broadcast/recording quality
## Star History
## ํ์ / Support
ํ๋ก์ ํธ๊ฐ ๋์์ด ๋์
จ๋ค๋ฉด ์ปคํผ ํ ์ ์ฌ์ฃผ์ธ์! / If you find this project useful, consider buying me a coffee!
## License
GPL v3 โ [LICENSE](LICENSE)