Open Tacosaladninja opened 9 months ago
To my knowledge, the game requires note sensing technology, which makes most guitar MIDI solutions, such as a Roland GK-3 pickup, terrible to use at best and useless at worst.
It detects fret movements either by buttons on the Mustang or by sensors in the neck that are grounded when your hands press down on the Stratocaster. This is without you strumming. It then uses impulse detection (noise), via ceramic piezoelectric transducers or a hexaphonic pickup on the Stratocaster, that sense when you strum. It detects this on all six strings that are sent via six corresponding channels through MIDI. At least this is how a DAW sees this data.
As far as I know, when it's being used in Rock Band 3, it uses SYSEX messages. I forget if it's only for identification (to tell the MPA whether you're using a Mustang or a Stratocaster) or for notes and button presses as well.
Most other guitar MIDI solutions convert sound to a pitch then send that as a MIDI note or notes. This doesn't tell the game what fret you're pressing as, unlike a game like Rocksmith, it doesn't use FFT to detect notes.
There are only a handful of companies releasing guitars that are potentially sending data in a format Rock Band 3 could realistically use that is still playable and those may be compatible, potentially, if a feature like this were to be implemented. If that's the case, I'd suggest using any fret higher than 22 as the game cannot use those at all.
I could be wrong in this information and if so, hopefully someone more knowledgeable will correct me.
As per @DarkRTA , who implemented MPA emulation for guitars and keyboards, here are the messages the game requires for Pro Guitar gameplay:
F0 08 40 0A XX YY ZZ F7
XX - event type (0x05 string, 0x01 fret)
YY - string (high e is string 1, low e is string 6)
ZZ - velocity (string) or midi note in standard tuning (fret)
and these are for navigation/button presses:
F0 08 40 0A 08 XX XX XX XX F7
XX - pad data
[Here's further info from PlasticBand documentation as well.]
If your guitar lacks fret sensing and hexaphonic pickups (or is unable to send that data over MIDI) it outright cannot be supported in the context of Rock Band 3. However, if you do have such a guitar I could try and extend the support to detect and implement support for it.
Generic midi guitars that simply emit note on and note off messages are impossible to support.
Understood. I only have a generic midi guitar.
If your guitar lacks fret sensing and hexaphonic pickups (or is unable to send that data over MIDI) it outright cannot be supported in the context of Rock Band 3. However, if you do have such a guitar I could try and extend the support to detect and implement support for it.
Generic midi guitars that simply emit note on and note off messages are impossible to support.
How could I tell if I have sensing and hexaphonic pickups? My guitar is picked up by the emulator but trying to figure out how to navigate using it
aeroband guitars don't work very well unfortunately. someone in the community had tested them and had issues getting them to even work correctly
Aw thats a bummer, curious how long ago was that? My guitar seemed kind of crappy when I got it in the mail but then updated the firmware on it and it got way better, so wondering if that could've made a difference. Willing to try and test it out myself, but if its more trouble than its worth maybe I'll see if I can return it and get one of the Squiers off ebay
Quick summary
RPCS3 supports any generic keyboard midi controller by assigning notes C2 - Bb2 to the face buttons of the controller so the player can navigate menus without the need for a Midi Pro Adaptor or official Wireless Pro Keyboard Controller. The guitar controller should support this as well.
Details
It would be beneficial to rhythm game players if they were able to use any midi enabled guitar to play games that support midi instruments. This functionality is present for keyboards so it might be a simple task to port it over to the guitar side as well.
Many midi controllers have features that enable the user to change octaves on the fly. This implementation could place the controls either above or below the 22 frets available for the game to use during normal gameplay. This would allow the player to change octaves on their controller to navigate the menus and then change it back once they have started a song.
I believe the best implementation of this would be to use lower octaves. Starting with F0 and moving up. This method provides two octaves for button placement and allows for a somewhat visual style layout for the buttons. I propose using the low E-string for the face buttons and use the A and D-strings to create a d-pad shape and house the START and SELECT buttons.
The Overdrive button is the only thing unaccounted for. If it is required, placing it at the 22nd fret of the low or high e-string seems like the least cost method of ensuring its accessibility.
This would affect gameplay by increasing the number of usable tools to play games with by decreasing user dependency on hardware.
This would be important to RPCS3 because it would bring feature parity to two similar device types and increase uniformity across I/O devices.