Advertiser Content

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 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/q2pAw3x (Kermalis#6459)

ps4star

"Ralts traced Slaking's Truant!"

Male
USA
Seen July 5th, 2019
Posted July 4th, 2019
7 posts
4.1 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!
_

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 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

Age 26
Male
Le bed
Seen 4 Weeks Ago
Posted June 6th, 2019
871 posts
6.1 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?
Retired. Thank you guys for a wonderful five years.

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 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)

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 Years
I have updated the program on GitHub, here's how it looks now:


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

Philippines
Seen July 7th, 2019
Posted July 3rd, 2019
49 posts
2.3 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)

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 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 :)

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 Years
Can GBA Music Studio export the samples as WAV? Because if so, you could create the SF2 files using Polyphone.
It can't export them yet, but why would you want to bother doing it that way? I'm already writing the SF2 saver

YoY-X

Male
USA
Seen July 27th, 2019
Posted May 25th, 2019
117 posts
1.8 Years
Nice! I would definitely use this!!!

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 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
Seen 5 Days Ago
Posted March 19th, 2019
202 posts
2 Years
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.
I'm still quite active, just not on Pokecommunity.

While Pokecommunity is still a great resource and discussion board for binary hacking, binary hacking is slowly but surely becoming irrelevant. If you are ready to jump ship and switch to pokeemerald some great places to try would be Silph Co. and the pret Discord. Happy hacking!

You can always reach out to me directly at hjk321#1337

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 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

Seen 3 Weeks Ago
Posted July 1st, 2018
2 posts
1.6 Years
The current version no longer seems to build, throws


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

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 Years
Ok, I know i sound stupid but how do you build it using visual studio code, I was going to read the README but I dont have ms docs
Readme files are just text, you can open them in anything really
I don't know how you'd open a C# project in visual studio code. I use visual studio 2017

The current version no longer seems to build, throws


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
This should be fixed with the commit I just sent

Speaking of, here's how the program looks now:
Spoiler:

Old:
Spoiler:

Still working on it, but I really like that for now.

SlowbroMusicyo

Kumquat

Male
Fruit Tree
Seen 1 Week Ago
Posted 1 Week Ago
82 posts
1.2 Years
Oh,

But can you explain how to build it though?

(Plus the pictures aren't showing up for me
=============================
staying up till' 4:00 was my pastime

(btw a new fl remix dump (they're sf2 things and short, Imma learn to loop later)
; https://soundcloud.com/user-152487276)

Kermalis

White Hat

Age 20
Female
Miami, Florida
Seen August 5th, 2019
Posted August 5th, 2019
23 posts
1.3 Years
Oh,

But can you explain how to build it though?

(Plus the pictures aren't showing up for me
To build it you just need to open the .sln file in Visual Studio 2017 and press the green start button:

Anyway, I've updated the program with a disassembler. This allows you to save the currently-loaded song as an ASM .s file

LukeeGD

Mostly a Music Hacker

Philippines
Seen July 7th, 2019
Posted July 3rd, 2019
49 posts
2.3 Years
I finally got it to build myself! yay...
So I first installed Visual Studio Build Tools 2017, got NuGet separately, downloaded Humanizer.Core.2.2.0, ObjectListView.Official.2.9.1, and YamlDotNet.4.3.1 with NuGet, put them all in a folder called packages where the .sln is located, then dragged the .sln to MsBuild. It gave me 5 warnings and no errors this time.

edit: In short, use Visual Studio 2017 and not 2015 or lower hahaha
Advertiser Content