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 basic cleanup tasks for songs #20

Open
19 of 28 tasks
bohning opened this issue Nov 15, 2022 · 5 comments
Open
19 of 28 tasks

Add basic cleanup tasks for songs #20

bohning opened this issue Nov 15, 2022 · 5 comments
Labels
enhancement New feature or request

Comments

@bohning
Copy link
Owner

bohning commented Nov 15, 2022

The tool could perform some basic cleanup/fixes on the songs, e.g.

  • replace decimal commas by decimal points in #BPM, #GAP, #PREVIEWSTART, #START
  • delete leading line break (after header, before first note)
  • delete trailing line break (after last line, before E)
  • round #GAP to nearest integer (to nearest 10 ms)
  • shift first note to beat 0 (and adjust #GAP accordingly)
  • increase low BPM values (all all timings) to be in a sensible range (200 <= BPM < 400)
  • decrease (insanely) high BPM values (and all timings) to be in a sensible range (e.g. BPM <= 600?)
  • fix line break timings (similar to USDX Editor -> T)
  • fix touching notes (shorten earlier note by 1 if duration > 1)
  • normalize pitch values (sometimes they are in the 60s --> lowest pitch in [0, 11])
  • correct spaces (after each word instead of in front of each word)
  • fix empty notes (~?)
  • replace accents misused as apostrophes (accents ` and ´ -> ')
  • convert relative to absolute timestamps
  • round #BPM to 2 decimal digits
  • replace upright apostrophe ' by typographer’s apostrophe ’ (optional?)
  • capitalize the beginning of each line (similar to USDX Editor -> C, optional?)
  • fix overlapping notes (shorten earlier note by overlap + 1 if resulting length >= 1)
  • fix zero-length notes (how?)
  • ensure medley start and end beats are on note start and end respectively
    If we look for the next note end going backwards, this would also fix a gap introduced by the touching notes fix.
  • fix quotes (single 'text', double "text" etc. to “text” or »text« or «text» etc. depending on language)

Advanced cleanup:

@DeinAlptraum
Copy link

DeinAlptraum commented Dec 8, 2023

replace upright apostrophe ' by typographer’s apostrophe ’ (optional?)

I would really appreciate if this could be made optional (i.e. allowing to choose the apostrophe you prefer)

@bohning
Copy link
Owner Author

bohning commented Dec 9, 2023

I would really appreciate if this could be made optional (i.e. allowing to choose the apostrophe you prefer)

What would you choose and why?

@DeinAlptraum
Copy link

I prefer the straight apostrophe ' visually.
I've also had various problems in the past with files with typographer's apostrophe in their name not being recognized by USDX, though it's been a while, but I would prefer to eliminate this source of errors to be sure.

@bohning
Copy link
Owner Author

bohning commented Sep 9, 2024

I guess the best option to handle notes of zero length is to extend them to 1 beat duration if there is 2 beats space to the beginning of the next note. What do you think?

@bohning
Copy link
Owner Author

bohning commented Sep 9, 2024

How shall we handle txt files without linebreak timings? The syncer could insert linebreak timings (then they would work with the current USDX), or it could consider the linebreak timing optional. Currently, the linebreaks are deleted entirely by the syncer, rendering the file unusable (related: USDX refuses to load files that do not contain a single line break, presumably because songs with a single line of lyrics are rather uncommon, but exceptions exist: https://usdb.animux.de/index.php?link=detail&id=25978, see UltraStar-Deluxe/USDX#895).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants