• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: VG Music Studio (In Development)

Kermalis

White Hat
24
Posts
5
Years
Kermalis's VG Music Studio




VG Music Studio is a music player and visualizer for the most common GBA music format (M4A/MP2K), Mario & Luigi: Superstar Saga, the most common NDS music format (SDAT), and a more rare NDS music format (DSE) [found in PMD2 among others].
And the best part is it's open source: https://github.com/Kermalis/VGMusicStudio


The "To Do" list is on the GitHub page.

Pre-release downloads are found here: https://github.com/Kermalis/VGMusicStudio/releases
The pre-releases may not be up to date with the code, so you may want to build the project yourself. The link to the code is: https://github.com/Kermalis/VGMusicStudio. Keep in mind that building in debug mode can make audio processing a lot slower than you might expect, so you will want to build in release mode unless you are bug-fixing or adding new features.
If you have questions, want me to add a game to the default configuration, or want to help translate, you can find me on Discord at https://discord.gg/mBQXCTs (Kermalis#6459)
 
Last edited:

ps4star

WITH A ROLLING PIN!
11
Posts
8
Years
  • Age 24
  • USA
  • Seen Nov 3, 2020
Oh my god this is actually a dream (or rather, a thought) come true. The other week I was messing around with music hacking and was on a train of thought kinda like this: "you know, ASong and Sappy are both cool and useful in their own ways, but they both have problems and can't really be used simultaneously. I wish there were an 'all-in-one GBA music editor' for this". Very nice work!
 

Kermalis

White Hat
24
Posts
5
Years
Oh my god this is actually a dream (or rather, a thought) come true. The other week I was messing around with music hacking and was on a train of thought kinda like this: "you know, ASong and Sappy are both cool and useful in their own ways, but they both have problems and can't really be used simultaneously. I wish there were an 'all-in-one GBA music editor' for this". Very nice work!

Thanks for the kind words, if you have any suggestions for me, I'm listening. I have more planned, and you can check the "To Do" list that I already have in the GitHub link in the main post.
 

Le pug

Creator of Pokémon: Discovery / Fat Kid
870
Posts
10
Years
Will this be easier to insert midi files for use? I get confused with sappy easily. Also, the keyboard is a neat feature ... will there be some sort of midi creation options so that we can make midi with the sound groups in the game? Or will that still be handled externally?
 

Kermalis

White Hat
24
Posts
5
Years
Will this be easier to insert midi files for use? I get confused with sappy easily. Also, the keyboard is a neat feature ... will there be some sort of midi creation options so that we can make midi with the sound groups in the game? Or will that still be handled externally?

I plan on scrapping the need for converting MIDI to a .s file entirely by having you import MIDI files themselves (you can play them back and see how they sound before inserting them into the ROM itself [same goes for importing voice tables from a .SF2])

I didn't plan on making a sort of music composition kind of thing, since that's really lots of work and not entirely necessary since there are lots of DAWs (digital audio workstations), however, there will be a track viewer where you view all of the events and you can double click one to edit the note or modulation or whatever you want to change. Creating a MIDI is miles simpler than using what I'd create here.

EDIT: I also have plans for learning the NDS SBNK file format, which will allow importing of NDS voice groups right to GBA. That way everyone can have NDS music very easily with no issues (assuming track and DirectSound expansions have been made)
 
Last edited:

Kermalis

White Hat
24
Posts
5
Years
I have updated the program on GitHub, here's how it looks now:
joFBQMv.gif


Each instrument has its own (configurable) color, which will show in the UI on the piano, in the voice number text and with the velocity bars
The UI is also resizable, and the piano expands and detracts how many keys it has based on the window size

I also fixed some bugs but it's not like anyone was having issues with them :P
 

LukeeGD

Mostly a Music Hacker
50
Posts
6
Years
For some reason, when I try to compile it, I get hundreds of errors... (a lot of it is CS1519, CS1513, CS1043, and CS0103) I don't really know on what I'm doing with VS 2015, so there's that.

