Tutorial for adding songs and menus to Synthesia on Android
I will cover adding a large number of songs in a follow up tutorial, for now just the basics.
Tools Used:
APK Editor Pro (I am using version 1.10.0)
Solid Explorer https://play.google.com/store/apps/deta ... dexplorer2
Checksum MD5 & SHA https://play.google.com/store/apps/deta ... tech.tools
Synthesia APK https://apkcombo.com/synthesia/com.synthesia.synthesia/ (This is the current version that Android uses when installing via the Google Play Store)
First you need to prepare your midi files by naming them properly.
For Synthesia to handle them properly they should be named in the following format.
SongName.MD5_File_Hash_Sum.mid
it will look something like this.
Nocturne No1 Opus62.d9f33cf07d5e53a082c80bff649c1e1e.mid
Step 1:
Install APK Editor Pro
Install Solid Explorer.
Install Checksum MD5 & SHA.
Download but do not install the original Synthesia APK.
Step 2:
Open Checksum MD5 & SHA.
Navigate to your midi folder and select the midi you wish to add to Synthesia.
Press on the number in the MD5 field to copy it to your clipboard.
Open Solid Explorer and navigate to the folder the midi is in and rename it by long pressing the file then pressing the pencil at the buttom of the screen.
Add a "." followed by pasting the MD5 value from your clipboard and then finaly the ".mid".
Step 3:
Open APK Editor Pro.
Press the "Select and APK File"
navigate to your "Download" folder and select the Synthesia APK you downloaded.
Press "Full Edit (RESOURCE RE-BUILD)"
Press "Decode All Files".
Press "Files" the bottom of the screen.
Press the "assets" folder.
Press the "songs" folder.
Press and hold "music.zip untill a menu appears.
Press "Extract" and then "OK"
Step 4:
Open Solid Explorer and navigate to the music.zip file you just extracted.
If you already have a folder in this directory named "music" you should move the music.zip file into its own directory first
Press and hold on the file and then press the menu at the bottom with the "..."
Press "Extract"
Select the midi file you renamed and then press "Cut".
Open the "music" folder and press "Paste"
Press and hold on any of the midi files then press the first button in the upper right to select all files
Press the menu at the bottom with the "..."
Press "Archive"
Name the file "music.zip" and press "Create"
Step 5:
Switch back to APK Editor Pro.
Press and hold "music.zip" till a menu appears, press "Replace"
Go to the music folder you extracted and select "music.zip" from inside that folder
Step 6:
Press the button towards the top to go back a directory.
Press the "settings" folder
Press "metadata_gmajor.xml"
Scroll down to the bottom of the file.
Copy the text below
<Group Name="Main Menu Item">
<Group Name="Sub Menu Item">
<Song UniqueId="Your_Songs_MD5_HASH" />
</Group>
</Group>
Paste it directly above
</Groups>
</SynthesiaMetadata>
Edit the Name of "Main Menu Item" and "Sub Menu Item" then replace "Your_Songs_MD5_HASH" with the MD5 hash at the end of your midi name.
When you are done it should look somehing like this.
Step 7:
Press your devices back < button and press "SAVE" when prompted.
Now press "Build".
Upon completion an "Install" and possibly "Remove" button will appear (If Synthesia is already installed "Remove" if it is) now press the "Install" button.
Open Synthesia and you will see your new menus and song in the songs list
Tutorial: Adding midis with custom menus and sub menus to Synthesia on Android
Always the latest versions: [ colors.xml | ui.xml ]
Read the Getting Started topic to learn how important it is to MERGE YOUR CHANGES every time you download a new dev preview.
Read the Getting Started topic to learn how important it is to MERGE YOUR CHANGES every time you download a new dev preview.
These are interesting tutorials; Android certainly seems to make things harder when it comes to simple file system operations.
That said, for this one there is an easier way than extracting things from the APK and then reinserting them.
If you simply make a file with a .synthesia extension someplace that Android is already scanning for MIDI files, it'll read the same <Group> information in automatically. It's part of the Synthesia metadata file format. No need to change the app itself.
That said, for this one there is an easier way than extracting things from the APK and then reinserting them.
If you simply make a file with a .synthesia extension someplace that Android is already scanning for MIDI files, it'll read the same <Group> information in automatically. It's part of the Synthesia metadata file format. No need to change the app itself.