Proteus PR2 File Structure
I'd like to understand the structure of the Proteus PR2 file, much like that explorered in the thread for the Procyon PRw file in this thread:
http://mindplacesupport.com/forum/showthread.php?t=859
I've worked out the easy parts based on the information kindly supplied by Andy in the above thread that is common between the two file types, but I'm stuck on the data at 0x0d, 0x19, and everything from 0x21 onwards.
I know I could work out the rest of the structure by creating a new session, and changing one thing at a time for each new segment. But there are many options (for example, Do spcl LFx plus all its settings, Thoughtstream control which has numerous settings too) so it would be quite an arduous process. I was hoping someone (Andy?) may have this information, or has already worked out the structure...:eusa_think:
Re: Proteus PR2 File Structure
I'll ask to see if there's some documentation on that file structure.
-Andy.
1 Attachment(s)
Re: Proteus PR2 File Structure
The following 12 values are used by the windows editor:
SegNum As Integer ; 2 bytes ... Segment number
LFO1Start As Single ; 4 bytes ... Channel #1 Starting LF frequency
LF1Start As Byte ; 1 byte ... Channel #1 Starting LF brightness
LFO2Start As Single ; 4 bytes ... Channel #2 Starting LF frequency
LF2Start As Byte ; 1 byte ... Channel #2 Starting LF brightness
PitchStart As Integer ; 2 bytes ... Start Audio Pitch
LFO1Finish As Single ; 4 bytes ... Channel #1 Finish LF frequency
LF1Finish As Byte ; 1 byte ... Channel #1 Finish LF brightness
LFO2Finish As Single ; 4 bytes ... Channel #2 Finish LF frequency
LF2Finish As Byte ; 1 byte ... Channel #1 Finish LF brightness
PitchFinish As Integer ; 2 bytes ... Finish Audio Pitch
SegTime As String * 7 ; 7 bytes ... Segment Time
The following 12 bytes are the encoded bytes that are sent to the Proteus:
SegmnTime As Byte ; 1 byte ... Segment Time
StartLFO1 As Byte ; 1 byte ... Channel #1 Starting LF frequency
FinishLFO1 As Byte ; 1 byte ... Channel #1 Finish LF frequency
LF1Brite As Byte ; 1 byte ... Channel #1 LF brightness Start and Finsh values
LF2Brite As Byte ; 1 byte ... Channel #2 LF brightness Start and Finsh values
SoundPitch As Byte ; 1 byte ... Audio Pitch Start and Finsh values
XtraBits As Byte ; 1 byte ... Extra bits (see Proteus Segment Structure)
CtrlBits1 As Byte ; 1 byte ... Control bits #1 (see Proteus Segment Structure)
CtrlBits2 As Byte ; 1 byte ... Control bits #2 (see Proteus Segment Structure)
CtrlBits3 As Byte ; 1 byte ... Control bits #3 (see Proteus Segment Structure)
StartLFO2 As Byte ; 1 byte ... Channel #2 Starting LF frequency
FinishLFO2 As Byte ; 1 byte ... Channel #2 Finish LF frequency
Attached is the Proteus Segment Structure document.
-Andy.
Re: Proteus PR2 File Structure
Hi Andy,
Thank you for the document. It describes the missing bytes (0x21 to 0x2D) of each segment, the rest I've worked out from the Procyon format data.
The minute I opened your document, I thought I recognised it from somewhere. I then found that the "Proteus Technical Guide" on the Proteus Support page (http://www.mindplacesupport.com/Proteus.htm) had this information. However, it seems the data format has been updated which is reflected in the document you posted - the support page document does not have the newer data. But the support page document goes into a little more detail than the newer document (for example, Thought Stream sensor sensitivity settings), so it is helpful having both documents. Certainly the Proteus file format seems more complex than the Procyon, since each segment can be a standard segment, two types of biofeedback segments, or a supplemental command (high frequency resolution) segment, whereas the Procyon segments are all the same.
I've no real plans on what to do with the information - I'm just interested in understanding the format.
Regards,
Mike
Re: Proteus PR2 File Structure
Glad the info helped, Mike!
:)
-Andy.