Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add loop, volume, and title editing to BGM editor #52

Merged
merged 22 commits into from
Mar 28, 2023

Conversation

jonko0493
Copy link
Member

@jonko0493 jonko0493 commented Mar 28, 2023

This PR significantly expands the feature set of the BGM editor, allowing for full editing of BGM files.

image

The main interface has changed the title to a text box and will update the extra file on change. The extra file is stored as part of the project and only saved once on save to prevent changes from colliding.

image

When replacing a file or opening either the loop or volume dialogs, the BGM is cached as a wav file and stored in the Serial Loops cache directory. This directory is cleared on project load to prevent bad caching.

image

Upon clicking the "Manage Loop" button, the following preceding dialog is opened. This dialog contains a checkbox for turning on/off looping functionality and two sliders/numerical steppers for adjusting the loop in and out sections. Internally, the sliders are locked to the sample count of the cached wave file, which is also what is used to generate the waveform image. The numerical steppers use the sample rate to calculate their value in seconds. The sliders and numerical steppers both update each other and it is impossible to set the start time beyond the end time and vice versa. The play button provides a preview of the last five seconds of the loop followed by the first five seconds of it.

image

Finally, there is the volume dialog. This dialog has a single slider that allows the volume to be adjusted up and down. The waveform changes as the slider is moved to show the output volume in real time.

image

The sound player also changes as the volume is adjusted so the sample can be previewed appropriately.

image

WAV, FLAC, MP3, and Vorbis (OGG) files are all supported. Additionally, this automatically downsamples high samplerate audio files to the max NDS samplerate and, for mono-only AHX files, automatically downmixes to mono audio.

Adjusted BGM and voice line tests to account for some of the new functionality.

@jonko0493 jonko0493 self-assigned this Mar 28, 2023
Copy link
Member

@WiIIiam278 WiIIiam278 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work. Moving the Dialogs to their own folder is a dumbfoundingly excellent decision that we should have made approximately forever ago. Just a few ui nits

src/SerialLoops/Dialogs/BgmLoopPropertiesDialog.cs Outdated Show resolved Hide resolved
src/SerialLoops/Dialogs/BgmVolumePropertiesDialog.cs Outdated Show resolved Hide resolved
src/SerialLoops/Dialogs/BgmVolumePropertiesDialog.cs Outdated Show resolved Hide resolved
src/SerialLoops/Dialogs/BgmLoopPropertiesDialog.cs Outdated Show resolved Hide resolved
@jonko0493 jonko0493 merged commit 83538c1 into haroohie-club:main Mar 28, 2023
@jonko0493 jonko0493 deleted the SoundRedux branch March 28, 2023 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants