Skip to content
This repository has been archived by the owner on Sep 9, 2023. It is now read-only.

Releases: AudiTranscribe/AudiTranscribe

Version 0.11.0

03 Mar 07:50
v0.11.0
65d4bf4
Compare
Choose a tag to compare

This release comes with massive changes to the overall look and feel of AudiTranscribe.

Additions

  • New UI: The user interface of AudiTranscribe was overhauled. AudiTranscribe should now look cleaner, more
    professional, and easier to use than before.
  • Audio Device Changing: The audio playback device can now be customized and specified in the settings view.
  • Better File Format: The saved project files should now be smaller, due to a number of optimizations on the file
    format. Read all the optimizations here.
  • Better Music Key Estimation: Use an improved set of estimation profiles to improve the guess of the estimated key.
    Read about that specific optimization here.
  • Improved Efficiency: Removed many redundant things from AudiTranscribe, and improved algorithms used. This should
    help optimize the code and improve efficiency.

In addition, this update also

  • added MuseScore source files for some example audio;
  • added AudiTranscribe files for some example audio;
  • added a better high-contrast mode;
  • added the time signature and offset value to project setup view;
  • added a link to documentation website on the initial setup view.

Changes

  • Modified how the update checker operates and checks for new updates.
    • Previously,
      • the update checker would check every so often (e.g., every 24 hours);
      • pressing "remind later" would pause update checking for a period of time (e.g., 72 hours), after which the
        update checker would continue checking at the original interval (e.g., 24 hours);
      • failure to reach GitHub servers (e.g., offline) would be the same as pressing "remind later".
    • Now,
      • the update checker would check every time the program is opened.
      • pressing the "remind later" button would pause for a period of time (e.g., 72 hours), before the checker would
        continue to check every time the program is opened;
      • failure to reach GitHub servers (e.g., offline) would skip checking for that instance only. Update checking
        resumes upon opening the program again.
  • Attempting to change the theme from the settings view will now update all opened views' themes.
  • Memory use statistics are located near the top-right corner of the spectrogram on the transcription view.
  • Updated the naming scheme of the backup files.
  • Improved the efficiency of the Fast Fourier Transform (FFT), making processing much faster.
  • Made lines on the spectrogram be thinner, allowing for easier viewing of the spectrogram.
  • Improved quality of saved audio by saving audio at a higher bitrate.
  • Attempting to save a new project will now use the project name as a suggested file name.
  • The setup process is now much shorter.
  • Added special warning for the update checker if internet access is unavailable.
  • Changed default update playback scheduler period from 50ms to 10ms.
    • This should make the playback line move more smoothly.
  • Switched order of music key and BPM on the project setup page.
  • Swapped the order of the theme setup and FFmpeg setup views.

Fixes

  • Fixed an issue where an unwanted java0.log was (consistently) created in the home directory of the user.
  • Fixed typo in one of the note units; changed Thirty-Second Note to Thirty-second Note.
  • Fixed issue where attempting to update the note labels after initialization causes note labels to be slightly
    misaligned.
  • Fixed an issue where NoteRectangles' timestamp used could cause collisions in UUIDs.
    • Now, using nanosecond precision, this should be fixed.
  • Fixed issue with null worker at end of audio.
  • Fixed missing "hand" icon when focusing on the menu item of a choice box.
  • Fixed an issue where a failure to check if there is an audio object caused a soft lock where the program fails to
    quit.
  • Fixed an issue where the keyboard shortcuts do not work if the current focus is on a spinner's text field or if its on
    a spinner.
  • Fixed an issue where, after deleting a project from the homepage, empty list cells were highlighted.
  • Fixed weird hyperlink click areas on the "about" view.

