Support loading phrase recorder (SVQ) data

Issue #26 new
Laurens Holst
repo owner created an issue

Phrases are kinda cool, however once recorded there is no way to retrieve their MIDI events, and those 8 phrase slots run out fast too.

When saving phrases to USB memory, they are saved as SH01_001.SVQ, SH01_002.SVQ, etc. files. It would be great if these could be loaded, visualised and converted to MIDI files. Possibly even generated or edited (e.q. quantise).

Ideally we wouldn’t need to save them to USB first and could have the tool directly retrieve them from the Gaia, but unless there is some secret undocumented feature I don’t think that’s possible, unfortunately.

Comments (2)

  1. Laurens Holst reporter

    The file format itself shouldn’t be too hard to figure out, looking at the hex dump of a phrase it seems to be quite regular and straightforward.

    It starts with a phrs header, followed by 18 additional header bytes: 00 00 00 4F 00 00 8A 00 00 00 00 00 00 00 00 00 00 00.

    and from then on a series of 12-byte segments that look like aa 40 00 00 7F 40 00 00 00 bb cc dd. It looks like aa is note data and bb cc dd is timing data. Though that could be misaligned.

    For example, here is the first bar from a phrase recorded arpeggio on a 1/8th grid with 70% note duration: D4 G4 A4 B4 D5 B4 A4 G4. Also a G2 is played at the start (manually, so not as precisely timed). These are all played at a velocity of 127 (hex: 7F).

    3E 40 00 00 7F 40 00 00 00 20 00 30
    2B 40 00 00 7F 40 00 00 00 5B 00 30
    43 40 00 00 7F 40 00 00 00 20 00 30
    45 40 00 00 7F 40 00 00 00 20 00 30
    47 40 00 00 7F 40 00 00 00 20 00 30
    3A 40 00 00 7F 40 00 00 00 20 00 30
    47 40 00 00 7F 40 00 00 00 20 00 30
    45 40 00 00 7F 40 00 00 00 20 00 2C
    43 40 00 00 7F 40 00 00 00 20 00 04
    

    The second bar starts like this (same notes):

    2B 40 00 00 7F 40 00 00 00 55 00 30
    3E 40 00 00 7F 40 00 00 00 20 00 30
    43 40 00 00 7F 40 00 00 00 20 00 30
    ...
    

    The file ends with the sequence 00 8C 00 00 00 00 00 00 00 00 00.

    Next, should try to play some longer notes, as well as record some controller data.

  2. Log in to comment