Skip to content

Releases: chips047/Cassette

v0.9.6-alpha

v0.9.6-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 14:45

Cassette v0.9.6

New Stuff

  • All effects now support segmentation.
  • Updated the context menu sound effects.
  • Added automatic error reporting.
  • Added a feedback button.
  • Significantly improved slider UX - now you can just click anywhere on the bar to set the value.

Effects

  • New "Mode" parameter for the "BPM" effect.
  • New "Decay Length" parameter for the "BPM" effect.
  • New "Duty Cycle" parameter for the "Strobe" effect.
  • New "Tail Fade" parameter for the "Chase" effect.
  • New "Invert" parameter for the "Chase" effect.
  • New "Invert" parameter for the "Fill" effect.
  • New "Density" parameter for the "Sparkle" effect.
  • New "Cluster Mode" parameter for the "Glitch" effect.
  • New "Center Offset" parameter for the "Ripple" effect.

Fixes

  • Fixed lag when opening the context menu.
  • Audio Re - trim menu: BPM is now loaded directly from the save file instead of being auto - detected. But you still can auto - detect it.

Cassette Receiver

Sorry, I kinda... forgot about this part. But anyway:

  • Fixed connection / disconnection animations.
  • Added connection / disconnection animations for 4a and 4b (and full support for these models in general, of course).
  • You can now launch Cassette Receiver as a normal app just by clicking the icon. Kinda useless, but it feels way nicer.
  • Added "A" track support.
  • Cassette Receiver has its own repo now! Check https://www.github.com/chips047/Cassette-Receiver.

Some of your compositions may not work with the new version. Sorry. These changes will stop at v1.0.

v0.9.5-alpha

v0.9.5-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 16:13
c70395f

Cassette v0.9.5

What's New

  • Post - load audio editing is finally here! You can now re - trim your track, tweak fades, or change the BPM anytime after loading it.
  • Fresh icons in the Project Menu, all hand - drawn by me :)
  • A new, proper tutorial is now included to help you get started without the guesswork.
  • Track names always stay on top of glyphs and now dynamically shift their color to match the background so they are always readable.
  • Keyframe shortcut: When Keyframes mode is active on a glyph, you can now tap the [ and ] keys to quickly raise or lower brightness points.
  • Animated history: Undoing and redoing glyph movements or length changes is now smoothly animated.
  • A new setting: Toggleable glyph rounded corners.

Visuals & Glyph Tweaks

  • Smarter rendering for tiny glyphs:

    • Glyphs smaller than 15px now switch to sharp corners. This looks much cleaner at small scales and gives a nice FPS boost.
    • Glyph borders dynamically shrink from 2px down to 0px as glyphs get smaller, keeping things clean and readable.
    • Selected tiny glyphs keep their default border thickness so you never lose track of what you have selected.
  • Better Audio Delay Setup animations. Added a textbox so you can set the milliseconds yourself.


Performance & Optimization

  • Massive rendering overhaul: Thanks to a new occlusion system, hidden glyphs aren't rendered at all anymore. The app easily hits a rock - solid 120 FPS. Because of this:
    • Noticeably higher frame rates across the board.
    • No more lag spikes when spam - spawning glyphs.
    • Silky - smooth zooming, no matter how crowded your canvas is.
    • Marquee selection and dragging still work seamlessly on glyphs tucked behind others.
    • Bulk - deleting large amounts of glyphs is significantly faster.
  • Less disk space used: Save files are lighter, and if your audio track does not need trimming, the app will no longer generate a redundant cropped audio file.
  • Lighter footprint: Completely dropped Mutagen from Cassette dependencies.
  • Optimized undo / redo actions.
  • Optimized glyph deletion.
  • Optimized glyph move and resize.

Bug Fixes

  • Fixed weird playhead behavior when it is at the end.
  • More fixes for Floating Window incorrect sizes.
  • Fixed an issue where you could paste massive walls of text into textboxes that were never meant to handle them.
  • Fixed a window bug where short audio files combined with a low default zoom caused compositions to open at a broken scale instead of going fullscreen.
  • Fixed weird composer window scaling when resizing mid - opening animation.
  • Fixed a glitch where spawning a glyph right as playback began would launch it completely outside the composer bounds.
  • Spawning glyphs during playback now respects your audio latency settings (positive delay advances the playhead, negative delay pulls it back).
  • Fixed multiple stability issues when GPU rendering is turned off.
  • Fixed glyphs loading into incorrect positions when opening saved compositions.
  • Squashed several errors that happened while loading audio files.
  • Fixed broken Undo / Redo (Ctrl + Z / Ctrl + Y) behavior when editing Keyframes.
  • Fixed odd slider behavior in context menus: previously, moving the Gap slider in the Chase effect from 0 to 1 did nothing until you moved it to 2, after which 1 would suddenly work. It now updates properly on every step.

