Specs available
2003-09-04 by riccardo231057

Yahoo Groups archive
Index last updated: 2026-03-31 14:03 UTC
Thread
2003-09-04 by riccardo231057
2003-09-04 by The Old Crow
On Thu, 4 Sep 2003, riccardo231057 wrote:
> Do you know if the specs of the sound of the tape interface is
> available somewhere?
>
> I will like to build a patch editor for my Polysix (easy task), to
> group patches in set of 32 (easy too) and to self generate the wav
> for that bank (not so easy).
>
> So, what I need to know is the base sound (shape and frequency) and
> its modulation related to values encoding.
>
> Thanks a lot for any help.
>
> Riccardo
2003-09-05 by Riccardo (Oggi)
----- Original Message -----
From: The Old Crow
To: PolySix@yahoogroups.com
Sent: Friday, September 05, 2003 1:11 AM
Subject: Re: [PolySix] Specs available
Here is my info on the tape data:
/* start clip from file */
Korg Polysix Tape Format
Info from Old Crow's Synth Shop
The tape interface is a simple one, based on the Kansas City Standard
for FM data-to-tape. A tape dump looks like this:
1) 10,240 "1" bits of leader tone
2) A 2-byte header; the 2 bytes are 0x50 and 0x36 (ASCII "P6")
3) 512 bytes of patch data for 32 patches
4) One-byte checksum of data
5) 1,536 "1" bits of trailer tone
Bytes are framed by one "0" start bit and two "1" stop bits, making
a single byte actually use 11 bits. Also, note that bytes are sent
LSB *FIRST*. That is 0x50 = 0b01010000 is sent 00001010.
LSB^ ^MSB
The "0" and "1" bits are designated by waveforms with periods of 640us
(1562.5Hz) and 320us (3125Hz), respectively. Note that the waveform
polarity is irrelevant, for example a "1" bit can be represented by a
_ _ _
_| |_ or by a |_|. Only the interval matters. Thus, 0x50 encoded in
FM data format with 1 start and 2 stop bits can appear as either of:
_ __ __ _ _ _ _...
Case#1: |__| |__| |__| |__| |__| |_|
Start bit->0 0 0 0 0 1 0 1 0 1 1<-Stop bits
__ __ __ __ __ _
Case#2: _| |__| |__| |_| |_| |_| |_...
\LSB____ 0x50 ____MSB/
The checksum is just the lower 8 bits of the sum of all 512 bytes of
the RAM data (carry outs of the sum aren't even stored; they just
"fall off" the data byte each time it exceeds 0xFF).
/* stop clip from file */
I made a simple PIC circuit with the factory patch data coded in ROM so
I can reload repaired boards without fumbling with tape recorders and
levels. Just connect it to the tape in jack, set the tape load mode
on the P6 and hit the single button on the PIC widget to zap the data
across.
Crow
/**/
On Thu, 4 Sep 2003, riccardo231057 wrote:
> Do you know if the specs of the sound of the tape interface is
> available somewhere?
>
> I will like to build a patch editor for my Polysix (easy task), to
> group patches in set of 32 (easy too) and to self generate the wav
> for that bank (not so easy).
>
> So, what I need to know is the base sound (shape and frequency) and
> its modulation related to values encoding.
>
> Thanks a lot for any help.
>
> Riccardo
Yahoo! Groups Sponsor
ADVERTISEMENT
To unsubscribe from this group, send an email to:
PolySix-unsubscribe@egroups.com
PolySix "Digiest" Page: http://www.acc.umu.se/~amber/Poly6
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
[Non-text portions of this message have been removed]
2003-09-08 by Riccardo (Oggi)
----- Original Message -----
From: The Old Crow
To: PolySix@yahoogroups.com
Sent: Friday, September 05, 2003 1:11 AM
Subject: Re: [PolySix] Specs available
Here is my info on the tape data:
/* start clip from file */
Korg Polysix Tape Format
Info from Old Crow's Synth Shop
The tape interface is a simple one, based on the Kansas City Standard
for FM data-to-tape. A tape dump looks like this:
1) 10,240 "1" bits of leader tone
2) A 2-byte header; the 2 bytes are 0x50 and 0x36 (ASCII "P6")
3) 512 bytes of patch data for 32 patches
4) One-byte checksum of data
5) 1,536 "1" bits of trailer tone
Bytes are framed by one "0" start bit and two "1" stop bits, making
a single byte actually use 11 bits. Also, note that bytes are sent
LSB *FIRST*. That is 0x50 = 0b01010000 is sent 00001010.
LSB^ ^MSB
The "0" and "1" bits are designated by waveforms with periods of 640us
(1562.5Hz) and 320us (3125Hz), respectively. Note that the waveform
polarity is irrelevant, for example a "1" bit can be represented by a
_ _ _
_| |_ or by a |_|. Only the interval matters. Thus, 0x50 encoded in
FM data format with 1 start and 2 stop bits can appear as either of:
_ __ __ _ _ _ _...
Case#1: |__| |__| |__| |__| |__| |_|
Start bit->0 0 0 0 0 1 0 1 0 1 1<-Stop bits
__ __ __ __ __ _
Case#2: _| |__| |__| |_| |_| |_| |_...
\LSB____ 0x50 ____MSB/
The checksum is just the lower 8 bits of the sum of all 512 bytes of
the RAM data (carry outs of the sum aren't even stored; they just
"fall off" the data byte each time it exceeds 0xFF).
/* stop clip from file */
I made a simple PIC circuit with the factory patch data coded in ROM so
I can reload repaired boards without fumbling with tape recorders and
levels. Just connect it to the tape in jack, set the tape load mode
on the P6 and hit the single button on the PIC widget to zap the data
across.
Crow
/**/
On Thu, 4 Sep 2003, riccardo231057 wrote:
> Do you know if the specs of the sound of the tape interface is
> available somewhere?
>
> I will like to build a patch editor for my Polysix (easy task), to
> group patches in set of 32 (easy too) and to self generate the wav
> for that bank (not so easy).
>
> So, what I need to know is the base sound (shape and frequency) and
> its modulation related to values encoding.
>
> Thanks a lot for any help.
>
> Riccardo
Yahoo! Groups Sponsor
ADVERTISEMENT
To unsubscribe from this group, send an email to:
PolySix-unsubscribe@egroups.com
PolySix "Digiest" Page: http://www.acc.umu.se/~amber/Poly6
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
[Non-text portions of this message have been removed]
2003-09-08 by The Old Crow
On Mon, 8 Sep 2003, Riccardo (Oggi) wrote:
> Crow, thanks to your info, generating a WAV encoding P6 parameters is no
> longer a problem.
>
> But now I miss another couple of things:
> 1) parameter sequence: which comes first, which second etc. etc.
> 2) parameter values range.
>
> Can you help me on this too?
2003-09-08 by Riccardo (Oggi)
----- Original Message -----
From: The Old Crow
To: PolySix@yahoogroups.com
Sent: Monday, September 08, 2003 9:36 AM
Subject: Re: [PolySix] Specs available
I don't know exactly, but I'll give an educated guess:
There are 16 bytes per patch. Presuming the bytes are stored in RAM in
their hardware address order, you have:
1st byte: Effect Speed/Intensity knob
2nd byte: Filter Fc knob
3rd byte: Filter EG intensity knob
4th byte: Filter Q (resonance) knob
5th byte: Attack knob
6th byte: Decay knob
7th byte: Sustain knob
8th byte: Release knob
9th byte: Filter keyboard tracking knob
10th byte: PW/PWM knob
11th byte: PWM speed knob
12th byte: MG (LFO) speed knob
13th byte: MG delay knob
14th byte: MG level knob
15th byte: switch bits for VCO oct (2 bits), waveform (2 bits),
subosc mode (2 bits) and MG destination (2 bits).
16th byte: switch bits for EG VCA mode (1 bit), effect mode (2 bits),
attenuator (4 bits).
I don't know exactly which bit values mean which setting for the
switches. Best way to figure that out is just a little trial and error.
The 14 knob values are at 8-bit resolution.
Hope this helps,
Crow
/**/
On Mon, 8 Sep 2003, Riccardo (Oggi) wrote:
> Crow, thanks to your info, generating a WAV encoding P6 parameters is no
> longer a problem.
>
> But now I miss another couple of things:
> 1) parameter sequence: which comes first, which second etc. etc.
> 2) parameter values range.
>
> Can you help me on this too?
[Non-text portions of this message have been removed]