Releases: AudiTranscribe/AudiTranscribe
Version 0.11.0
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.
- Previously,
- 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
toThirty-second Note
. - Fixed issue where attempting to update the note labels after initialization causes note labels to be slightly
misaligned. - Fixed an issue where
NoteRectangle
s' 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
toCustomLogger
. - Renamed
ClassWithLogging
toLoggableClass
. - Added integer logarithm base 2 method, called
binlog()
, toMathUtils
.- Simultaneously, updated implementation of
getNumSetBits()
inMiscUtils
.
- Simultaneously, updated implementation of
- Moved all frequency bin generation methods to
FrequencyRangeGeneration
. - Renamed
StatisticalUtils
toStatisticsUtils
. - Moved
histogram()
method fromArrayUtils
toStatisticsUtils
. - 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'sMediaPlayer
. Also- allowed for other audio devices to be used for playback;
- made audio slowdown implementation be real-time.
- Reorganized
module-info.java
andpom.xml
. - Use Winograd form For Strassen matrix multiplication.
- Made
getAbsoluteFilePath()
exception message be clearer. - Removed
SpectralHelpers
; addedSignalHelpers
in its place. - Moved matrix methods in
ArrayUtils
intoMatrixUtils
. - 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)
).
- Previously, we used hex strings (e.g.,
- 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.
- files that are used by multiple tests will appear under
- Create
GUIUtils
; moved methods inProjectIOHandlers
intoGUIUtils
. - Remove
themeColours
entry fromicons.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 fornull
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;
- but some CSS files (e.g.,
- colours for each theme are placed in the
theme
folder, with common colours found inshared-colours.css
.
- the
- 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 intofxml
. - 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
'sroundNicely()
toround()
. - 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
to0x000B0003
; improvements to the
file format are listed below.- Remove need to save the slowed audio in the file.
- Remove need to compress the MP3 bytes in the file.
- Use DEFLATE algorithm instead of LZ4 to compress the spectrogram data.
- Renamed
AUDTFileWriter
'swriteBytesToFile()
method towriteToFile()
. - 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
, andTempogram
by removing redundant transpose-then-transpose code. - Make
PLAYBACK_BUFFER_SIZE
be in sample count instead of bytes. - Moved
NoteRectangleCollisionException
toNoteRectangle
; renamed it toCollisionException
(since it is already
inNoteRectangle
). - Fixed incorrect setter method
setSpectrogramPaneAnchor()
inNoteRectangle
by renaming
tosetSpectrogramAnchorPane()
. - Moved
AudioProcessingMode
intoAudio
; renamed it toProcessingMode
(since it is already inAudio
). - Moved some
Audio
methods intoAudioHelpers
in order to reduce clutter. - Permit multiple channels, not just 1 or 2.
- Added
principalArg()
method toMathUtils
. - Made
StoppableThread
log exceptions. - Renamed
IOMethods
'sgetInputStream()
toreadAsInputStream()
. - Added new
matrixMags()
method toMatrixUtils
; deprecatedstftMags()
in favour of this new method. - Merged all classes in the
scene_switcher
package intoSceneSwitcher
. - 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...
Version 0.10.0
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
toapp.auditranscribe
. - Use an abstract setup wizard view class to reduce code complexity.
- Merged the
main_views
andsetup_wizard
views into one package.- This should help reduce clutter and make things easier to find.
- Renamed
IconHelpers
toIconHelper
. - 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
This release is a hotfix for a critical bug.
Bugfixes
- Fix incorrect access modifier for the icons' data.
Version 0.9.2
This release fixes an issue with the installer.
Bugfixes
- Fix issue with downloading resources.
Version 0.9.1
This release quickly amends a problem with the API webserver.
Bugfixes
- Update API webserver URL.
Version 0.9.0
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
, andUnitConversionUtils
. - Update use of ceiling/floor division.
Version 0.8.3
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
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
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
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.
- Specifically, any AudiTranscribe file with a version that is
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
to0x00080001
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!