Open
Conversation
- add reusable PowerShell logging, native execution, tool discovery, and install helpers - centralize VS/MSBuild and pluginval lookup for future Windows wrappers - keep macOS shell flow untouched
- add PowerShell-native checksum, cache-hit, read/write, and cleanup helpers - preserve the existing JSON cache contract for future wrappers - document PowerShell entry points and call patterns
- compare cached expiry values with culture-invariant DateTimeOffset parsing - keep cache hits stable after ConvertFrom-Json date materialization - preserve the existing JSON cache contract while fixing hit checks
- add the phase 02-01 summary with task commits, decisions, and deviation notes - update planning state and roadmap for the next Windows automation plan - keep the summary machine-readable for later phase context assembly
…s phase Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s in root CMakeLists.txt
- Detect OS and set JUCE_PATH default (C:/SDKs/JUCE on Windows, /Applications/JUCE on macOS)
- Define JUCE_VST3_DESTINATION and JUCE_AU_DESTINATION dynamically per platform
- Replace hardcoded add_subdirectory(/Applications/JUCE) with ${JUCE_PATH}
- Add FATAL_ERROR if JUCE_PATH does not exist, with override hint
- Check cmake, git, and JUCE folder presence with clear pass/fail output - Accept -JucePath param (default C:\SDKs\JUCE) and -BuildDir param - Generate Visual Studio 17 2022 CMake cache with -DJUCE_PATH override - -SkipCmakeGen flag for tool-only checks (e.g. CI pre-flight) - Non-zero exit on any failed check for pipeline integration
…d DriveVerb - Move plugin formats into a conditional list (WIN32 guard removes AU) - GainKnob: reference implementation with GAINKNOB_FORMATS variable - DriveVerb: second plugin validates the pattern is replicable - Both produce VST3 + Standalone on Windows, VST3 + AU + Standalone on macOS
- Add 01-01-SUMMARY.md: CMake cross-platform foundation summary - Update STATE.md: plan 01-01 complete, accumulated context updated - Update ROADMAP.md: phase 01 marked complete (1/1 plans) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Converts .claude/commands/*.md → .claude/skills/<name>/SKILL.md - Idempotent: skips existing skill dirs unless -Force is passed - Extracts name from YAML frontmatter; falls back to filename - Exits 0 on success, 1 if any errors; prints created/skipped/errors summary
- Calls Convert-CommandsToSkills.ps1 first (Step 0) - Step 1: creates NTFS junctions per-skill in ~/.codex/skills/ (no admin needed) - Step 1b: copies .claude/agents/*.md to ~/.codex/agents/ (files, not junctions) - Step 2: appends .claude/skills path to ~/.copilot/config.json skill_directories - Step 3: probes Gemini CLI and creates .gemini/instructions.md placeholder - Idempotent: all sections skip existing items; stale junctions auto-removed - DryRun switch shows intended changes without modifying filesystem
…>/SKILL.md) - 20 command .md files converted to skill directories by Convert-CommandsToSkills.ps1 - Each skill dir contains SKILL.md with verbatim command frontmatter content - These are the canonical skill representations for non-Claude AI tools (Codex, Copilot)
- Add 03.1-01-SUMMARY.md documenting NTFS junction setup, Codex/Copilot/Gemini sharing - Update STATE.md: plan 03.1-01 complete, advance to 03.1-02, add key decisions - Update ROADMAP.md: mark 03.1-01-PLAN.md complete, phase status in progress
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… enrich .gemini placeholder - README.md: add Multi-Agent Skill Sharing section with setup command, 3-tool table (Codex/Copilot/Gemini), verify command, add-new-skills guide, and manual cleanup instructions per tool - .gemini/instructions.md: replace minimal probe-output placeholder with full skill inventory (16 project skills + 20 command-derived), agent list, and UNVERIFIED format notice
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tion authoring Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… default Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…macOS sections Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…omy manifest contract - Remove PLUGINS.md from injection specs (no more hardlink) - Add Get-WorkspacePluginsManifestContent: workspace-local manifest with sync contract - Add Sync-WorkspaceManifest: explicit refresh path for rename/move scenarios - Add Update-RootPluginsRegistry: idempotent root PLUGINS.md registry update - Update Test-PluginScaffold: require PLUGINS.md + workspace-build/CMakeLists.txt - Update New-PluginScaffold: call new autonomy functions - PLUGINS.md: Windows-first paths + Workspace Manifest Model documentation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- CHECK 4: workspace PLUGINS.md + workspace-build/ artifacts per scaffolded plugin - CHECK 5: root PLUGINS.md Plugin Registry + workspace manifest model documentation - Pre-contract plugins get soft warnings, not failures Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 07-02-SUMMARY.md: full execution record - STATE.md: phase 07 complete (2/2 plans) - ROADMAP.md: phase 07 status updated Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…space-autonomo Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- architecture.md: YIN pitch detection, custom STFT phase vocoder, scale engine - plan.md: complexity 5.0, phased implementation (3 DSP + 2 GUI phases) - parameter-spec-draft.md: 6 parameters (ROOT_NOTE, SCALE_TYPE, INTERVAL, MIX, HARMONY_LEVEL, MIDI_LEARN) - PLUGINS.md: status updated to Stage 0 Key decisions: - YIN algorithm for monophonic pitch detection (JUCE has no native detector) - Custom STFT phase vocoder using juce::dsp::FFT (juce::dsp::PitchShifter does not exist) - Latency: 1536 samples (~32ms) - quality-first per brief - CMakeLists.txt requires NEEDS_MIDI_INPUT TRUE + juce_dsp (Stage 1 fix) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Incorporated findings from Meier et al. (2023) paper: - YIN confidence threshold validated: 0.10 (VR=0.979) - Hop size 512 @ 44100Hz confirmed as industry standard - SWIPE-On-C documented as upgrade path (RPA 0.938 vs YIN 0.926) - pYIN noted as v2 enhancement - Wavelet transforms noted as transient-handling alternative Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Added MAE-AST / Audio-MAE context from Automatika paper - Explains why deep learning not used for v1 pitch detection (37s batch latency, GPU required) - Documents MAE-AST as future v3 auto-detect scale backend - Added CREPE as v3 ML pitch estimation upgrade path - Full research bibliography now in plan.md references Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- APVTS with 6 parameters (JUCE 8 ParameterID format) ROOT_NOTE, SCALE_TYPE, INTERVAL (Choice), MIX, HARMONY_LEVEL (Float), MIDI_LEARN (Bool) - CMakeLists.txt fixes: NEEDS_MIDI_INPUT TRUE, juce_dsp + juce_gui_extra added - acceptsMidi() now returns true - MIDI root-note override (note % 12 when MIDI_LEARN on) - DryWetMixer + Gain DSP scaffold (passthrough; Phase Vocoder slots in Stage 2) - setLatencySamples(1536) declared in prepareToPlay - State persistence via APVTS XML serialisation - parameter-spec.md promoted from draft - Compilation verified: VST3 + Standalone (Windows) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
YinPitchDetector (de Cheveigné & Kawahara 2002): - 2048-sample window, 512-sample hop, threshold=0.10 - Validated by Meier et al. 2023 (RPA=0.926, VR=0.979, VFA=0.017) - Circular ring buffer, CMNDF, parabolic interpolation - Real-time safe: zero heap allocation in process() ScaleIntervalEngine: - 13 static scale tables (Major, modes, pentatonics, blues, chromatic) - Diatonic interval math: 3rd(+2deg), 5th(+4deg), 6th(+5deg), Octave(+12st) - computePitchShiftRatio() returns 2^(semitones/12) - Verified: C4 Major 3rd -> ratio 1.2599, A4 Minor 5th -> ratio 1.4983 PluginProcessor integration: - currentPitchRatio updated every 512-sample YIN hop - harmonyBuffer pre-allocated for Phase 3.3 Phase Vocoder - Compilation verified: VST3 + Standalone Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PhaseVocoder (custom STFT implementation): - juce::dsp::FFT order=11 (N=2048), hop=512 (75% overlap) - Hann WOLA with correct normalisation: outputGain=2/3 (JUCE performRealOnlyInverseTransform normalises by 1/N; 75% overlap Hann OLA sum-of-squares=1.5, so 1/1.5=2/3) - Instantaneous frequency estimation + phase accumulation per bin - Real-time safe: zero heap alloc in process()/processHop() Full signal chain now active: Guitar In -> YIN Pitch Detector -> Scale/Interval Engine -> PhaseVocoder -> HarmonyGain -> DryWetMixer -> Out All 6 parameters connected: ROOT_NOTE, SCALE_TYPE, INTERVAL -> pitch ratio MIX -> DryWetMixer blend HARMONY_LEVEL -> Gain on wet path MIDI_LEARN -> root note MIDI override Latency: 1536 samples (~32ms @ 48kHz) via setLatencySamples() Compilation verified: VST3 + Standalone (Windows) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Author
|
Hey — I just opened a PR adding Windows support. Your video (“English is the New Programming Language”) really resonated with me. I also come from a music background, and I’m experiencing a similar shift with these tools. It felt like you were putting words to something I’ve been going through. Thanks for sharing that. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR delivers the Windows-support milestone for Plugin Freedom System.
It brings the repo from a macOS-only workflow to a Windows-capable workflow with PowerShell automation, Windows-aware build/install validation, cross-platform workspace scaffolding, and milestone closure evidence.
What Changed
Validation
Known Limitation
Review Notes
mainwas already ahead oforigin/mainwith the milestone history.main, includingHarmIntwork that is not strictly part of the Windows milestone.