Skip to content

SynapSeq v4.40.1-foundation

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Jun 22:40
· 5 commits to main since this release
6737698
  • Fixed patch version from "00" to "1" =(

Today marks an important milestone in the evolution of SynapSeq.

Foundation represents the consolidation of the Go-based architecture introduced in previous releases and establishes the foundation for future development of the project. This release introduces new audio capabilities, improves sequence interoperability, simplifies the command-line experience, expands the Go API, and transitions the project to GPL-3.0-or-later.


Highlights

Smarter Audio Source Resolution

Foundation introduces support for both WAV and MP3 audio assets in @ambiance and @music.

Unlike previous versions, users no longer need to explicitly specify file extensions in SPSQ files.

SynapSeq now automatically resolves the most appropriate format depending on the directive being used.

@ambiance

@ambiance is designed for continuously looping environmental sounds.

Because seamless looping is significantly more reliable with WAV files, SynapSeq prioritizes WAV assets for ambiance playback.

Example:

@ambiance rain sounds/rain

Resolution order:

sounds/rain.wav
sounds/rain.mp3

If the WAV file exists, it will be used.

If no WAV file is found, SynapSeq will automatically fall back to the MP3 version.

This behavior helps ensure smooth looping while still allowing existing MP3 libraries to be used when necessary.


@music

@music is intended for non-looping playback such as:

  • music tracks
  • guided meditations
  • spoken introductions
  • voice recordings
  • one-shot audio content

Unlike ambiance, music playback does not automatically loop.

When the audio reaches the end, playback stops while the SPSQ sequence continues normally.

Example:

@music meditation music/track01

Resolution order:

music/track01.mp3
music/track01.wav

If the MP3 file exists, it will be used.

If no MP3 file is found, SynapSeq automatically falls back to the WAV version.

This preference reflects the most common use case for music assets, where MP3 provides smaller file sizes without the looping constraints associated with ambiance playback.


Why Different Resolution Orders?

The two directives have different goals:

Directive Primary Format Fallback Format Looping
@ambiance WAV MP3 Yes
@music MP3 WAV No

This allows SynapSeq to automatically choose the most suitable format for each use case while keeping SPSQ files clean and extension-independent.


Automatic Crossfades Between Different Track Types

Previous versions imposed restrictions when a channel switched directly between incompatible track types.

For example:

tone -> noise
noise -> ambiance
ambiance -> tone

These transitions often required intermediate presets or silence periods to avoid abrupt changes.

Starting with Foundation, those restrictions have been removed.

When SynapSeq detects a transition between different track types on the same channel, it now automatically creates a crossfade of up to 30 seconds between the outgoing and incoming tracks.

This results in smoother transitions while preserving compatibility with existing sequences.

Benefits:

  • simpler SPSQ files
  • fewer intermediate presets
  • smoother listening experience
  • reduced need for manual transition workarounds

Existing sequences continue to work as expected.


JSON Export Replaces Preview

The old:

synapseq -preview sequence.spsq

command has been removed.

It has been replaced by:

synapseq -dump sequence.spsq

which produces a structured JSON representation of the sequence.

Example use cases:

  • integration with external software
  • sequence inspection
  • automation tools
  • web applications
  • editors and IDE integrations
  • custom visualizers

The goal is to make SPSQ data easier to consume programmatically and to provide a stable integration point for third-party tools.


Removal of -new

The -new command has been removed.

In practice, the command provided little value beyond copying example files into a local directory.

The SynapSeq Hub and remote sequence examples now serve as the primary discovery mechanism for learning and creating new SPSQ files.


Removal of -manual

The built-in manual command has also been removed.

Documentation is now maintained directly in the project repository, ensuring that users always have access to the most up-to-date documentation without requiring manual synchronization between source code and embedded help text.


Go API Improvements

The public core package has been expanded with new methods:

Presets()
Timeline()
JSON()
Music()

These additions make it easier for external applications and integrations to inspect and consume sequence data without relying on internal packages.

This continues SynapSeq's goal of providing a stable and developer-friendly Go API.


Simplified Remote Commands

The Remote command set has been streamlined.

Previous releases required every Remote operation to be prefixed with -remote-:

synapseq -remote-sync
synapseq -remote-list
synapseq -remote-search alpha
synapseq -remote-download meditation

Starting with Foundation, the Remote functionality becomes a first-class part of the CLI and the redundant prefix has been removed:

synapseq -sync
synapseq -list
synapseq -search alpha
synapseq -download meditation

Available commands:

-sync                       Sync the local Remote index
-list                       List available remote sequences
-search WORD                Search remote sequences
-info NAME                  Show information about a remote sequence
-download NAME [DIR]        Download a remote sequence
-get NAME [OUTPUT]          Download and generate in one step
-clean                      Clean up local Remote cache

This change makes commands easier to type, easier to remember, and more consistent with the rest of the SynapSeq command-line interface.

No functionality was removed. Only the command names were simplified.


License Change: GPL-3.0-or-later

Starting with v4.40.00 Foundation, SynapSeq is now licensed under:

GPL-3.0-or-later

Previous releases remain available under their original license terms.

Why was this change made?

As SynapSeq evolved, the project increasingly relied on modern Go libraries and audio tooling. Some of these dependencies are distributed under the Apache License 2.0, which is compatible with GPLv3 but not with GPLv2-only.

One example is the MP3 decoding stack used by this release.

Migrating to GPL-3.0-or-later allows SynapSeq to:

  • remain fully open source
  • maintain strong copyleft protections
  • improve compatibility with modern Go libraries
  • simplify future dependency management
  • avoid licensing conflicts with Apache 2.0 components

This change does not make SynapSeq proprietary, dual-licensed, or source-closed.

The project remains free software and continues to be developed in the open.