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

Introduce #VOCALS #627

Open
marwin89 opened this issue Nov 19, 2023 · 6 comments
Open

Introduce #VOCALS #627

marwin89 opened this issue Nov 19, 2023 · 6 comments
Labels
Song Format Official song format requirement

Comments

@marwin89
Copy link
Contributor

marwin89 commented Nov 19, 2023

Suggestion:

  • Introduce #VOCALS Attribute in Song parser/ txt-file.
  • This Attribute points to audio file with only vocals (accapella)
  • Feature: volume of vocals can be adjusted (while #INSTRUMENTAL playing n sync)
  • Feature: Accapella mode select in song screen
  • Normal mode plays # AUDIO (music vocals in one file combined)
  • search for files matching the following scheme in case of the tags are missing:

#VOCALS: Artist - Title of the song [VOC].mp3

#INSTRUMENTAL: Artist - Title of the song [INSTR].mp3

(according to official common Song format Specification v1.1.0 - release on: 1th Dec 2023)

@flokuep flokuep added the Song Format Official song format requirement label Nov 19, 2023
@flokuep flokuep changed the title [Song Format] - Introduce #VOCALS Introduce #VOCALS Nov 19, 2023
@flokuep
Copy link
Member

flokuep commented Nov 21, 2023

That's the most challenging change for the new song format, as it has impact on the game logic. I would split that into several parts, next to some preparations.

Preparations:

  • Adding new tags with new files is easy, can be done in the same way as it is currently done for the MP3 tag.

Step 1: Playing multiple files in sync

  • For that feature we need to have multiple audio files played in sync, most of the logic for the song played during singing is handled within CSCreenSing.
  • Have a look on the _CurrentStream integer, as this holds an identifier for the currently played audio file.
  • I suggest to do a proove-of-concept here first by duplication that _CurrentStream stuff and check if it is possible to play multiple files at the same time (with a random audio file) and if you can keep both streams in sync (with the same audio file)
  • If that is sucessfull, you can extend the code to handle all three audio streams - Otherwise, a rewrite of the audio stuff is necessary (have a look on the background-music stuff, maybe that's helpful).

Step 2: Add game logic for it

  • As a first simple step I suggest to implement switching through the different modes by pressing a key

Step 3: UI enhancements

  • Draw some concepts how these features could be integrated into the ui. There is a song menu where another selection slider can be added, but if I remember correctly, that menu is already compex
  • The volume adjustment could be added to the pause screen for example.

Complexity: L to XL.

@bigboss97
Copy link

Love to see this feature 😊
I guess "multiple audio files played in sync" is a big job. But if the channels are mixed in real time the user can even adjust the level of the vocal separately 👍

I would suggest that Vocaluxe will have default filenames for #INSTRUMENTAL and #VOCALS, e.g. adding pre/postfix on the #MP3 filename. In case the two new tags aren't present Vocaluxe will try to fetch instrumental and vocals files based on the default name. The reason for that... when an user wants to split the vocal of an existing song he only needs to get the filenames right and no need to touch the existing TXT-file.

@flokuep
Copy link
Member

flokuep commented Apr 8, 2024

@marwin89 are there some thought on a naming convention for these files in the spec? I like the idea of having them as this is a common thing for the most singing programs...

@marwin89
Copy link
Contributor Author

marwin89 commented Apr 8, 2024

@flokuep @bigboss97 , thanks for asking. yes we already defined a naming convention for these files in the spec in october 2023. I just forgot to mention it here.

Here it is:

#VOCALS: Artist - Title of the song [VOC].mp3

#INSTRUMENTAL: Artist - Title of the song [INSTR].mp3

@flokuep
Copy link
Member

flokuep commented Apr 8, 2024

Thanks! I've added that to the issue description.

@bigboss97
Copy link

@flokuep @bigboss97 , thanks for asking. yes we already defined a naming convention for these files in the spec in october 2023. I just forgot to mention it here.

Great!
because I'm thinking... as soon as that feature is available I'll run a script on all songs to split the vocal. It will be a dumb script, simply fetch the MP3 file and generate two new files, i.e. not touching TXT file at all.

Please let me know when there's any test version ready, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Song Format Official song format requirement
Projects
None yet
Development

No branches or pull requests

3 participants