It is currently Wed Sep 19, 2018 11:51 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 83 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6
Author Message
PostPosted: Sun Aug 26, 2018 8:52 pm 
Offline

Joined: Sun Mar 03, 2013 1:52 am
Posts: 108
Location: Texas, USA
zeroone wrote:
The human normally plays on channel 0.

Note: MIDI channels are referred to as channel 1 to 16, even though the bit patterns in the messages are from 0 to 15. For example, you would say the Miracle Piano transmits on MIDI channel 1, not "channel 0".

NewRisingSun wrote:
That feature is called Running Status
zeroone wrote:

The MIDI Technical Fanatic's Brainwashing Center that NewRisingSun linked to is a very good source, but be aware it very occasionally gets some details wrong*, so you might want to refer to the official specification as well. The main MIDI specification is available as a PDF file, you only need to create a free account to download it.


tepples wrote:
These MIDI messages also use running status, but I don't know which the Miracle keyboard can generate:

Pressure (An kk pp)
Effect (Bn cc vv)
Instrument (Cn ii)
Pressure all notes (Dn pp)
Pitch bend (En ll hh)

In the PDF manual zeroone linked to (also available here), the MIDI Implementation Chart (PDF page 179) suggests the keyboard transmits and recognizes Program Change $Cn and some Control Change $Bn messages, but doesn't transmit nor recognize Key After Touch $An, Channel After Touch $Dn, or Pitch Bend $En messages.

In fact, Nocash's document seems to label messages as "undocumented" if they aren't mentioned in the "MIDI Technical Data" section of the manual (PDF pages 175-178), but some of them are listed in the MIDI Implementation Chart in the manual (PDF page 179):

    Nocash's document says it's undocumented if the keyboard can recognize a Program Change (Patch Change) message, but the MIDI Implementation Chart suggests that it can.

    Nocash's document says the Reset message is undocumented, but the MIDI Implementation Chart "System Reset" line says it is a recognized message.

In Nocash's document, one of the unknown System Exclusive commands may change the MIDI output channel. In the 2015 post Re: What happened with Miracle Piano rev-engineering?, user Joe describes an undocumented button combination (disabled in one OS version) and System Exclusive command (available in both OS versions) to change the MIDI output channel. That is, the manual only describes the Miracle Piano as transmitting on MIDI channel 1, but this function lets you change it to any channel 1 to 16. Unfortunately, he didn't describe the exact format of the System Exclusive command.

zeroone wrote:
in one of those proprietary $Fx messages, there is a way to split the keyboard in half.

Be aware you can also turn on the split by pressing two buttons on the keyboard at the same time, holding down the button for the lower part first. (In the manual, see PDF page 174 "Splitting the keyboard".) Although this presumably limits you to choosing from the 6 sounds labeled on the buttons, or from the sounds available in the "Presets", whereas the System Exclusive message lets you choose any of the 128 sounds.

zeroone wrote:
during a split, I suspect both channels 0 and 8 are used. Or, more generally, x and x + 8.

I got the impression from the manual that the split function is only changing the sounds of one channel. For example, on PDF page 178 of the manual, the description of the PATCH SPLIT COMMAND System Exclusive message says "two different patches may be combined on one MIDI channel."


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 6:32 am 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 817
Location: New York, NY
Thanks for all that info. I'll study the MIDI spec in detail when I get a chance.

Bavi_H wrote:
n Nocash's document, one of the unknown System Exclusive commands may change the MIDI output channel. In the 2015 post Re: What happened with Miracle Piano rev-engineering?, user Joe describes an undocumented button combination (disabled in one OS version) and System Exclusive command (available in both OS versions) to change the MIDI output channel. That is, the manual only describes the Miracle Piano as transmitting on MIDI channel 1, but this function lets you change it to any channel 1 to 16. Unfortunately, he didn't describe the exact format of the System Exclusive command.


That's a really interesting link. If the patches were dumped from the Miracle, I could use that instead of GM.

