Third-Party Code And Licenses
Third-Party Code And Licenses
See docs/Csound_JUCE_Licensing_Guide.md for the reviewed decision guide that
would apply if Csound is considered as a future runtime dependency. Csound is
not currently embedded or distributed by SpaceAge.
This file is the living license register for third-party code, frameworks, fonts, SDKs, and bundled assets that enter SpaceAge. It is not legal advice; it is a practical engineering checklist so we can keep the product clean before release.
Current Integrated Dependencies
Resources/DependencyLicenseManifest.json is the machine-readable counterpart
to this register. It pins all eleven integrated dependency families, hashes the
exact thirteen source/font/license artifacts retained in this repository, and
causes release hygiene to fail when evidence changes without review or when an
unregistered file enters Source/ThirdParty. The manifest is copied into every
release package.
| Dependency | Where It Lives | Purpose In SpaceAge | License / Structure | Commercial Notes | Source |
|---|---|---|---|---|---|
| JUCE 8.0.8 | ../../../work/juce-local/JUCE-8.0.8, with exact-commit fallback in CMakeLists.txt; release fingerprint in Resources/JuceSourceFingerprint.json |
Main C++ audio/plugin/UI framework; builds Standalone and VST3 targets | Dual-licensed: AGPLv3 or commercial JUCE license | The local 4,249-file source tree was compared byte-for-byte with official commit d6181bde38d858c283c3b7bf699ce6340c050b5d. Public packaging reruns the offline fingerprint gate. For closed-source distribution, confirm the commercial JUCE license path and account obligations. |
https://juce.com, https://github.com/juce-framework/JUCE/tree/d6181bde38d858c283c3b7bf699ce6340c050b5d |
| JUCE-linked transitive libraries | Pinned JUCE 8.0.8 audio, core, graphics, and text modules | FLAC, Ogg Vorbis, zlib, libpng, IJG JPEG, HarfBuzz, and SheenBidi runtime support | BSD/zlib/IJG/Old MIT/Apache-2.0 as recorded in the exact copied notices | Canonical shipping inventory is THIRD_PARTY_NOTICES.md; exact texts live under Resources/Licenses and are copied into release packages. |
Pinned JUCE 8.0.8 source tree |
| Steinberg VST3 SDK via JUCE | JUCE module path: modules/juce_audio_processors/format_types/VST3_SDK/ |
Enables VST3 plugin target through JUCE | Steinberg VST3 License or GPLv3 alternative | For proprietary release, use the Steinberg VST3 license path and follow Steinberg trademark/usage guidelines. Do not rely on GPLv3 for a closed-source product. | https://steinbergmedia.github.io/vst3_dev_portal/ |
TinySoundFont tsf.h |
Source/ThirdParty/TinySoundFont/tsf.h; shipped notice: Resources/TinySoundFont-MIT.txt |
Native .sf2 SoundFont playback |
MIT license. Header states copyright 2017-2025 Bernhard Schelling; based on SFZero, copyright 2012 Steve Folta. | MIT is permissive and generally compatible with proprietary distribution if the copyright and license notice are retained. SoundFont files loaded by users have their own separate licenses and are not automatically cleared by TinySoundFont. | https://github.com/schellingb/TinySoundFont, https://github.com/stevefolta/SFZero |
| Inter font family | Resources/Inter-VariableFont_opsz,wght.ttf, Resources/static/*.ttf, Resources/OFL.txt |
Embedded UI font family | SIL Open Font License 1.1 | OFL permits commercial use and redistribution, but the font license text should ship with the product. If modified, follow OFL reserved-name and redistribution rules. | https://github.com/rsms/inter, https://fonts.google.com/specimen/Inter |
| Conner's Impulse Response Library | Resources/Convolution/FactoryIR/ConnersIRLibrary |
Twelve curated real-room convolution responses | MIT; original license and references retained beside the audio | The upstream author explicitly licenses the IR audio, permits commercial use/modification, and records contributor ownership. Each imported file is hash-locked as cleared in the release asset manifest. | https://github.com/johnmatter/ir-library |
The shared Convolution Reverb uses juce::dsp::Convolution from the already pinned JUCE 8.0.8 dependency. It adds no separate FFT or convolution-library dependency, and its procedural responses are documented as first-party generated output in docs/First_Party_Asset_Provenance.md.
Test-Only Dependencies
| Dependency | Where It Lives | Purpose | License / Structure | Shipping Status | Source |
|---|---|---|---|---|---|
PFFFT, commit 8c6b35e77624ddef0b3362c546a50b101c379bef |
Source/ThirdParty/PFFFT; test fixture: Tests/ThirdParty/PFFFT |
Compiled inactive production convolution adapter; Windows Release benchmark and exactness fixture | Permissive UCAR/FFTPACK-style license retained beside both copies | Production files are hash-locked and compile into Standalone, VST3, and SampleSquadAudioTest; runtime convolution still selects JUCE while scheduler/fallback gates are completed. |
https://github.com/marton78/pffft/tree/8c6b35e77624ddef0b3362c546a50b101c379bef |
The Graphi07 room-response catalog was audited as a discovery source. SpaceAge did not import entries marked noncommercial, no-derivatives, custom, GPL, share-alike, or unspecified. Large CC BY research corpora remain candidates for later curated imports, subject to dataset-level license verification and useful musical selection. The catalog itself is not bundled.
Bundled Art And Brand Assets
| Asset | Where It Lives | Owner / Source | Notes |
|---|---|---|---|
| Splash and About artwork | Resources/splash.png, Resources/about.png, Resources/SAMPLE-SQUAD_Splash-Screen-1.0_1600x900.png |
Shane Sanders / Sample Squad | Treat as proprietary first-party brand art. Do not replace with externally sourced art unless its license is documented here. |
Bundled Audio Requiring Provenance Resolution
| Asset | Where It Lives | Current Evidence | Release Status |
|---|---|---|---|
| TG55 factory wave memories | Resources/TG55/*.wav, Resources/TG55/*.json, and Resources/TG55/catalog.json |
Nine 2,048-frame mono PCM single-period wave memories accompanied by family, seed, synthesis-parameter, and acceptance recipes. Asset IDs encode their recipe seeds, timestamps pair each WAV with its recipe, and runtime code identifies them as generated assets. No matching source recording or third-party attribution was found in the audited workspace. | Not cleared for public distribution. Technical evidence is consistent with procedural generation, but the original generator and creator attestation are absent. Preserve the catalog, recipes, and SHA-256 fingerprints in docs/TG55_Asset_Provenance.md. Before shipment, recover the generator and prove reproducibility, obtain a creator statement confirming mathematical/noise-only synthesis with no third-party or ROM-derived inputs, or replace the assets using a newly tracked generator. |
Resources/ReleaseAssetClearance.json is the machine-readable shipping boundary for every resource embedded by the SampleSquadAssets CMake target. tools/test-release-asset-clearance.ps1 requires exact manifest coverage and tools/package_release.ps1 refuses to create a public package while any embedded entry remains blocked. This guard does not prevent internal development builds.
Important Non-Code Asset Boundary
SoundFonts are containers of samples and instrument data. TinySoundFont gives us
the engine to read .sf2, but it does not grant rights to any .sf2 file a
user loads. If SpaceAge ships with any SoundFonts, each one needs its own entry
in this register with provenance, license, redistribution permission, and any
required attribution.
Candidate / Discussed But Not Integrated
| Candidate | Proposed Use | License / Risk Snapshot | Recommendation |
|---|---|---|---|
| CloudSeed | High-quality algorithmic reverb | Repository appears MIT-licensed, but verify the exact license file and any included third-party code before import. | Good candidate for a premium internal reverb if the license audit stays clean. Add only after documenting version/commit and preserving notices. |
| FluidSynth | Alternative SoundFont engine | LGPL-2.1+ historically; may introduce dynamic-linking and redistribution considerations. | Avoid unless TinySoundFont becomes insufficient. If used, prefer a clean dynamic-link strategy and legal review. |
| sfzero | SoundFont/SFZ playback inspiration | Permissive lineage, but current repo/license must be verified before copying code. | TinySoundFont already covers the immediate .sf2 need. Use sfzero only as reference unless directly audited. |
| Dexed | External FM synth inspiration / possible user-loaded VST | GPL-3.0 | Do not bundle in proprietary SpaceAge. Users may load their own installed copy later through VST hosting. |
| Google Music Synthesizer for Android (MSFA) FM core | 80s FM 32-algorithm routing and operator-frame gating, measured envelope-stage timing, shared fixed-point LFO, fixed-point pitch and operator amplitude modulation, and fixed-point sine, envelope-gain, and frequency lookups | Apache-2.0 | The compact routing table and frame-level operator threshold from fm_core.cc, measured static-stage timing from env.cc, Q32 shared LFO from lfo.cc, Q24 pitch and operator amplitude-modulation ordering from the Apache-2.0 MSFA dx7note.cc, interpolated lookups from sin.cc and exp2.cc, and logarithmic-frequency lookup from freqlut.cc are adapted with attribution in THIRD_PARTY_NOTICES.md; no Dexed GPL wrapper code is included. |
| DX-7 compatible FM architecture | Future SpaceAge-native six-operator FM synth with .syx patch/bank import |
The general DX-style architecture and SysEx patch format are well documented, but Yamaha factory patches, trademarks, and third-party emulator code each have separate rights. Dexed is GPL and must not be copied. The Android/MSFA FM engine credited by Dexed is Apache-2.0 and may be worth a separate commit-level audit if we ever want to reuse code instead of clean-room implementation. | Build clean-room or use only audited permissive code. Import user-provided DX .syx files, but do not ship Yamaha-owned patch banks unless cleared. Keep this tied to SpaceAge's guarded SysEx/Vault/import policy. Research references: https://github.com/asb2m10/dexed, https://github.com/google/music-synthesizer-for-android |
| CSound examples | Algorithm inspiration for synthesis / physical modeling | Varies by file/project/example. | Do not copy CSound code directly unless each snippet has a confirmed compatible license. Reimplement ideas independently where possible. |
| Madrona Labs Sumu | Research reference for partial-based musical workflow and visual feedback | Commercial/proprietary product. Research only. | Do not copy Sumu code, assets, presets, UI, or proprietary algorithms. Moonshadow is an original simplified additive-partial synth inspired only by broad public product concepts such as partials, motion, and purposeful visualization. |
| Six Sines by baconpaul | Candidate reference for a SpaceAge-native six-operator sine / FM-style engine | Main repository uses an MIT-style license, but the project pulls a large dependency stack through submodules, including SST libraries, SIMDe, CLAP, JUCE, MTS-ESP, fmt, libsamplerate, and others. Presets and acknowledgements need their own audit before any reuse. | Good inspiration for digital glass, bells, FM keys, metallic pads, basses, and motion textures. Do not import the plugin wholesale. If we build this family of sound, make a clean SpaceAge-native engine and document any copied code/preset data only after a specific commit-level license audit. Source: https://github.com/baconpaul/six-sines |
| DSPFilters by Vinnie Falco | Possible higher-order IIR and unusual filter-design fallback | MIT; repository states proprietary use is permitted with the license terms retained. | Appropriate license, but do not integrate for the current channel EQ. SpaceAge already has the needed six-band realtime biquad core, so importing another engine would add maintenance and notice work without improving the immediate result. Source: https://github.com/vinniefalco/DSPFilters |
| iir1 by Bernd Porr | Realtime-oriented DSPFilters continuation | MIT; sample-by-sample IIR processing with documented filter families. | Viable fallback if higher-order designs become necessary. Audit exception paths and pin an exact commit before any realtime integration. Source: https://github.com/berndporr/iir1 |
| Signalsmith DSP | Possible future spectrum/analyzer DSP support | MIT for the main header-only library; tests, docs, and support scripts have separate terms. | Good engineering reference, but it is not a complete channel-EQ implementation. Keep it out of the binary until a specific spectral feature justifies an exact module/commit audit. Source: https://github.com/Signalsmith-Audio/dsp |
| chowdsp_eq / chowdsp_filters | Full JUCE-oriented EQ and filter modules | GPLv3 for the relevant modules; other modules in the same repository use different licenses. | Do not integrate into proprietary SpaceAge without a separately negotiated commercial license. Source: https://github.com/Chowdhury-DSP/chowdsp_utils |
Release Checklist
- Keep this file updated whenever third-party code, fonts, sample packs, DSP snippets, SDKs, or visual assets enter the repo.
- Preserve required copyright/license notices in the shipped installer or About/legal folder.
- Avoid GPL/AGPL code in proprietary product code unless we intentionally change the licensing strategy.
- Distinguish user-provided content from bundled content.
- For every bundled preset/sample/SoundFont, document redistribution rights before release.
- Before a paid public release, do a proper legal pass over JUCE, VST3, TinySoundFont, Inter, and all bundled art/audio.
- Complete
docs/Release_Legal_Signoff.md; keep private contracts and account details outside the repository.
Version Boundary Note
Steinberg states that VST3 SDK 3.8 and later use MIT licensing. SpaceAge is currently pinned to JUCE 8.0.8, whose bundled VST3 SDK and retained license text still use the older proprietary-Steinberg-or-GPL-3.0 choice. The current SDK's MIT status therefore does not close SpaceAge's pinned VST3 signoff requirement. Any framework/SDK upgrade must update the dependency manifest, copied notices, clean-checkout proof, and complete convergence evidence together.
Evaluated Only: stm-juce-modules
- Project:
spensbot/stm-juce-modules - Source: https://github.com/spensbot/stm-juce-modules
- License presented by repository: MIT
- Status in SpaceAge: evaluated for ideas only; no source code, binaries, presets, or assets imported.
- Potentially useful concepts: DC blocking, dry/wet topology, latency-matched bypass, panning, saturation, simple delay, and analyzer widgets.
- Decision: do not add the repository as a dependency for the current beta. Its small, personal-collection scope and lack of release/version cadence make selective native implementation and verification preferable. Any future source adoption requires a fresh code-level license audit, retained notices, realtime-safety review, and regression evidence.
Embedded PCM Waveforms
Prismatic Temple embeds the canonical Adventure Kid Waveforms (AKWF) collection under
CC0-1.0. Source and license are vendored under
Source/ThirdParty/AKWF-FREE. Device-specific duplicate exports are excluded;
the original AKWF WAV collection is embedded.