Sysex data request for Temporary Tone Part Name

Forum for Integra 7
EricLieber
Posts: 2
Joined: 19:53, 28 October 2017

Sysex data request for Temporary Tone Part Name

Post by EricLieber »

Hello,
Thank you for reading this post!

I have been trying to generate a sysex message that would request information describing the name of the patch that is currently loaded in a Studio set's Part. For example sending the following sysex data request message will only generate a response if a Supernatural Synth is loaded:

0xF0, 0x41, 0x10, 0x00, 0x00, 0x64, 0x11, 0x19, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0xF7.

Sending this works fine to receive the data describing the patch name that is currently loaded. The problem I am having is that if the Studio set is changed and it uses a Supernatural Acoustic Sound, then the address is different. If part 1 has a Supernatural sound loaded then only the following would generate a sysex with the name description.

0xF0, 0x41, 0x10, 0x00, 0x00, 0x64, 0x11, 0x19, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x64, 0xF7.

What sysex message do I need to send for a Data Request message that describes the Tone currently in Studio Set part 1 - 16? In other words. What instruments are loaded in the Studio Sets Midi Channels?

If I send a sysex data request for 19 21 00 00 and the tone in the Studio set is a Supernatural Acoustic, No return message is generated. The same goes for sending 19 22 00 00 when a PCM tone is loaded. So how are we supposed to know which sound is loaded?

The Integra-7 Parameter Address Map is confusing and difficult to interpret. Any help would be greatly appreciated. Thank you!
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

Hi Eric,

I'm new on this forum and have been reading a lot here because I only recently got me a Integra-7. I have been digging into the MIDI implementation PDF that Roland provides, and although it's better than 30 years ago, it still is hard to figure out. Besides that, Roland doesn't give all the information that can be used (Maybe they forgot to update it after OS upgrades).

What I found out is that there are a lot more sysex messages you can use and also a lot more ways to use the known messages. I'm still in the process of finding and understanding all of it, but here's one that might be of use to you.

F0 41 10 00 00 64 11 19 00 00 00 04 00 00 00 7F F7
The Integra will send all instruments of the presently selected studio set.
Beware, it's not just a list of instrument names, but it includes all "Tone" sysex's.
It is all send in the format that's described in the MIDI-implementation PDF.

If you only want the names, just let me know and I will figure out how to do that. It will take 16 sysex's to achieve that, but it is possible.
User avatar
Monkey Man
Posts: 287
Joined: 01:37, 1 July 2013
Location: Australia

Re: Sysex data request for Temporary Tone Part Name

Post by Monkey Man »