I just want to test saving the voicegroups to SF2, and other features. Voicegroups to Soundfonts will be very helpful for making music for the game. (so I can use it in FL Studio)

I also have some feature requests (I might be asking for too much)
- A built-in free space finder for base destination offset, with search options such as search from beginning of ROM, or begin from a specified offset
- A way to mass-assemble MIDI/.s files, where base destination offsets are automated (works like above), and a way to specify the voicegroups of each (if not specified, will go to a default, which is also specified)
 
Last edited:

Kermalis

White Hat
24
Posts
5
Years
For some reason, when I try to compile it, I get hundreds of errors... (a lot of it is CS1519, CS1513, CS1043, and CS0103) I don't really know on what I'm doing with VS 2015, so there's that.

I just want to test saving the voicegroups to SF2, and other features. Voicegroups to Soundfonts will be very helpful for making music for the game. (so I can use it in FL Studio)

I also have some feature requests (I might be asking for too much)
- A built-in free space finder for base destination offset, with search options such as search from beginning of ROM, or begin from a specified offset
- A way to mass-assemble MIDI/.s files, where base destination offsets are automated (works like above), and a way to specify the voicegroups of each (if not specified, will go to a default, which is also specified)

Can you contact me on Discord? Kermalis#6459
I'd like to know why you get errors building and I think I can help you sort it out...

SF2 writing isn't completed yet; it doesn't save the instruments to a voice table -- just their samples for now. You wouldn't be able to use the Soundfonts at the moment.

As for your suggestions, they're already both planned, as I've built music bases in C a few years ago and it is quite unnecessary to have to do that in my opinion :)
 
Last edited:

ps4star

WITH A ROLLING PIN!
11
Posts
8
Years
  • Age 24
  • USA
  • Seen Nov 3, 2020
Can GBA Music Studio export the samples as WAV? Because if so, you could create the SF2 files using Polyphone.
 

Kermalis

White Hat
24
Posts
5
Years
For those who aren't watching my GitHub, I have updated quite a lot:

The program now supports multiple songtables, so if you have more than one, you can play from all of them without having to change configs

I have added an ASM assembler, so you can play songs from .s files
I have also added a MIDI converter, which will play .mid files in the program

There's a track editor which allows you to view every event in a track. You can edit each event. There's also a button to change all voices of one type to another per track which is useful

I have added instruments/presets to the SF2 exporter, so now you can play with voicegroups in a DAW

If you want to try it, just go download the source at https://github.com/Kermalis/GBAMusicStudio and use Visual Studio to build it. There's no writing to ROMs whatsoever so you will not have to worry about making backups yet
 
222
Posts
6
Years
  • Age 22
  • Seen Nov 18, 2023
I didn't plan on making a sort of music composition kind of thing, since that's really lots of work and not entirely necessary since there are lots of DAWs (digital audio workstations)

You're right; we don't need a DAW in this tool. HOWEVER, one thing we do need is a screen to view each track's contents so we know what to cut/merge to get it to 10 tracks.

Just a thought. Good luck! I'll be watching this closely.
 

Kermalis

White Hat
24
Posts
5
Years
You're right; we don't need a DAW in this tool. HOWEVER, one thing we do need is a screen to view each track's contents so we know what to cut/merge to get it to 10 tracks.

Just a thought. Good luck! I'll be watching this closely.

This was already made, I just forgot to mention it :S

Anyway, I added a song position bar, so you can seek to any part of the song now
I also added a way to use instrument mappings, and HGSS mappings come in the default config

TuqCjN1.gif
 
Last edited:
2
Posts
6
Years
  • Age 28
  • Seen Jun 29, 2023
The current version no longer seems to build, throws


Code:
Error	CS1955	Non-invocable member 'ListView.DoubleBuffered' cannot be used like a method.	GBAMusicStudio	

\GBAMusicStudio\UI\TrackEditor.cs	48	N/A

By the way, awesome work on this tool so far! This has serious potential and as far as I'm concerned anything that could let me throw out Sappy for good would be glorious lol
 
Back
Top