Technical Changes

  • Reorganised pom.xml.
  • Update project dependencies' versions.
  • Renamed MyLogger to CustomLogger.
  • Renamed ClassWithLogging to LoggableClass.
  • Added integer logarithm base 2 method, called binlog(), to MathUtils.
    • Simultaneously, updated implementation of getNumSetBits() in MiscUtils.
  • Moved all frequency bin generation methods to FrequencyRangeGeneration.
  • Renamed StatisticalUtils to StatisticsUtils.
  • Moved histogram() method from ArrayUtils to StatisticsUtils.
  • Made FFmpegHandler be more like a static class; removed need to initialise a new instance of it to use its
    functions.
  • Made Audio use native Java methods instead of relying on JavaFX's MediaPlayer. Also
    • allowed for other audio devices to be used for playback;
    • made audio slowdown implementation be real-time.
  • Reorganized module-info.java and pom.xml.
  • Use Winograd form For Strassen matrix multiplication.
  • Made getAbsoluteFilePath() exception message be clearer.
  • Removed SpectralHelpers; added SignalHelpers in its place.
  • Moved matrix methods in ArrayUtils into MatrixUtils.
  • Moved spectrogram magnitude generation and plotting methods all into one class, Spectrogram.
  • Changed how colours are represented in source files.
    • Previously, we used hex strings (e.g., #12ab34). Now, we use RGB(A) values (
      e.g., rgb(12, 34, 56), rgba(128, 23, 45, 0.6)).
  • Added integer to hexadecimal converter (intAsPaddedHexStr()) for easier displaying of the file version.
  • Reorganized testing files. Now,
    • files that are used by multiple tests will appear under general;
    • files that are used by a single test will appear in a folder with the test's name.
  • Create GUIUtils; moved methods in ProjectIOHandlers into GUIUtils.
  • Remove themeColours entry from icons.json; make the SVG paths inherit their colours from the CSS themes instead.
  • Added AbstractViewController class to collect common methods shared by all view controllers.
  • Made getFileURL warn for null URL.
  • Reorganized CSS files. Now,
    • the base.css file contains general styling that is applicable to all views;
    • each view has its own specific CSS file (e.g., homepage.css, about.css) that handles the styling for that
      view;
      • but some CSS files (e.g., popups.css) styles a general type of view;
    • colours for each theme are placed in the theme folder, with common colours found in shared-colours.css.
  • Removed "overridden methods" headings; merged overridden methods into the sections of the appropriate access modifier.
  • Removed misleading comments about the access modifier of sections.
  • Changed how icons are loaded on the scene.
    • Removed the need to specify the theme of the icon.
  • Moved plotting methods into fxml.
  • Added a helpful TimeIt class for timing how long a piece of code takes.
    • This is meant for debugging purposes only.
  • Used E. Oran Brigham's described algorithm to improve efficiency of the FFT.
  • Renamed Complex's roundNicely() to round().
  • Changed default playback buffer size from 1024 to 2048.
  • Exclude the hashCode() method from the generated coverage report.
  • Removed revision numbers from the data encapsulates.
  • Moved reading of WAV bytes to extraction of MP3 bytes method.
  • Moved some Q-Transform methods into version 0.5.0 data encapsulator.
  • Increased saved MP3s' bitrate from 96k to 128k.
  • Merged FFmpeg setup wizard views into one view, ffmpeg-setup.fxml.
  • Updated file version from 0x00090002 to 0x000B0003; improvements to the
    file format are listed below.
    1. Remove need to save the slowed audio in the file.
    2. Remove need to compress the MP3 bytes in the file.
    3. Use DEFLATE algorithm instead of LZ4 to compress the spectrogram data.
  • Renamed AUDTFileWriter's writeBytesToFile() method to writeToFile().
  • Removed COMPRESSOR_VERSION_NUMBER.
  • Use David Temperley's 1999 key profiles instead of the default Krumhansl-Schmuckler profiles to improve music key estimation accuracy.
  • Fixed inconsistent naming of FXML-related files.
  • Added a test for audio samples' values.
  • Improved efficiency of STFT, ChromaCQT, and Tempogram by removing redundant transpose-then-transpose code.
  • Make PLAYBACK_BUFFER_SIZE be in sample count instead of bytes.
  • Moved NoteRectangleCollisionException to NoteRectangle; renamed it to CollisionException (since it is already
    in NoteRectangle).
  • Fixed incorrect setter method setSpectrogramPaneAnchor() in NoteRectangle by renaming
    to setSpectrogramAnchorPane().
  • Moved AudioProcessingMode into Audio; renamed it to ProcessingMode (since it is already in Audio).
  • Moved some Audio methods into AudioHelpers in order to reduce clutter.
  • Permit multiple channels, not just 1 or 2.
  • Added principalArg() method to MathUtils.
  • Made StoppableThread log exceptions.
  • Renamed IOMethods's getInputStream() to readAsInputStream().
  • Added new matrixMags() method to MatrixUtils; deprecated stftMags() in favour of this new method.
  • Merged all classes in the scene_switcher package into SceneSwitcher.
  • Updated some tests to use the beforeAll() initializer.
  • Removed redundant CSS 'parent selectors'.
  • Move transcription scene closing code into new method.
  • Fix exception popups' headings.
  • Renamed some variables' names so that they are shorter.
  • Moved class-specific exceptions into their own classes...