Under the Hood (For Nerds)

  • Extracted most hardcoded values into a clean, dedicated Constants.py file.
  • Split oversized, monolithic files into smaller, modular components for cleaner and more maintainable code.
  • Applied general performance and memory optimizations across all core systems.

v0.9.4-alpha

v0.9.4-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Aug 17:44

Cassette v0.9.4

Fixes

  • Fixed 4a / 4b export errors.
  • Fixed errors caused by disabling Floating Window animations.
  • Resolved all issues with the Glyph Stack. Refined glyph spawn behavior when the Glyph Stack is expanded.
  • Fixed an issue where animations occasionally failed to sync with the music beat and appeared sluggish.

New

  • Expanded customizability with a variety of new timeline scroll settings.
  • Introduced audio latency adjustment to seamlessly synchronize headphone playback.
  • Added a new Audio Buffer setting. Increase it to resolve playback stutters, or decrease it on high - end systems for lower latency.
  • Added a Frame Rate Limit setting. Lower your FPS cap to optimize performance on low - end systems.

Optimization

  • Major performance enhancements across the editor, delivering a noticeable boost in FPS.

v0.9.3.1-alpha

v0.9.3.1-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 09:49

Cassette v0.9.3.1

  • Fixed Phone (2) 4th track zones incorrect work.
  • Added panning to playhead UI sounds.
  • Removed some useless debug logs.

v0.9.3-alpha

v0.9.3-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Jul 15:41

Cassette v0.9.3

Sounds

  • Added 17 new granular settings to toggle individual UI sound effects on or off - mute just the ones that annoy you, keep the rest.
  • Extended UI sound effects to cover a wider variety of system and user actions - more of the interface now gives you audio feedback, not just the obvious clicks.
  • All sounds got some Haas - stereo! Wear headphones - a tiny delay between channels widens everything out, makes clicks and pops feel less flat and centered.
  • All sounds got normalized - consistent loudness across every effect, no more random loud-quiet jumps between sounds.

New Features & Improvements

  • Added Master Track "A" - a new track, always shown first in your timeline as A, lets you light up your entire glyph interface at once - every zone together - without animating each one by hand. Great for beat drops, transitions, or full-device flashes. Track A automatically adapts its behavior to your specific phone:
    • Phone (1) / Phone (2) - Track A blends all zones into one combined effect, giving you a quick way to flash the whole device without juggling multiple tracks.
    • Phone (4a) / (4b) - alongside Track A, each of the 7 / 5 individual zone tracks stays available, so you can jump straight to lighting up any single zone without opening the zone-editing menu.
    • Phone (3a) - since every zone here is already fully segmented, Track A lets you choreograph effects that sweep across all three glyphs at once - like a single light circling the entire device.
  • Introduced a new setting to lower click latency, significantly improving interface responsiveness - buttons and toggles now react closer to the moment you actually click them.
  • Added a brand-new vibrant UI animation preset called "Electric" - a punchier, higher-contrast look for anyone who wants the interface to feel more alive.
  • Implemented dedicated click animations for all buttons across the application - every button now gives you a distinct little press-feedback instead of a flat state change.
  • Upgraded checkboxes, selectors, and sliders with smoother, more fluid animations - transitions ease in and out instead of snapping between states.
  • Added the ability to quickly copy error details and diagnostics to the clipboard for easier troubleshooting - one click and you've got everything needed to paste into a bug report.
  • Introduced new customization settings specifically for menu scroll areas - tune how scrolling in menus looks and feels to match the rest of the UI.
  • Enhanced and modernized the overall visual design of control elements - buttons, sliders, and selectors got a cleaner, more refined look across the board.
  • Glyphs, selectors, checkboxes, sliders, buttons - all running at 120 FPS now - the whole interface feels noticeably smoother, especially on high refresh-rate displays.
  • 90% of animations now run through a single unified animation engine called Loom - fewer inconsistencies between how different parts of the UI move, and a much easier place to tune performance going forward.
  • Animation multiplier is now global - it affects audio, buttons, sliders, marquee-area, windows, etc - one setting to speed up or slow down motion across the entire app instead of per-element.
  • Slightly enhanced glitch animations in the textbox - a bit more texture and randomness in the easter-egg glitch text.
  • Congratulations!!!!!!!! You can now close the window using Alt+F4!!!! - yes, this took way too long, no it's not a joke.
  • CONGRATULATIONS!!!!!!!!!!!! You can now move windows on Linux without the Meta key!!!!! (mostly...) - drag from the title bar like a normal window manager expects, most of the time.
  • Improved behavior on non-standard screen resolutions - windows, docks, and overlays position themselves more reliably on unusual aspect ratios and DPI scales.

