All discussions

Announcements

🎉 SynapSeq v3.0.0 Released!

ruanklein opened this discussion
View on GitHub

The long-awaited version 3.0 of SynapSeq is finally here, and it’s not just a new release. It’s a complete rewrite from scratch in Go, bringing the project into a new era of clarity, simplicity, and portability.

This version reflects weeks of focused work, grounded in the idea that less is more. SynapSeq now follows the Unix philosophy even more closely: do one thing, and do it well.

🚀 What’s New in SynapSeq v3.0.0

🧠 New Core Engine

The entire engine has been rebuilt from scratch in Go, replacing the legacy C code that powered previous versions.

Why Go?
• ✅ Clean, readable, and safer code
• ✅ Native support for audio, file I/O, and CLI
• ✅ No more memory management headaches
• ✅ Easier to maintain and extend
• ✅ Builds a truly standalone binary with no external dependencies

You can now compile and run SynapSeq more easily across Linux, macOS, and Windows.


💥 Breaking Changes in v3.0

Several features were removed or changed in favor of a more consistent and maintainable model. Here’s what you need to know:

🌀 Spin Noise was unified with Background

In V2, there was a dedicated spin for noise. In V3, this was merged into the background system. This change simplifies the model: all background effects now live in one place.

See the samples/ folder for:
• A spin example using background
• A pulse example
• A sample pink noise WAV file to test with

🎛️ Background + Effects: Now in One Line

Previously, background and effect were written on separate lines. Now, they’re unified. You define both in a single, streamlined statement.

This reduces visual clutter and makes it easier to understand how background audio and effects interact.

🌊 Fade In/Out Removed from Preset Transitions

In SynapSeq V2 (and SBaGen), transitioning between different types of tones (e.g. from binaural to isochronic) would automatically insert a fade-in/fade-out.

That behavior is no longer present in V3.

Now, you are in control. If you want smoother transitions:
• Use silence between presets
• Or manually zero-out amplitudes

This design reflects a core SynapSeq principle:
✨ Intention over syntax: nothing hidden, no magic.

💬 Comments Only in New Lines

Inline comments are no longer supported. From now on, all comments must appear on their own lines.

This change simplifies parsing and improves overall readability.

🎵 MP3/OGG Support Removed (WAV Only)

V3 only supports WAV background files, due to lack of decoding libraries in Go. The format must match the sequence’s sample rate and be 24-bit WAV.

Legacy users who need MP3 or OGG can continue using version 2.x (C)

🧾 Simplified CLI Syntax

The command-line interface has been simplified. You now generate a WAV file like this:

synapseq input-file.spsq output-file.wav

No need for flags or extra options for most use cases.

🔧 What’s Missing (But Coming Soon)

A few features that existed in earlier versions are still pending implementation in V3:

⏯️ Real-time playback via pipe (UNIX only)

In V2, you could play audio directly using pipes (| play -).
This feature has not yet been implemented in V3, but it’s planned and should be available in a future minor version.

📌 Issue-Driven Planning

From now on, every planned feature will be tracked via GitHub issues.
This means users and contributors can see what’s being worked on, what’s planned, and what’s already delivered. Ensuring transparency and a more community-driven development process.

📚 Updated Docs

All documentation has been updated:

• README
• USAGE Guide
• ROADMAP
• CONTRIBUTING

Make sure to review the USAGE guide for examples and updated syntax rules.

🧪 Try It Now

Check out the new samples/ folder and run:

synapseq sample-binaural.spsq output.wav

0 replies

No replies yet. Join the conversation on GitHub.

Reply on GitHub

This is a static mirror of the SynapSeq GitHub Discussions.