Read more

Version 0.10.0

20 Jan 07:33
v0.10.0
d5ad613
Compare
Choose a tag to compare

This release comes with some changes and a minor feature addition.

Additions

  • Added a debug mode for developers.

Changes

  • Deprecate the use of API for setup wizard (see below).

Removals

  • Removed API server dependence; now queries GitHub for the latest versions.
  • Removed unused packages and imports.
  • Remove unneeded schedulers in the transcription view.
    • This should help reduce lag in that view.

Bugfixes

  • Fix download data attributes.
  • Fix weird sizing of preferences view buttons.
  • Fix run configurations.
  • Fix imports in some tests.
  • Fix incorrect resources folder path.

Technical Changes

  • Renamed the main package from site.overwrite.auditranscribe to app.auditranscribe.
  • Use an abstract setup wizard view class to reduce code complexity.
  • Merged the main_views and setup_wizard views into one package.
    • This should help reduce clutter and make things easier to find.
  • Renamed IconHelpers to IconHelper.
  • Update the "stale" CI action.

Final Comments

We are hard at reworking the core code and redesigning the user interface to make it easier. This should help make AudiTranscribe easier to use and reduce bugs in the future. Stay tuned for that!

Version 0.9.3

16 Nov 01:20
Compare
Choose a tag to compare

This release is a hotfix for a critical bug.

Bugfixes

  • Fix incorrect access modifier for the icons' data.

Version 0.9.2

08 Nov 10:22
Compare
Choose a tag to compare

This release fixes an issue with the installer.

Bugfixes

  • Fix issue with downloading resources.

Version 0.9.1

06 Nov 00:34
Compare
Choose a tag to compare

This release quickly amends a problem with the API webserver.

Bugfixes

  • Update API webserver URL.

Version 0.9.0

05 Nov 10:16
Compare
Choose a tag to compare

Although this release does not add any major features, it adds Linux support, enhances quality of life, improves performance, and fixes several bugs.

Additions

  • Add button to visit app data folder.
  • Add documentation for AudiTranscribe.
  • Add Linux support to AudiTranscribe.
  • Add more time signature options.
  • Add undo/redo for note rectangles.
  • Be more generous with exceptions.
  • Increase time signature options.

Bugfixes

  • Cancelling saving project shows progress bar, closes #28.
  • Fix an imprecision in note label alignment, closes #22.
  • Fix issue where preferences view could be hidden.
  • Fix issue with current octave rectangle leaving screen.
  • Fix weird resizing of buttons.
  • Fix weird resizing of hyperlinks upon hover.
  • Incorrect positioning of transcription window.
  • A weird window overflow was fixed.

Performance Improvements

  • Change division to multiplication in several contexts.
  • Change seconds per beat calculation.
  • Clean up code in some files.
  • Improve performance of ArrayUtils, BPMEstimationHelpers, Complex, FFT, FrequencyBins, PlottingStuffHandler, and UnitConversionUtils.
  • Update use of ceiling/floor division.

Version 0.8.3

23 Oct 11:06
Compare
Choose a tag to compare

This release changes the default font and fixes an annoying bug.

Changes

  • Changed default font to Lato.