Bug Fixes

  • Fixed a bug that caused error windows to render at excessively large, oversized dimensions.
  • Disabled the ability to accidentally start playback while a composition is being ejected.
  • Resolved minor audio glitching and overlapping sounds during drag-and-drop interactions.
  • The update window is now fully scrollable and capped so it never exceeds the user's screen size.
  • Resolved UI layout breaks and misalignment issues in the Floating Window interface.
  • Fixed a bug that caused errors while reading the tutorial.
  • Fixed incorrect stack number behavior.
  • Fixed the tooltip not hiding after brightness changes via [ / ].
  • Fixed an incorrect argument order in a function call that could've caused breakage down the line: self.animate_stack_items(group, direction, step, group_size).
  • Fixed errors while using "Glitch" / "Classic" animation styles.

Critical Optimization

  • Fixed Mini Waveform Preview rendering, which was firing 120 times per second and dropping FPS by 50% specifically during fullscreen playback.
  • Fixed a duplicate signal emit that was also quietly eating into FPS.
  • Switched rendering mode to Full, since GL can't do partial repaints anyway, and the "smart" mode was just burning extra CPU for nothing.
  • Beat lines now only render the ones actually visible - a logic bug previously drew everything left of the viewport's right edge.
  • Trimmed the number of numeric comparisons in beat line rendering for a small extra speed bump.
  • Significantly optimized mouse event handling.
  • Fixed a missing stop_batching call in some operations that could've corrupted saves.

Oh My God Bruh

  • Linux ARM / Windows ARM support. I can't test that, but I succesfull built these packages. Looking for tests...

v0.9.2-alpha

v0.9.2-alpha Pre-release
Pre-release

Choose a tag to compare

@chips047 chips047 released this 27 May 19:49

Cassette v0.9.2
Just a few fixes.

Fixes

  • Stopped .wav files from getting deleted when you close the Audio Setup Window.
  • Fixed the placeholders in the BPM Textbox.
  • Patched the UI sound settings that weren't working.
  • Fixed the tooltip animations.
  • Tooltips can finally move around on Linux Wayland.
  • Fixed marquee selection box jitter during playback.
  • Fixed font heights on Linux.
  • Fixed errors when changing the Floating Window Animations setting.
  • Fixed duplicate UI sound triggers during Drag & Drop.
  • Fixed an issue where the Mini Preview Widget didn't reset its position when changing compositions.
  • Fixed abnormal playback speed when switching compositions.
  • Fixed abnormal playback speed if you spam Alt + F4 on a Floating Window.

Optimization

  • Cut down on memory usage during rendering by caching colors and brushes - this should give the speed a little boost.
  • Optimized the player's "hot" functions (the ones that run thousands of times a second). They're compiled now and super fast, so the player uses way fewer resources.
  • The ADB server for real - time ringtone visualization now opens only once, instead of restarting every single time the app scans for devices.
  • Noticeably boosted performance on Linux.
  • Reorganized the UI sounds folder.
  • Optimized BPM animations by merging 4 BPM animation timers into one singleton.
  • Optimized timeline scroll by merging 4 timers into 2.
  • Tile generation doesn't affect FPS now.
  • Now, tiles are being generated with a compiled code.

