The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   ROM Hacking Resources (https://www.pokecommunity.com/forumdisplay.php?f=502)
-   -   Tool VG Music Studio (In Development) (https://www.pokecommunity.com/showthread.php?t=409327)

Kermalis May 28th, 2018 3:58 PM

VG Music Studio (In Development)
 
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)

ShinypikachuX May 31st, 2018 8:56 AM

No one has commented yet so this is AWESOME!!!!!!

Kermalis May 31st, 2018 3:49 PM

Quote:

Originally Posted by pokemon pika pikachu (Post 9883498)
No one has commented yet so this is AWESOME!!!!!!

Thanks, I've been working hard and nonstop because it's fun and I believe I can make it really great :)

ps4star June 2nd, 2018 8:13 PM

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 June 2nd, 2018 8:45 PM

Quote:

Originally Posted by ps4star (Post 9884708)
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 June 4th, 2018 3:03 PM

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 June 4th, 2018 3:10 PM

Quote:

Originally Posted by Le pug (Post 9885405)
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)

LukeeGD June 5th, 2018 4:45 AM

It's really nice to see some Sappy alternatives. I'll try using this sometime soon...

Kermalis June 9th, 2018 2:58 AM

I have updated the program on GitHub, here's how it looks now:
https://i.imgur.com/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 June 10th, 2018 1:31 AM

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 June 10th, 2018 2:58 PM

Quote:

Originally Posted by LukeeGD (Post 9887604)
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 :)

ps4star June 22nd, 2018 3:14 PM

Can GBA Music Studio export the samples as WAV? Because if so, you could create the SF2 files using Polyphone.

Kermalis June 22nd, 2018 3:40 PM

Quote:

Originally Posted by ps4star (Post 9892625)
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 June 23rd, 2018 4:17 AM

Nice! I would definitely use this!!!

Kermalis June 24th, 2018 8:05 PM

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

hjk321 June 25th, 2018 8:42 PM

Quote:

Originally Posted by Kermalis (Post 9885408)
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 June 26th, 2018 2:49 AM

Quote:

Originally Posted by hjk321 (Post 9894072)
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

https://i.imgur.com/TuqCjN1.gif

SlowbroMusicyo July 1st, 2018 3:04 PM

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

Wasperine July 1st, 2018 7:26 PM

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

SlowbroMusicyo July 1st, 2018 9:51 PM

Aw, that sucks :(

Kermalis July 1st, 2018 10:30 PM

Quote:

Originally Posted by SlowbroMusicyo (Post 9896330)
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

Quote:

Originally Posted by Wasperine (Post 9896441)
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

This should be fixed with the commit I just sent

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

Old:

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

SlowbroMusicyo July 2nd, 2018 9:00 PM

Oh,

But can you explain how to build it though?

(Plus the pictures aren't showing up for me

Kermalis July 2nd, 2018 10:42 PM

Quote:

Originally Posted by SlowbroMusicyo (Post 9896827)
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: https://i.imgur.com/9ryeFTO.png

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

GreasyGarlic July 2nd, 2018 11:22 PM

Damn looks really nice definitely going to try this!

LukeeGD July 3rd, 2018 1:02 AM

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


All times are GMT -8. The time now is 8:12 PM.


Like our Facebook Page Follow us on Twitter © 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.