Tutorials:
How to create songs for karaoke with Ultrastar-Creator and Yass.
So, you want to sing your own songs at karaoke and have decided to add them yourself, good choice! What you need:
- A [windows/linux/mac] installation with
- Ultrastar-Creator (USC) for the rough timing (https://sourceforge.net/projects/usc/ for windows, https://github.com/UltraStar-Deluxe/UltraStar-Creator for other platforms)
- Yass, for refinement (http://yass-along.com/download/)
- Performous, for testing https://github.com/JCES-Kinjin/performous
- An audio file for the song. (essential, mp3 while timing/editing, can be replaced with other format afterwards)
- The lyrics of the song. (essential, duh)
- A video file for the background video that shows while singing. (optional, can be added later)
- A cover picture. (optional, can be added later)
- A background picture. (optional, can be added later)
You'll want all of these (except for the lyrics) in the same, otherwise empty folder so USC can detect them.
So, you've got all the essential parts? Now, open up USC, tell the tutorial mammoth to leave and never come back, then open up the .mp3 file, and fill in the tags on the left. Next, paste the lyrics into the middle box, and make sure they're formatted correctly:
- Between every word there is a space ‘ ’
- Between every syllable there is a ‘+’
- When a single syllable stretches across beats, or changes pitch, denote this using tildes ‘~’.
- Lines should neither be too long, nor too short. You'll get a feel for this in no time.
A+i ta sa wo ne+ga+u ta+bi Hi+ka+ri wo to+ki ha+na+tsu wa Hi+to+ri ki+ri wo na+ge+i ta A+no hi no ho+ta+ru no yo+u niExamples of incorrect formatting:
Ai ta sa wo negau tabi (No “+” between syllables)
Hi_ka_ri wo to_ki ha_na_tsu wa Hi_to_ri ki_ri wo na_ge_i ta (Those are underscores, not plusses. This isn't Composer.)
Delightful, you're ready to time the song! Press the big play button to start, then use spacebar to time the lyrics! You can hold down spacebar if the syllable is particularly long, but it's easier to do this afterwards in Yass.
Press X to go back a syllable, this will skip back in the song as well.
NOTE: You can change the playback speed for better timing accuracy!
Once you're satisfied with the rough timing, save the file, and open it in YASS (there's a handy button for that in USC) for fine-tuning
- move selections around with SHIFT+Arrows,
- move only the ends of syllables with ALT+Arrows,
- move only the starts of syllables with CTRL+Arrows,
- listen to the selection with SPACE,
- listen to the fragments before/after the selection with B/N respectively,
- listen to the entire page/sentence with P,
- re-record a selection by pressing CTRL+R,
- and even select the entire song with CTRL+PgDn.
Now it's testing time! Open up Performous and sing your song. Are the lyrics timed correctly? Go over them again with Yass and edit any errors you made, export again and sing! Repeat that process until you're happy with the timing.
When done, upload it somewhere and post the link in the #karaoke channel on discord!
How to make duets:
Add a dummy syllable (can be anything, I suggest a ‘~’) at the start of both sets of lyrics, and time it at the very start of the song (this should result in a GAP of 0, which makes merging them a lot easier) Time both sets of lyrics into separate files, then:
- Make a copy of the first file, this will become the merged file
- Open up the merged file, and replace the line with the starting tilde with the text ‘P1’ (no numbers, no hash sign, just those two characters). Add the #DUETPLAYER1 and #DUETPLAYER2 tags with appropriate values (the names of the respective singers, usually)
- Open up the second file, copy everything except the tags and the E at the end of the file, and paste it into the merged file, right before the E, then replace the line with the starting tilde with the text ‘P2’.
- Save the copy!
Duet example
#ARTIST #MP3 ⁞ P1 - 0 1 0 blah ⁞ P2 - 0 3 0 blah ⁞ E
Update (sept 2022): Yass now supports duet files! Yay! Haven't tried it myself, but check the changelog on the Yass website for details
How to rip (some of) the required files from YouTube (and most other sites).
Use yt-dlp (https://github.com/yt-dlp/yt-dlp/releases/latest) with the following config file (save it somewhere as a .conf file, then use it with --config-location, ex.: yt-dlp --config-location ytdl-karaoke.conf
)
--ignore-config --compat-options no-live-chat --concurrent-fragments 4 #!!! UNCOMMENT AND CHANGE #--ffmpeg-location ' ' --no-playlist --no-mark-watched --downloader native --hls-use-mpegts --no-part #replace this with whatever browser you use --cookies-from-browser chrome --check-formats --format 'bv*,ba' --format-sort 'res~720,+vcodec:h264,+hasaud,acodec:opus' --keep-video --write-subs --no-write-auto-subs --sub-format 'srt/best' --sub-lang all --extractor-args 'youtube:skip=translated_subs' --write-thumbnail --convert-thumbnails jpg --extract-audio --audio-format mp3 --audio-quality 128K --ignore-errors #!!! UNCOMMENT AND CHANGE #--paths ' ' #base folder for your karaoke projects --output '%(artist|.)S/%(artist|)S%(artist& - |)S%(track,title)S/%(track,title)S (%(format)S).%(ext)s' --output 'thumbnail:%(artist|.)S/%(artist|)S%(artist& - |)S%(track,title)S/%(track,title)S (THUMB).%(ext)s' --output 'subtitle:%(artist|.)S/%(artist|)S%(artist& - |)S%(track,title)S/%(track,title)S.%(ext)s'Grab FFmpeg from https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest (select the master-latest-[OS]-gpl-shared version)