New

  • You can now expand glyph stacks to make editing a lot easier.
  • 5 new effects in the player. Not used. Yet. Hm.
  • Migrated to PySide6 (Or PyQt6... I can't decide yet).
  • Significantly improved handling of non - standard display scales and resolutions.
  • Cassette now notifies you about new updates automatically.
  • Visual enhancement in Trim Widget.
  • The playhead now has... animations... too...
  • Improved the file hover effects during Drag & Drop.
  • Added new keyboard shortcuts:
    • Home & End to jump to the start and end of the track.
    • Shift + Arrows for faster playhead movement.
    • Ctrl + D to quickly duplicate selected glyphs.
    • [ and ] to quickly adjust brightness.
  • UI sounds can no longer be spammed by holding down a keyboard key.
  • Zoom is now smooth.

v0.9.1-alpha

v0.9.1-alpha Pre-release
Pre-release

Choose a tag to compare

@chips047 chips047 released this 28 Apr 18:31

Cassette v0.9.1

Just some fixes.

Compositor

  • Mini Preview Widget: Fixed an issue where the audio position would change on hover without a mouse click. This bug primarily occurred on Linux systems.
  • The Compositor now features rounded corners. Wow.

Audio Setup Window

  • Fixed non - critical errors during audio loading.

Animation Engine

  • Fixed interpolation snapping at the end of animations. This means windows aren't transparent now if animations are enabled.

Settings

  • Added a setting to customize the BPM animation style.

Project Menu

  • Improved UI responsiveness during composition loading. You can no longer launch two compositions simultaneously, preventing potential issues and memory leaks.

Something for Developers...

  • The Loom Animation Engine will soon be released as a standalone library for your projects. It will support PyQt5, PyQt6, PySide2, PySide6, and include a special compatibility mode for other GUI libraries.

v0.9.0-alpha

v0.9.0-alpha Pre-release
Pre-release

Choose a tag to compare

@chips047 chips047 released this 10 Apr 17:16

Cassette v0.9.0

Reworked Glyph rendering

  • Significantly reduced chances of visual desync

Improved Undo / Redo system

  • Increased maximum history size to 1000 actions (Well I can make it even bigger but... why?)

Audio

  • New engine for UI sounds: sound system is now more stable and less prone to glitches.
  • The player has been rewritten using the miniaudio library, which is lighter and faster than sounddevice.

Performance & Optimization
Cassette is now noticeably lighter, and more efficient.

  • Removed dependency on pygame entirely.
  • Fixed extremely slow startup on macOS.
  • Introduced a custom built-in FFmpeg build (~6MB).
  • Overall application size significantly reduced.
  • Animation update pipeline optimized. Even smoother.
  • Fixed major lag when copying large amounts of glyphs.
  • Greatly improved stability during fast project switching.
  • Startup time on Linux is as fast as 200 ms.

Compositor

  • Fixed scaling issues: Position reset and incorrect position in Mini Preview Widget.

Project Menu

  • Added Search Textbox.

Textbox

  • Fixed textbox cursor distortions.

Export Menu

  • You can now add a watermark to your composition. Supports cyrillic, numbers, symbols, upper / lower letters.

Settings

  • Settings menu got scroll area, so it's not giant now.

On - phone Visualization
Working with devices is now faster and more seamless.

  • Real - Time Visualizer now connects once per session

No more constant reconnecting.
Persistent connection between phone and Cassette.

Cassette Receiver

  • Updated to work with 4a, but needs testing.
  • Enhanced speed management.
  • When you create a glyph, it pulses on your phone.

Features

  • Added Import function for:

BNGC files
Label files

  • Keyframe - Based Brightness Control

A new way to control Glyph brightness. Hold Alt and move the keyframes.
Accessible via: Effect Menu → Fade.
4 easings supported.

  • Effects

Some effects were removed as they can be easily recreated, while new effects were added.
Added additional settings to some effects.

  • Glyphtone Editor

A tool to crop your ringtones.

  • 4a Support.

For Nerds / Devs
Yes, the codebase also got its life together.

  • Adopted Single Source of Truth architecture.

Fewer state - related bugs and desyncs.

  • Reduced technical debt (less hacks, more logic).
  • Removed wildcard imports.
  • Improved overall code structure and maintainability.
  • Added type annotations.
  • Unified code style across the project.
  • Renamed functions for better readability.
  • Removed unnecessary _ prefixes where meaningless.
  • ~90% of files were updated and optimized.
  • General editing performance significantly improved.
  • Project folder is moved to $USER$/Cassette/Songs

Don't forget to reinstall Cassette Receiver!

v0.8.0-alpha

v0.8.0-alpha Pre-release
Pre-release

Choose a tag to compare

@chips047 chips047 released this 27 Feb 10:51

UI & UX

  • Solid Glyphs: Glyphs no longer blink; they now remain solid for a more comfortable viewing experience.
  • Enhanced Tooltips: Improved tooltip information and phrasing (e.g., corrected segment indexing from "0, 1, 2" to "1, 2, 3").
  • BPM Textbox: Refined the visual style of the BPM textbox and centered the text.
  • Fixed Misalignments: Resolved layout issues within the Audio Setup Dialog.
  • Context Menu Fix: Fixed a bug where the context menu wouldn't open if a glyph's brightness was set to 5%.
  • Tooltip Padding: Adjusted padding for better visual consistency.

Features & Enhancements

  • New Animation Engine: Ported both Tooltips and the Marquee to a new engine for smoother animations.
  • Variable Speed: The Cassette Receiver now supports real - time speed adjustments.
  • Improved Audio Loading: Faster audio file loading and near-instant BPM detection.

Optimizations

  • Power Efficiency: The animation engine is no longer initialized when animations are disabled, significantly reducing GPU load and battery drain.
  • Glyph Visualizer: Optimized the visualizer logic to ensure all segments maintain uniform length.
  • Stability: Improved system stability when running with animations toggled off.

Fixes

  • Audio Logic: Resolved an issue where audio remained muted indefinitely after a track ended.
  • Segmentation Glyph Logic: Fixed multiple glyph segmentation errors. Fixed Glyph Visualizer layouts.

Internal Changes (For Nerds)

  • Refactored Settings Logic: Overhauled the logic for settings within the Floating Window.
  • Modular UI: Decoupled the UI codebase into multiple files for better maintainability and readability.
  • Cleaner Code: * Introduced new helper classes (e.g., Label, LineButtons) to streamline code.
    • Renamed various methods for better functional clarity.
    • Removed "hacky" workarounds and deprecated methods.
    • Reduced overall line count while increasing readability.
  • Project Structure: Overhauled folder organization for better project logic.

v0.7.0-alpha

v0.7.0-alpha Pre-release
Pre-release

Choose a tag to compare

@chips047 chips047 released this 16 Feb 18:26

Cassette v0.7.0

Fixes

  • Fixed a crash when cropping .flac files.
  • Smoothed out Floating Window antialiasing.
  • Keybinds now play nice with different keyboard layouts.
  • Patched EGL failure during startup on certain Linux distros.
  • Axed double WAV conversion - CPU usage is now much lower.
  • Fixed those weird waveforms that appeared during silence.
  • The window now closes instantly (no tape stop effect) if the audio is silent.
  • Added a smart fix for MP3 files disguised with a .wav extension - they get converted properly now.
  • Fixed Visualizator cahche being saved to a savefile.

Critical Fixes

  • Fixed cache cleanup. App is stopped from hoarding gigabytes of temp audio files on your disk.

Cool Stuff

  • Added "D" keybind to quickly tweak duration.

  • Added "B" keybind to quickly adjust brightness.

  • Added "S" keybind to quickly set speed.

  • Text cursor now blinks in sync with the beat - stay groovy.

  • Added "No Tilt" option in "Window Hover Smoothing" settings.

  • Support for Drag and Drop: just toss an audio file into the window to import it.

  • Undo / redo mechanics.

Animations & Visuals

  • New Animation Engine - 120+ FPS, smooth mixing, and heavy optimization.
  • Added "Classic" animation preset - for those missing the old - school Cassette vibes.
  • Retuned all animations for a tighter feel.
  • Normalized movement logic - animations won't be slowed down even if your PC lags.
  • Enhanced Floating Window stability and slightly buffed its appear time.

Misc & UI

  • First launch startup sound now defaults to 35% (save your ears).
  • Shaved down package sizes.
  • Massive code refactor - cleaner under the hood.
  • Playback position is now shown in the window title within Audio Setupper.
  • Audio Setupper: "Loading the audio" text is now left - aligned to match the layout.

Error Handling

Added specific error windows for:

  • Broken or corrupted audio files.
  • Files currently blocked by another program.
  • Video files that don't actually contain audio streams.
  • Audio files being moved while they're still loading.

Optimizations

  • Optimized the BPM remove animation.
  • Optimized Floating Window rendering, fewer stutters.
  • Optimized save management.