previous by dateindexnext by date
previous in topictopic list 

Subject: Re: [chromapolaris] Assign Midi?

From: David Clarke <ac151@...>
Date: 2005-05-07

> Just a question. Is it possible to enable midi dump for your Polaris?
> I'm not sure because I've come across this description about the Polaris
> commands refering that Lw C 12 would enable midi dumps.

LF C 12 should indeed do a program dump. It will only dump 1 program - the
current one (i.e., the "main workspace").

This sort of thing should allow you to get the patches in sysex format - but
you will need to select (and then dump) each patch individually.

I can confirm that this functionality should certainly be present in Rev 9
software (you can check the installed software version by pressing "LF D 2")

======================

On the technical side, the LF C12 will output a SysEx message like:

F0 08 01 4F 30 30 38 35 30 31 F0
F0 08 01 57 32 43 30 30 30 30 43
30 30 30 31 39 30 30 33 30 32 38
30 30 46 30 37 42 41 34 30 39 30
38 33 35 31 32 30 33 30 30 32 46
30 30 30 37 32 43 30 30 30 30 44
38 30 33 30 30 46 43 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30
30 30 30 37 30 30 30 31 31 38 F0
F0 08 01 53 31 45 30 30 37 46 30
30 F7

Per the MIDI implementation doc, F0 08 01 is the sysex prefix (F0 = start of
sysex, 08 = Fender ID, the 01 = the channel number).

Polaris sysex is funny - as everything is encoded in ASCII.

The first byte after the F0 08 01 is the packet type (0x4F = ASCII "O", for the
"Open" opcode).

Open takes the format Onnnnmm where "nnnn" is the object number and "mm" is the
mode.

In this example, nnnn = 0x30 0x30 0x30 0x38 0x35 - which when converted to
ASCII is 0085. mm = 0x30 0x31 = 01 = "write-enabled.

Object 0085 (again, per the MIDI doc) is the Main Instrument object.

We've then got another sysex start, with opcode 0x57 = ASCII "W" = the "Write"
opcode.

The next bytes encode the number of bytes and the starting address:

32 43 30 30 30 30 => 2C 0000 = 44 bytes, starting at object address 0x0. The
next 44 bytes are then used as data.

The last sysex is F0 08 01 53. 0x53 -> ASCII "S" = send message.

Decoded:
31 45 => 0x1E = stream number
30 30 => 0x00 = instrument number
37 46 => 0x7F = message
30 30 => 0x00 = operand

Stream number 0x1E is the "instrument" stream. Message + Operand 0x7F 0x00 =
"Recreate Instrument"