Yeah, that string simply initiates the "bulk dump" feature, which strangely only sends the current multiset as there is no conventional, "complete" bulk-sysex-dump facility available by "normal" means (or any means? If you can find this one via sysex we'd be able to forget about our USB sticks for backup) - the USB-stick thing replaced that, unfortunately, which is a real bummer IMHO.

At least we're still able to initiate a current-multiset dump via the menus, which is imperative for project archiving IMHO.
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

The string "F0 41 10 00 00 64 11 19 00 00 00 04 00 00 00 7F F7" only gives back part of the "bulk dump" feature. It doesn't include the "studio set" parameters but only the "tones" of the selected set.

Here's a string that gives back all of the 64 "studio sets"
F0 41 10 00 00 64 11 2F 00 00 00 01 00 00 00 7F F7

Notes:
  • "Tones" are not included.
  • The start address in this string is 2F instead of 18 (as used in the MIDI manual).
    I assume 18 is the start address of the "studio set edit buffer" and 2F is the start address of the "studio sets user memory."
  • It might be possible to write all 64 studio sets back to this address, but I didn't try that yet.
  • It takes 1 minute and 20 seconds to transmit/receive the 64 "studio sets".
I think "user tones" can be extracted from the Integra in a similar way, with some other sysex's but I didn't get to that yet.

Hope this helps.
User avatar
Monkey Man
Posts: 287
Joined: 01:37, 1 July 2013
Location: Australia

Re: Sysex data request for Temporary Tone Part Name

Post by Monkey Man »

Edging closer mate.

Well done!
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

Thanks,

The next string gives back all of the 256 "user PCM tones":
F0 41 10 00 00 64 11 30 00 00 00 02 00 00 00 7F F7

Notes:
  • 30 is the start address of the "PCM tones user memory."

    It takes 1 minute and 26 seconds to transmit/receive the 256 "PCM tones".
I'll keep on searching and posting my findings.
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

The next string gives back all of the 32 "user PCM drum kits":
F0 41 10 00 00 64 11 40 00 00 00 04 00 00 00 7F F7

Notes:
  • 40 is the start address of the "PCM drum kits user memory."

    It takes 3 minutes and 12 seconds to transmit/receive the 32 "PCM drum kits".
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

The next string gives back all of the 512 "user SN-S tones":
F0 41 10 00 00 64 11 50 00 00 00 04 00 00 00 7F F7

Notes:
  • 50 is the start address of the "SN-S tones user memory."

    It takes 1 minutes and 24 seconds to transmit/receive the 512 "user SN-S tones".
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

The next string gives back all of the 256 "user SN-A tones":
F0 41 10 00 00 64 11 60 00 00 00 02 00 00 00 7F F7

Notes:
  • 60 is the start address of the "SN-A tones user memory."

    It takes 20 seconds to transmit/receive the 256 "user SN-A tones".
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

The next string gives back all of the 64 "user SN drum kits":
F0 41 10 00 00 64 11 6E 00 00 00 01 00 00 00 7F F7

Notes:
  • 6E is the start address of the "SN drum kits user memory."

    It takes 1 minute and 25 seconds to transmit/receive the 64 "user SN drum kits".
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

To get all of the above in 1 go, use the next string:
F0 41 10 00 00 64 11 2F 00 00 00 50 00 00 00 7F F7

This will make the Integra send all of the user memory in 9 minutes and 8 seconds.
The number of sysex's that's send is 16128 with a total size of about 1.5 Megabytes.

IMHO it's not really a high-speed solution compared to using a USB-stick. It can be more flexible though.
User avatar
Monkey Man
Posts: 287
Joined: 01:37, 1 July 2013
Location: Australia

Re: Sysex data request for Temporary Tone Part Name

Post by Monkey Man »

Wonderful work, Wonderer.

Thank you so much, mate!
EricLieber
Posts: 2
Joined: 19:53, 28 October 2017

Re: Sysex data request for Temporary Tone Part Name

Post by EricLieber »

Thank you so much guys! Your help is greatly appreciated! Wow! I did try to dump the entire thing. It took well over 10 minutes for my application to process it. Good knowledge.

Still though, by sending specific sysex messages to the Integra-7 you can receive small packets back describing the data in that memory address. Which is useful for the application I am developing. For example if I only want to know the name of the patch allocated to a specific midi channel. It seems to me that this can only be done by cycling through the possible banks. For example: by sending a Data request for 0x19 0x01 0x00 0x00
when a Super Natural Acoustic sound is loaded. The Integra-7 will not send anything back. So then you send 0x19 0x02 0x00 0x00 which is met with the responce:

F0 41 10 00 00 64 12 19 01 00 00 4F 42 20 53 74 ð A d O B S t
72 69 6E 67 73 20 34 55 00 00 00 00 00 00 14 00 r i n g s 4 U
40 02 02 00 01 01 01 01 00 00 00 01 00 00 00 00 @
00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00
00 24 00 00 09 03 40 03 00 00 00 4F F7 00 40 22 $ @ O ÷ @ "
5E 40 40 01 2F 41 01 40 11 40 59 01 5C 40 40 42 ^ @ @ / A @ @ Y \ @ @ B
00 3E 5C 41 00 7F 50 00 00 40 3C 03 01 5E 40 40 > \ A  P @ < ^ @ @
42 00 46 61 14 7F 7F 7F 01 05 0C 02 00 00 40 00 B F a    @
00 00 40 40 40 40 01 05 0C 02 00 00 40 00 00 00 @ @ @ @ @
40 40 40 40 00 40 40 40 40 40 40 40 40 40 40 40 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
40 40 40 40 40 03 F7

Seems really inefficient but that is the only way I can think of to find out which patch is in which midi channel. You have to cycle through the possible banks until you get a response.
Maybe there exists a better method. I would like to know it.
Thank you all!
User avatar
Wonderer
Posts: 65
Joined: 21:47, 23 August 2018
Location: The Netherlands

Re: Sysex data request for Temporary Tone Part Name

Post by Wonderer »

You're welcome

As you, I am also developing my own application, in my case a full screen editor for the Integra that will run under Linux.

Tip:
The trick with Roland is that you can request for a single byte, but also for a huge number of bytes. So if you want to know the tone of part 1, you just ask for the complete adress-range of that part. Roland will respond with all messages that have their start-address within that range, and will only send those that are in use.

To ask for the tone in a single part, use these requests:
  • part ----------------------startaddress--data length
    01: F0 41 10 00 00 64 11 - 19 00 00 00 - 00 20 00 00 - 7F F7
    02: F0 41 10 00 00 64 11 - 19 20 00 00 - 00 20 00 00 - 7F F7
    03: F0 41 10 00 00 64 11 - 19 40 00 00 - 00 20 00 00 - 7F F7
    04: F0 41 10 00 00 64 11 - 19 60 00 00 - 00 20 00 00 - 7F F7
    05: F0 41 10 00 00 64 11 - 1A 00 00 00 - 00 20 00 00 - 7F F7
    06: F0 41 10 00 00 64 11 - 1A 20 00 00 - 00 20 00 00 - 7F F7
    07: F0 41 10 00 00 64 11 - 1A 40 00 00 - 00 20 00 00 - 7F F7
    08: F0 41 10 00 00 64 11 - 1A 60 00 00 - 00 20 00 00 - 7F F7
    09: F0 41 10 00 00 64 11 - 1B 00 00 00 - 00 20 00 00 - 7F F7
    10: F0 41 10 00 00 64 11 - 1B 20 00 00 - 00 20 00 00 - 7F F7
    11: F0 41 10 00 00 64 11 - 1B 40 00 00 - 00 20 00 00 - 7F F7
    12: F0 41 10 00 00 64 11 - 1B 60 00 00 - 00 20 00 00 - 7F F7
    13: F0 41 10 00 00 64 11 - 1C 00 00 00 - 00 20 00 00 - 7F F7
    14: F0 41 10 00 00 64 11 - 1C 20 00 00 - 00 20 00 00 - 7F F7
    15: F0 41 10 00 00 64 11 - 1C 40 00 00 - 00 20 00 00 - 7F F7
    16: F0 41 10 00 00 64 11 - 1C 60 00 00 - 00 20 00 00 - 7F F7
The data length here is 00 20 00 00, covering the complete temporary tone range of a part. No matter what type of tone is used, it will be within this range and Roland will respond. All you have to do is read and process the messages.

To ask for all of the parts in one go, use this message:
  • all: F0 41 10 00 00 64 11 - 19 00 00 00 - 04 00 00 00 - 7F F7
The data length here is 04 00 00 00, covering the complete temporary tone range of all 16 parts.

So, the data length can represent the number of bytes, but I like to think of it as a range .


Now, if you want to restrict the number of bytes sent back, you should follow a different approach, but then you will need to send much more, to receive much less, and processing will be more time consuming.

BTW, can you tell me more about your project, and what language you're using?

Hope this helps.
User avatar
Monkey Man
Posts: 287
Joined: 01:37, 1 July 2013
Location: Australia

Re: Sysex data request for Temporary Tone Part Name

Post by Monkey Man »

Waaaay beyond my pay grade...
Post Reply