Some updates...


Some minor updates, namely:

Bug Fix #1: Playlist Creation

Previously, creating a playlist would work and direct the user to the playlist screen. Once there, when attempting to add songs, the songs would be added but unplayable, until the user reselected the playlist from the selector, at which point playback worked normally. This was caused by improper handling of a previous error, where if nothing was playing, then nothing could be played, as the code has to manually disable the previous player before the new one could play. The error was solved by a null check but wasn't given an else statement to handle otherwise.

Bug Fix #2: Audio Skipping on mouse press

Previously, the audio would skip whenever the user clicked anywhere. This proved especially bothersome when the file window from the button to add songs. This was actually caused by a problem in the seek bar logic. The seek bar throws an event every time it changes, even if that change is generated by the program itself. In order to distinguish user changes and system changes, there was a condition checking for whether the mouse was pressed and the seek bar's value matched the song's duration. In order to fix the bug, a condition for the mouse to be over the bar was added.

Bug Fix #3: Incorrect Time on Seek Bar

Previously, adding a song would not change the seek bar's maximum range, meaning that the seek bar did not reflect the time of the new song. This also occurred when hitting a song's play button. Including the required method in the places where it needed to be resolved the issue.

Feature #1: FFT

The FFT feature is now included and sits directly above the seek bar. Just like the level ellipses and waveforms, the mix is drawn on top of the left and right results. For clarity's sake, the left results are shifted to the left and right to the right.

Feature #2: Local Storage

The app now locally stores songs that are added to playlists. These songs are stored in the app by this path:

Cyamtica -> Contents -> Java -> data -> Library -> {Playlist name}  -> song File

Until I update the app, this will be what always happens when you add a song to a playlist. The app then saves a reference to the local path as well as the original path in playlists.json.

Cyamtica -> Contents -> Java -> data -> playlists.json

For now, in order to remove anything from the app, you have to manually delete its entry in the playlists.json file and local storage. To change information about a song, you must also modify the playlists.json file.

Feature #3: Loop symbol

This feature doubles as a test basis for the rest of the control UI. As of now, one can only use the keyboard to control the player.

  • Left/Right: skip back/forward 5 seconds. Double tap to skip the entire song.
  • Up/down: raise/lower player volume
  • M: mute the player
  • Spacebar: play/pause the song
  • L/R: Toggle looping. The player always loops a playlist, but you can choose whether or not to loop a single song.
  • S: Toggle shuffle mode. If not active, move through the list from top to bottom.
  • H: Hide UI

The loop symbol is added as the beginning of control UI construction.

Files

Cymatica (Silicon).app.zip 317 MB
Dec 13, 2022
Cymatica (Intel).app.zip 193 MB
Dec 13, 2022
Cymatica.exe 68 kB
Dec 13, 2022

Get Cymatica

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.