Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect voice handling under X5D(R) and 05R/W mode #51

Open
PoneyClairDeLune opened this issue Aug 2, 2024 · 1 comment
Open

Incorrect voice handling under X5D(R) and 05R/W mode #51

PoneyClairDeLune opened this issue Aug 2, 2024 · 1 comment
Assignees
Labels
bug Something isn't working P0 High priority (urgent and important)

Comments

@PoneyClairDeLune
Copy link
Contributor

Bank selection

MSB LSB PC. Bank
0 0 0~99 Bank A (RAM, preset, PrgA/PrgB)
1~55, 56, 57 any 0~127 Bank G (ROM, preset, GM-b)
58~61 any any Timbre off
62 any any GM drum kits (kDrm)
63~127 any any Timbre off
# PC kDrm
1 0 GM Kit
2 16 Power Kit
3 25 Analog Kit
4 32 Jazz Kit
5 40 Brush Kit
6 64 Percussion Kit
7 24 Dance Kit
8 48 Orchestra Kit
PC. kDrm
0 Kit 1
16 Kit 2
24 Kit 7
25 Kit 3
26 Kit 7
32 Kit 4
40 Kit 5
48 Kit 8
56 Kit 1
64 Kit 6
72 Kit 1
  • cc0 61 is used by the N series (NS5R, NX5R) to select rDrm.

Initialization

Initialization happens when power turns on, when "GM System On" is received, and when "Set to GM" is executed (SysEx unknown). cc0 for channel 10 is set to 62, while all other 15 channels have cc0 set to 56.

Extended Multi Setup SysEx

Byte at index 0 (1st byte) sets program number (099 for Bank A, 0127 for Bank G melodic, 128~135 for Bank G drums). Bit 6 and bit 7 on byte at index 10 (11th byte) defines if the voice uses Bank A (0x00??????) or Bank G (0x01??????).

@PoneyClairDeLune PoneyClairDeLune added bug Something isn't working P0 High priority (urgent and important) labels Aug 2, 2024
@PoneyClairDeLune
Copy link
Contributor Author

PoneyClairDeLune commented Aug 2, 2024

Progress

  • Check if the drum kit ID to PC mappings are correct.
  • Fix bank A/G selection in X5 Extended Multi Setup SysEx.
  • Implement an additional internal buffer for submitted cc0 and cc32 after program changes, tracking the writing state.
  • Add defMsb and defLsb for initializing default MSB and LSB, when the MSB and LSB registers haven't been written yet.

Related: #28 #50

PoneyClairDeLune added a commit that referenced this issue Aug 2, 2024
PoneyClairDeLune added a commit that referenced this issue Aug 2, 2024
PoneyClairDeLune added a commit that referenced this issue Aug 2, 2024
Also the previous commits should address #51 partially.
@PoneyClairDeLune PoneyClairDeLune self-assigned this Oct 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working P0 High priority (urgent and important)
Projects
None yet
Development

No branches or pull requests

1 participant