Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Implementing bank select lsb in soundfonts

Implementing bank select lsb in soundfonts 1 month 4 weeks ago #7

  • ziyametedemircan
  • ziyametedemircan's Avatar
  • Offline
  • Elite Member
  • Posts: 161
  • Thank you received: 53
The administrator has disabled public write access.

Implementing bank select lsb in soundfonts 1 month 3 weeks ago #8

  • stgiga
  • stgiga's Avatar
  • Offline
  • New Member
  • Posts: 3
Sylvia or t999clint must have renamed the folder. I didn't.
I'm here. I'm glad you're there.
The administrator has disabled public write access.

Implementing bank select lsb in soundfonts 1 month 3 weeks ago #9

  • csw900
  • csw900's Avatar
  • Offline
  • Senior Member
  • Posts: 49
  • Thank you received: 8
Thank you - the new link is OK

I need to spend some time looking further into this. I did not realise there were that may instruments - let alone playing them on polyphone.

However there is a problem - some of the instruments cause poly polyphone to crash - possibly because it is not using sufficiently wide integers internally. It would be a good idea to remedy this as soon as possible once the cause is found.

Also some of the samples leave a bit to be desired when playing a scale with the mouse.

csw900

Later: There are significant problems with ths idea when you consider how midi messages are transmitted. They are three bytes only thus the LSB and MSB have to be sent in two seperate messages and added together by the receiver. Unless this is carefully planned it will not work for two reasons: 1. Most midi receivers do not add these two messages because they do not expect to reveive them in this way. 2. Midi messages are subject to "out of order execution" by both senders and receivers - unless this is correctly dealt with the two messages will not necessarily arrive in the correct order. NRPN's also have this problem and unless special care is taken in the software design they are not correctly interpreted.

Also I think you will have a hard time convincing midi manufacturers that more than 16129 presets are needed in a sound font.

csw900
csw900
Last Edit: 1 month 3 weeks ago by csw900. Reason: Postscript
The administrator has disabled public write access.
The following user(s) said Thank You: Sylvia

Implementing bank select lsb in soundfonts 1 month 3 weeks ago #10

  • Sylvia
  • Sylvia's Avatar
  • Offline
  • Senior Member
  • I make Soundfonts
  • Posts: 67
  • Thank you received: 18
Hi CSW900,

I understand your concerns relating to the proposed new soundfont bank select format and the MIDI instruction format, and I decided to implement it in a way that is as backwards compatible as possible with older soundfont players.

It makes it easier if we consider the first and second bytes of wBank to be separate values with no connection. Since the soundfont format is little endian, the first byte is the least significant byte, so the first byte is what stores the banks 0-128 used in the current soundfont bank storage format. Since only the first byte of wBank is used, the second byte can treated as a completely different value. Therefore, it's not really "adding two values together", it's more like adding a parallel value which directly maps to bank select lsb, which isn't implemented in soundfonts.

Because Polyphone reads the 16-bit value of the wBank, instruments mapped in the way I proposed would appear to have a "bank number" of (256 * LSB) + MSB. If lsb was implemented as I described, the wBank would be read as two separate 8-bit values for each byte, one for msb and one for lsb. Therefore, not only order of the bank select commands would not matter (as an msb instruction does not affect the lsb value or vice versa), but the two bank select commands would not need to be called simultaneously.

Also, as a reminder, the goal is to enable XG or GM2 compatibility (~300-500 presets) rather than to have an extremely large number.

Thanks,

sylvia.

Edit: Because of the separate nature of the two bytes in the wBank field, msb and lsb commands do not need to be called together, they can be called separately. So if a file only calls msb, or only calls lsb, it will still work.
Last Edit: 1 month 3 weeks ago by Sylvia. Reason: Added an explanation
The administrator has disabled public write access.

Implementing bank select lsb in soundfonts 1 month 3 weeks ago #11

  • csw900
  • csw900's Avatar
  • Offline
  • Senior Member
  • Posts: 49
  • Thank you received: 8
Hi Sylvia

Just a quick response - I think you may be missing the point. There is no guarantee that both bytes of a bank select message will be sent. In my experience only one byte of the message is ever used in midi files or messages. Each message has its own identification byte i.e.0 for the MSB and 32 for the LSB. These messages may be received in any order and at any time. What Polyphone does is not relevent.

csw900

Later: Unfortunately Polyphone has no midi output so it is difficult to find out what is really happening with the bank select. (For example why does bank 128 select default percussion) One way could be to load the resulting sound font into a reliable synth such as Fluidsynth and see what it does. However even this synth is open to interpretation as it has always been a bit weak on reliably selecting banks. As far as I am aware what happens when banks above 127 are selected is not defined by any midi specification.
csw900
csw900
Last Edit: 1 month 3 weeks ago by csw900. Reason: postscript
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Time to create page: 0.068 seconds
Cron Job Starts