SSPACEAGEDOCUMENTATION/
Architecture and Portability

SpaceAge Csound and JUCE Licensing Guide

Updated Aug 27, 2026   |   5.8 KB   |   docs/Csound_JUCE_Licensing_Guide.md

SpaceAge Csound and JUCE Licensing Guide

Status: implementation guidance reviewed 2026-08-27. This document is not legal advice and does not replace the applicable license text or review by qualified counsel.

Current SpaceAge Position

  • SpaceAge currently builds against JUCE 8.0.8.
  • SpaceAge does not currently embed or distribute Csound.
  • Existing Csound references in the repository are research and architectural inspiration, not evidence of a shipped Csound dependency.
  • Any future Csound integration requires a fresh dependency, packaging, notice, source-offer, and release-signoff review before implementation is accepted.

Executive Decision

For a closed-source commercial SpaceAge release:

  1. Use JUCE under an applicable commercial JUCE license rather than AGPLv3.
  2. If Csound is added, prefer a replaceable shared library: .dll on Windows, .dylib on macOS, or .so on Linux.
  3. Ship the required Csound copyright notice, LGPL license, source or valid source-access mechanism, and modification/relinking information.
  4. Do not statically link Csound without a project-specific legal and packaging plan for LGPL relinking obligations.

Dynamic linking is the recommended compliance path, but it is not by itself the entire compliance package.

Csound License

The official Csound repository identifies Csound as LGPL-2.1-or-later. The LGPL permits use with proprietary applications, subject to its conditions.

A future SpaceAge integration should keep Csound in a distinct runtime library and avoid technical measures that prevent a user from substituting an interface-compatible modified build. The distribution should also:

  • identify Csound and its applicable license prominently;
  • include a copy of the LGPL;
  • preserve Csound copyright and attribution notices;
  • provide the corresponding Csound source, or a license-compliant way to obtain the exact source for the distributed binary;
  • provide source for any modifications made to the LGPL-covered Csound code;
  • permit reverse engineering for debugging user modifications where required;
  • document where the shared library is installed and how it may be replaced;
  • retain build/version records sufficient to reproduce the distributed library.

Static Linking Is Not Automatically Forbidden

The source guide supplied to the project said static linking would force release of the entire JUCE project's source. That is too broad. LGPL 2.1 can permit a proprietary application to be statically linked, but the distributor normally must provide application object files or another compliant relinking mechanism so recipients can relink the application with a modified Csound library. The complete LGPL conditions still apply.

This is materially more complicated than shipping a replaceable shared library. SpaceAge policy is therefore to avoid static Csound linkage unless counsel and release engineering approve a documented compliance design.

JUCE License

JUCE is dual-licensed under AGPLv3 and the commercial JUCE license. Distribution of closed-source software should use a commercial JUCE path unless the shipping entity has deliberately chosen and can satisfy AGPLv3.

SpaceAge pins JUCE 8.0.8, so the release must be checked against the license and commercial entitlement applicable to that version. JUCE's current public plan page, reviewed 2026-08-27, lists:

Tier Current listed price Revenue or funding limit Notes
Starter Free Up to USD 20,000 Commercial terms and current branding requirements must be checked before release.
Indie USD 40 per user/month or USD 800 perpetual Up to USD 300,000 Current page lists a one-month minimum commitment.
Pro USD 175 per user/month or USD 3,500 perpetual No listed revenue limit Current page lists a twelve-month minimum commitment for subscriptions.

Prices, thresholds, branding rules, and EULA terms can change. This table is a dated planning aid, not proof of entitlement. The shipping entity must retain purchase records and confirm the applicable JUCE agreement at release signoff.

Architecture and Packaging Checklist

Before introducing Csound:

  • Record the exact Csound version, commit, license, and download/build source.
  • Confirm that every bundled opcode and optional dependency has compatible redistribution terms.
  • Use runtime dynamic loading or a normal replaceable shared-library link.
  • Keep proprietary SpaceAge code outside the Csound library binary.
  • Define behavior when the shared library is missing, incompatible, or replaced.
  • Keep library loading, file access, and compilation off the real-time audio thread.
  • Add the LGPL text, notices, source materials or offer, and replacement instructions to the release package.
  • Add Csound to THIRD_PARTY_NOTICES.md and the release dependency inventory.
  • Run a clean-machine package test, including replacement-library behavior.
  • Complete the existing release legal signoff before public distribution.

Sources

Source Note

This document reformats and corrects the project-supplied Csound_JUCE_Licensing_Guide.pdf. The PDF's core recommendation - commercial JUCE licensing plus dynamically linked Csound for a proprietary application - is retained. Its statement that static linking necessarily forces publication of the entire application's source has been replaced with the more precise LGPL relinking analysis above.