Add custom songs to Let's Sing! (2022) from UltraStar

First of all massive credit to @Dh4rry, check out their original post on replacing a DLC song with your own here: https://gbatemp.net/threads/add-your-own-songs-to-lets-sing-2019.538379/
In this tutorial we will be making use of a customized version of their script to convert an UltraStar (PC karaoke game) TXT file to Let's Sing's VXLA format. Their research was also used by me as the jumping off point. Importantly however this tutorial will delve into how to ADD, NOT REPLACE songs!

NOTICE:
This tutorial is no longer actively supported, and is provided as-is. I the author will not be providing any help in regards to this tutorial. Please feel free to ask questions in the thread, in the hopes someone can help you, do not expect me to reply.
Secondly it has come to my attention that nxdumptool does not work on the latest firmwares (17.0+), this is not a required part of this tutorial. Any other method of dumping romfs will work just fine. (DBI is a good example)


Demo:

(I imported more than one song though!)

Step 0: Prerequisites
- Homebrew capable Nintendo Switch
- AtmosphereNX installed
- A Let's Sing game (Only tested on 2022, should work on all games)
- A DLC for the Let's Sing game
- Basic knowledge of directories
- Linux/Windows PC (MacOS might work?)
- FFMPEG (Linux: "sudo apt install ffmpeg" or your package managers equivalent", Windows: Download the binaries here or something: https://ffmpeg.org/download.html)
- Python3

Step 1: Dumping the required assets
1. Get "nxdumptool" if you don't have it installed already (https://github.com/DarkMatterCore/nxdumptool/releases/tag/v1.1.14)
2. Launch "nxdumptool"
3. Choose "Dump installed SD card / eMMC content"
4. Choose "Let's Sing 2022" (or your version, it should not actually matter, but I only tested 2022)
5. Choose "RomFS options"
6. Navigate to "Use update/DLC" and use the right/left arrows to select the update (v131072/0.0.2.0 for LS2022 as of writing)
7. Choose "RomFS section data dump" (You might want to take note of this as the "Core titleid")
8. Navigate back to the "RomFS options" after dumping has finished
9. Navigate to "Use update/DLC" and use the right/left arrows to select the first DLC you see (Does not matter which DLC you have)
10. Choose "RomFS section data dump" (You might want to take not of this as the "DLC titleid")
11. Done!

Step 2: Getting the files you need
0. Create a folder somewhere where you can modify files, and create your "mod". We'll be calling this folder the "Working folder" from now on.
1. Access your Switch's SD card contents from your PC either directly or through FTP
2. Find the following file: sd:/atmosphere/contents/[CORE TITLEID]/romfs/Data/StreamingAssets/SongsDLC.tsv and copy it to your working folder
3. Find the following file: sd:/atmosphere/contents/[DLC TITLEID]/romfs/name.txt and copy it to your working folder
4. Find the following file: sd:/atmosphere/contents/[DLC TITLEID]/romfs/SomeSongName_meta.xml and copy it to your working folder (SomeSongName is not the actual name, but the song name is dependand on the specific DLC, just copy a *_meta.xml file)
5. Download the following file: https://raw.githubusercontent.com/MrJPGames/ultrastar2singIt-Converter/master/ultrastar2singit.py and place it in your working folder
(Again huge thanks to @Dh4rry for making the orignal version of this script!)


Step 3: Getting your song files
Sadly I cannot link you to the actually useful resources for UltraStar song files. There exist piracy free sites, but finding the exact right music/video for these can be difficult. Instead try to search around the internet for a certain spanish UltraStar site. This will provide torrents to many files (including many non-spanish ones!)

For the next steps I'll be assuming you have gathered the following files:
- A UltraStar TXT
- A music video (most likely AVI but format is not important, video should not contain audio!)
- The music (most likely mp3, but format is not important)
- A 1:1 (square) image (most likely jpg, but format is not important) of the cover art


Step 4: Getting the song files ready for Let's Sing!
0. Before we get started we have to decide on a unique name for our song. The songs title without spaces or non letters is the normal choice (but not necissary). Eg. "The Man Who Sold The World" becomes "TheManWhoSoldTheWorld". This name has to be the same EVERYWHERE, and spelled exactly the same (CASE SENSITIVE!). In the rest of the tutorial this will be referred to as SONGNAME. So replace any SONGNAME with your song id. (eg. SONGNAME.mp4 would become TheManWhoSoldTheWorld.mp4)
1. The music video should be in mp4 format. To do this you can use ffmpeg:
Code:
ffmpeg -i input_video.avi SONGNAME.mp4
2. The music should be in ogg format. To do this you can use ffmpeg:
Code:
ffmpeg -i input_song.mp3 SONGNAME.ogg
2 1/2. Optionally open the music file in Audacity and cut a part 30 seconds to a minute long. Save this as SONGNAME_preview.ogg. Alternativly you can create a copy of the full song and give it the name SONGNAME_preview.ogg, and this should also work, though has not been stress tested with many songs doing this!
3. The cover art should be in png format. Open up any other formats in an image editor (gimp, photoshop, paint.net, mspaint etc.). Make sure the image width and height are the same (thus a square image) and save this as "SONGNAME.png". (Only tested with "low resolution" images, if crashes occur maybe lower the image resolution.)
4. Copy your _meta.xml file and name it SONGNAME_meta.xml
5. Open the _meta.xml file with a text editor and replace the values so they match your song. "Id" should be SONGNAME (case sensitive!). Difficulty ranges from 0-4 (with 0 being 1 star, and 4 being 5 star).


Step 5: UltraStar TXT to VXLA
1. Place the ultrastar TXT in your working folder
2. Open a terminal (bash/cmd) in your working folder
3. Run the command "python3 ultrastar2singit.py input.txt -S SONGNAME"
4. This should result in SONGNAME.vxla being created in your working folder


Step 6: Adding your song!
1. Create a folder called "Patch' (This is a clear name, but you can choose your own)
2. Create the following folder structure inside of that folder: (Of course replace COREID/DLCID with the ids you noted down during the game assets dump step)
oKL5eCY.png

3. Next place your song files in the correct places as shown below (with the SONGID in this case being "TheManWhoSoldTheWorld")
d2pxbGp.png

(Note the backgrounds are optional, hence being left out of this tutorial, look at the offical files for guidance. They are the background in the menu, pause menu and after completing a song (_Result), Not including them will result in a white background instead.)
4. Open up name.txt ("DLCID/romfs/name.txt) and add a new line to the end of the file and put your SONGID there
5. Open up SongsDLC.tsv with LibreOffice Calc or Excel. Copy an existing row. Insert a row and paste the existing row there (so you now have that song in the table twice). Change the UID (a small number, second column) to be unique.
Change the ID to be your SONGNAME. The artist, title and year columns can also be updated (I did not test not updating them), all other collums can be left alone, but you might change them if you so choose (difficulty and some other data is taken from _meta.xml file instead of this table). This is the entry for TheManWhoSoldTheWorld:
jywweka.png


Step 7: The moment of truth!
0. (Optional, but saves space) remove COREID, and DLCID forlders from sd:/atmosphere/contents
1. Copy your COREID and DLCID folders to sd:/atmosphere/contents
2. Boot Let's Sing (2022)! And enjoy your newly added custom song!

Step 8 (not really): Feedback!
Hey, I was wondering if there was interest in the community for a (GUI) tool to easily import songs into Let's Sing. As shown in this tutorial most of the steps can be easily automated. And especially for importing larger libraries doing it by hand can get annoying. But I feel I need to at least know some people will actually want to use such software before I invest the time to make it (or maybe I do it anyways if i get bored who knows).

Other than that please let me know how it went if you followed this tutorial, and please let me know if I made a mistake somewhere so I can fix it!
 
Last edited by MRJPGames,

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
I'm stuck on Step 5, I never used python before.
Have no idea what I am doing wrong.
I put the command in the cmd
took of 3 from python, tried changing the -S into the lower S
Keeps telling me [Errno 2] No such file or directory
Ultrastar2singit.py is in the working file.

Im so confused

Nvm, i got it, i just realized I named my input file too early :(

I'm stuck on the last part, I'm not able to see the songs on the switch.
Is there something I'm missing.
 
Last edited by kyogers,

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
A Gui converter will be nice

I'm stuck on the last part. I got all my files in order, I didn't have a content folder in atmosphere, but made one later.
Is the game files supposed to be shown automatically?

Is it possible to add these games back into the nca file?

I'm confused how the switch or lets sing 2022 read the updated core files from H:\atmosphere\contents
 

hanspeter12

New Member
Newbie
Joined
Jan 6, 2019
Messages
2
Trophies
0
Age
54
XP
71
Country
Anguilla
Hey,
thx for your work. I just tried your tutorial with 2 songs and didn't get it working. the songs didn't show up in the menu.
i had also some problems, like "-s" instead of "-S" and dump with "Save data to CFW directory (LayeredFS) < Yes" for the folders to show up in "/atmosphere/contents".
after this i got 0100CC30149B8000 as [CORE TITLEID] and 0100CC30149B9001 as [DLC TITLEID] and followed your steps.
is there something more i have to do like turning layeredFS on?
 

nWo

The Game Master
Member
Joined
Oct 20, 2016
Messages
996
Trophies
0
Website
www.facebook.com
XP
2,886
Country
Mexico
Holy damn!! This is great!!! Sadly, I don't have the time and patience to actually do it :( but damn it is awesome. Is what I always wanted to make this games a must have!!!

Thank you, I hope I can test it in a not so far future, or find a site where they could upload some playlist readily available!!
 

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
After trail and error, I finally got it to work. Can't wait to add more. Also I never got to say, but thank you for the tutorial, much appreciated.

After adding more songs, 5 was about the max songs I could add. Going into Classic mode, the screen becomes pink forever or the the game crashes when moving through the song list.
20220528_101247.jpg
 
Last edited by kyogers,

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,787
Trophies
1
Age
44
XP
6,516
Country
Germany
After trail and error, I finally got it to work. Can't wait to add more. Also I never got to say, but thank you for the tutorial, much appreciated.

After adding more songs, 5 was about the max songs I could add. Going into Classic mode, the screen becomes pink forever or the the game crashes when moving through the song list.
View attachment 311703
Oh so that is the limit. That's a bummer. Thx for the info though.
 

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
Correction, I am able to add more songs, I started to add one song at time. I threw a bunch of songs(11) together at once, and figured one my files was causing a corruption of the game to continue playing, very small errors.

I got help from a friend, so he double check my work, so no idea on a limit, but it looks like it running great, so far 9 songs is my new max, will keep trying to add some. But hope it helps.

I'm still a noob at this kind of stuff.
 
  • Like
Reactions: lordelan

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,787
Trophies
1
Age
44
XP
6,516
Country
Germany
Correction, I am able to add more songs, I started to add one song at time. I threw a bunch of songs(11) together at once, and figured one my files was causing a corruption of the game to continue playing, very small errors.

I got help from a friend, so he double check my work, so no idea on a limit, but it looks like it running great, so far 9 songs is my new max, will keep trying to add some. But hope it helps.

I'm still a noob at this kind of stuff.
Thanks for the update. :)
 
  • Like
Reactions: kyogers and impeeza

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
I think there is no limit to how many songs you add, just Let's Sing just opens a bit slower.
I had added 40 songs to lets sing 2022.
 
  • Like
Reactions: lordelan

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
I like to make a correction, I had passed 40 songs like 43, and my switch started giving me hard problems basically crashing on launch from payloader or crashing in game.
But even 40 songs, I think is too much. Let's Sing 2022 still runs okay, but I feel like that is maximum I can do.
Also, I tried adding songs to the other Lets sing games while having the mods to Lets sing 2022, and the games aren't working as I Imagined, The games just wont start, Not sure if im doing stuff wrong, but there is just problems
 
Last edited by kyogers,
  • Like
Reactions: peteruk

seb007

New Member
Newbie
Joined
Jun 13, 2022
Messages
2
Trophies
0
Age
44
Location
BB
XP
51
Country
Belgium
Is there a way to merge selected songs from different Let's Sing versions into a single game (e.g. 2020, 2021 -> 2022)?
 
Last edited by seb007,

Omnia

Member
Newcomer
Joined
Nov 15, 2021
Messages
6
Trophies
0
Age
34
XP
41
Country
Brazil
Is there a way to merge selected songs from different Let's Sing versions into a single game (e.g. 2020, 2021 -> 2022)?
You technically could, but as already mentioned the game was really not well optimized to handle too many files, in the past I spent weeks trying to get it to work with about 100 songs and it always crashes after 10-15min session.
 
  • Like
Reactions: lordelan

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
Yeah it is possible to add more songs from a previous version. but its not recommended.
Sigh, my switch micro sd card slot went crazy and now my sd card wont work. anyone here knows how to fix it?

I replaced the micro sd card slot as well checked my pins and they are still intact.
just have no idea what to do.
 
  • Like
Reactions: lordelan

June88

New Member
Newbie
Joined
Jul 27, 2022
Messages
3
Trophies
0
Age
35
Location
Birmingham
XP
58
Country
United Kingdom
After trail and error, I finally got it to work. Can't wait to add more. Also I never got to say, but thank you for the tutorial, much appreciated.

After adding more songs, 5 was about the max songs I could add. Going into Classic mode, the screen becomes pink forever or the the game crashes when moving through the song list.
View attachment 311703
I cant get my songs to show up can you give a quick tutorial on how you got it to work I seen you previously had problems and unfortunately this tutorial has some flaws
 

kyogers

Member
Newcomer
Joined
Apr 27, 2022
Messages
8
Trophies
0
Age
29
Location
USA
XP
54
Country
United States
I cant get my songs to show up can you give a quick tutorial on how you got it to work I seen you previously had problems and unfortunately this tutorial has some flaws
Unfortunately, i followed the steps in the tutorial, i followed the changes that people suggested. One problem that I had mostly, was not tutorial, it was just mxla files, they have to perfect and name file. Sometimes when I added too many songs, usually the song on the name list where it stopped showing would be the first file that is not written right. Sometimes a simple added space or period would stop the files from showing
 

June88

New Member
Newbie
Joined
Jul 27, 2022
Messages
3
Trophies
0
Age
35
Location
Birmingham
XP
58
Country
United Kingdom
Unfortunately, i followed the steps in the tutorial, i followed the changes that people suggested. One problem that I had mostly, was not tutorial, it was just mxla files, they have to perfect and name file. Sometimes when I added too many songs, usually the song on the name list where it stopped showing would be the first file that is not written right. Sometimes a simple added space or period would stop the files from showing
OK I will check file names regarding the UID do I need to change that on the xml file if so what to and does it need to be the same on the songdlc tsv file
 
Last edited by June88,

Lolligoanima

Member
Newcomer
Joined
Sep 1, 2016
Messages
10
Trophies
0
Age
33
XP
91
Country
Gambia, The
So i'm trying now for 5+ hours and it's 5:30am where i live 🤣

I Ran into some Problems. I can't Change anything dlc related or names. If i do that, doesn't matter if replacing or adding, the Game freezes on song selection. if i replace files on the Main Game i.e. i replaced Audio, Video, vxla and preview from Last Christmas with dua lipas love again in a layered FS folder of the main Game. That works like a Charm. I tried changing the Name songs.tsv and the Meta from last Christmas but that freezes too.

Does anyone have a solution for the freezes? I checked everything Multiple times and my Files are clearly working.

I thought at first it's the cover but even resizing it to 256x256 the standard size of other covers freezes the Game.
 

Jujube

Active Member
Newcomer
Joined
Oct 29, 2021
Messages
29
Trophies
0
Age
24
XP
173
Country
United States
I'm running into an error on Step 5:
C:\Users\jujube\Documents\Working>python ultrastar2singit.py input.txt -s Heathens
Traceback (most recent call last):
File "C:\Users\jujube\Documents\Working\ultrastar2singit.py", line 9, in <module>
from PIL import Image
ModuleNotFoundError: No module named 'PIL'

Anybody know what might cause this ?
 

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
6,345
Trophies
3
Age
46
Location
At my chair.
XP
18,663
Country
Colombia
I'm running into an error on Step 5:
C:\Users\jujube\Documents\Working>python ultrastar2singit.py input.txt -s Heathens
Traceback (most recent call last):
File "C:\Users\jujube\Documents\Working\ultrastar2singit.py", line 9, in <module>
from PIL import Image
ModuleNotFoundError: No module named 'PIL'

Anybody know what might cause this ?
yes you miss some of the prerequisites, for module "PIL" you could run pip install pillow
 
  • Like
Reactions: MRJPGames

MRJPGames

Pretty great guy
OP
Member
Joined
Aug 17, 2013
Messages
1,199
Trophies
1
Location
The Netherlands
Website
fizazy.com
XP
1,674
Country
Netherlands
I'm running into an error on Step 5:
C:\Users\jujube\Documents\Working>python ultrastar2singit.py input.txt -s Heathens
Traceback (most recent call last):
File "C:\Users\jujube\Documents\Working\ultrastar2singit.py", line 9, in <module>
from PIL import Image
ModuleNotFoundError: No module named 'PIL'

Anybody know what might cause this ?
To add to the reply, as the question implies you're not deeply familiar with Python:
1. You might need to install pip (unlikely on Windows I believe, but on Linux I had to install pip)
2. You're pip command might be pip3 instead of pip, thus making it pip3 install pillow

You might also actually want to learn how you can solve similar issues in the future:
"ModuleNotFoundError" is an error Python gives when code you're trying to run relies on code you haven't yet downloaded/installed. Usually googling something along the lines of "python MODULE_NAME" will provide you with the actual "package" name. As "pip3 install PIL" wouldn't work here, googling "Python PIL" would provide you with the package name "pillow" you need for install.
 
  • Like
Reactions: impeeza

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Bunjolio @ Bunjolio: c