SSPACEAGEDOCUMENTATION/
Release and Assurance

Third-Party Code And Licenses

Updated Aug 29, 2026   |   15.1 KB   |   docs/Third_Party_Code_And_Licenses.md

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.