Bugfixes

  • Fix an incorrectly sized button on the project setup view.

Version 0.8.2

22 Oct 03:30
v0.8.2
f05cd53
Compare
Choose a tag to compare

This release comes with a few minor changes and bugfixes.

Additions

  • Added download progress to some of the setup views that downloads files.

Removals

  • Database updating code for Version 0.7.x was removed.

Changes

  • Changing the note delay value is now prohibited if audio is playing on the "fix note delay" setup view.
  • Changed the volumes of the audio that plays on the "fix note delay" setup view.

Bugfixes

  • Fixed a minor annoyance on the "fix note delay" setup view where the playhead line was slightly misaligned.
  • Fixed an issue on the "fix note delay" setup view where the playhead line did not go back to the start when the audio was stopped.

Technical Changes

  • The size of the audio resource WAV file has been reduced.
  • The spectrogram for the "fix note delay" setup view was changed to better fit the pane that it is in.
  • Enum values for AudioProcessingMode were renamed to be more consistent.

Version 0.8.1

17 Oct 08:09
v0.8.1
1a1b803
Compare
Choose a tag to compare

This release fixes a few critical issues and introduces a feature that was missed in the previous release.

Additions

  • Added customization of the note quantization amount to the preferences view.

Changes

  • Changed some headings on the preferences view.
  • Fixed an annoying typographical inconsistency on the preferences view.

Bugfixes

  • Fixed a critical issue where the application crashes immediately on start.
    • This was due to the inability of the application to locate the icons' JSON file locally.
  • Fixed an issue where the note quantization failed to properly change the width of the note rectangles.
  • Fixed an issue where note quantization was still permitted even though the audio was playing.

Technical Changes

  • GitHub actions were updated.
  • Transcription scene shutdown protocol was changed.

Version 0.8.0

16 Oct 12:07
v0.8.0
2af98a9
Compare
Choose a tag to compare

Hello all! This update comes with some new features and several improvements to the operation of AudiTranscribe.

New Features

  • More Playback Features: Added audio slowdown functionality. You can now slow down the audio to transcribe the audio piece more clearly.
  • Note Quantization: Added a function that allows the notes placed to be quantized. That is, you can now click a button to nicely organise placed notes to match specific beat multiples.
  • Accessibility Features: We've added some accessibility features to AudiTranscribe:
    • Added a high-contrast mode to make the UI elements stand out more.
    • Changed the icon set to be more friendly and easier to understand (see next feature).
  • New Icon Set: Icons have been changed to use Clarity Design icons instead of Ionicons icons. This is to make the intended purpose of the buttons easier to understand.
  • Make Algorithms More Efficient: Algorithms that are used to process the spectrograms have been made to be more efficient. The spectrogram generation process should now be faster.

Changed

  • Added a button to the preferences view to delete old logs.
  • Added tooltips to buttons on the transcription page to make their purpose clearer.
  • Changed note placement protocol. The note placement and editing process should now be smoother than before.
  • AudiTranscribe files created in Version 0.4.1 or earlier are no longer supported.
    • Specifically, any AudiTranscribe file with a version that is 401 or earlier is no longer supported.

Bugfixes

  • Fixed a weird issue where note rectangles' collision detection is too strict and results in rectangles being too far away from each other when moved.
  • Fixed issues with note rectangles where resizing stopped awkwardly.
  • Fixed an issue which made seeking to the end produce a nasty sound.
  • Fixed some note playback issues.
  • Fixed an issue which made seeking to the end not stop the audio.

Technical Changes

  • AudiTranscribe dependency versions were updated.
  • The AudiTranscribe File Version has been updated from 0x00070001 to 0x00080001 to accommodate the changes.
  • Replace PNGs with SVGs for icons. This is to increase the quality of the icons of the buttons and reduce the size of the application.
  • The exceptions module was removed in favour of placing each module's exceptions directly into the module itself.

Final Comments

We are working hard on upcoming Linux support for AudiTranscribe, which is currently being worked on by @Oxyhydride. Keep a look out for the next update which should (hopefully) bring along these changes!