Bavi_H wrote:
I got the impression from the manual that the split function is only changing the sounds of one channel. For example, on PDF page 178 of the manual, the description of the PATCH SPLIT COMMAND System Exclusive message says "two different patches may be combined on one MIDI channel."


Can MIDI devices do that? Everything I read suggested that you assigned each channel an instrument (one patch/program). Is a split a dynamically created patch assembled from the notes of 2 other patches?

Splitting is not available in the GM API that I am using. To simulate the effect, I used the x and x + 8 trick; i.e. I allocated 2 channels, one for the lower keys and one for the upper keys.


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 11:03 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7523
Location: Seattle
zeroone wrote:
If the patches were dumped from the Miracle, I could use that instead of GM.
Joe and I have dumped (the same) wavetable data ROM, but ... it doesn't clearly hold all the samples. It only obviously includes percussion.
(The one labeled "800504 WR 1.01" in this post)


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 11:13 am 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 817
Location: New York, NY
lidnariq wrote:
zeroone wrote:
If the patches were dumped from the Miracle, I could use that instead of GM.
Joe and I have dumped (the same) wavetable data ROM, but ... it doesn't clearly hold all the samples. It only obviously includes percussion.
(The one labeled "800504 WR 1.01" in this post)


Thanks.

Even if the all the patches were available, that data would have to be publicly archived similar to the FDS BIOS; it can't be distributed with the emulator for copyright reasons. I'll live with my GM solution for now.


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 5:47 pm 
Offline

Joined: Sun Mar 03, 2013 1:52 am
Posts: 108
Location: Texas, USA
Bavi_H wrote:
I got the impression from the manual that the split function is only changing the sounds of one channel.
zeroone wrote:
Can MIDI devices do that? Everything I read suggested that you assigned each channel an instrument (one patch/program). Is a split a dynamically created patch assembled from the notes of 2 other patches?

Splitting is not available in the GM API that I am using. To simulate the effect, I used the x and x + 8 trick; i.e. I allocated 2 channels, one for the lower keys and one for the upper keys.

Splitting is a device-specific function that's not defined in the MIDI specs.

You're correct that MIDI devices usually stick to one instrument per channel, especially if they use the General MIDI voice names. Modern keyboards with a configurable split function will send each side of the split on a different channel.

MIDI devices that don't use the General MIDI voice names sometimes have voices with a "built-in" split. That is, instead of a real split function you can turn on and off and configure yourself, you get a few "pre-baked" split voices. The Miracle Piano seems to be using a variation on this idea, and lets you turn on a "split voice" in one channel consisting of two voices you choose. (At least that's what the manual sounds like to me.)

So yeah, to convert a "split voice" for playback on a General MIDI device, you have to convert it to two different channels.


Top
 Profile  
 
PostPosted: Tue Aug 28, 2018 7:01 am 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 817
Location: New York, NY
Bavi_H wrote:
So yeah, to convert a "split voice" for playback on a General MIDI device, you have to convert it to two different channels.


Since the Miracle software only uses 8 of the 16 available channels, the scheme mostly works. Except for that fact that GM channel 10 is reserved for percussion samples. Since the API inhibits me from assigning it to an arbitrary instrument, only 7 of the 8 channels can be split.

By the way, does the MIDI protocol provide a way for devices to transmit digital samples? Or is that entirely proprietary as well? For instance, back in the 90's, PC's used to be equipped with a MIDI card for background music and a separate sound effects card. Some games were bundled with MIDI patches that it somehow deployed into the MIDI card's memory. Was that done over the MIDI protocol or through some other mechanism?


Top
 Profile  
 
PostPosted: Tue Aug 28, 2018 7:32 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20558
Location: NE Indiana, USA (NTSC)
There is a specified format for MIDI system-exclusive messages containing waveforms called Sample Dump Standard. So yes, it's possible in theory to convert a SoundFont bank to a MIDI stream or a standard MIDI file, but I have no idea how widely that got adopted.


Top
 Profile  
 
PostPosted: Sun Sep 02, 2018 1:23 pm 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 817
Location: New York, NY
I added Julia support to the Remote API.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 83 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group