[sdiy] Smart FSK specs
Adam Inglis
21pointy at tpg.com.au
Sun Apr 21 07:51:57 CEST 2013
On 14/04/2013, at 10:35 AM, Adam Inglis wrote:
> I wonder if anyone can point me to some info regarding the specs of
> Smart FSK? There doen't seem much out there that I can find -
> specifically I'm trying to understand how Song Position Pointer info
> is embedded in the pulse stream.
>
> For a few years now I've been using a system in my studio where I
> synthesize regular FSK using a soft synth in Ableton Live, and send
> this audio out on a dedicated channel to the Tape Sync input of my
> hardware midi sequencer (Roland MC50mkII), locking it to the DAW.
> (Alongside this is a second audio track driving an Innerclock Sync
> Lock using a similar principle, thus relieving the DAW of any clock
> or midi duties, resulting in impeccable timing sync. Details are on
> my webpage:
> http://www.adambaby.com/studiotech_sync.html )
>
> Generating regular FSK is simple - its just alternating tones an
> octave apart at 24 PPQN, same resolution as midi and Roland DIN
> sync. The tones frequencies roughly correspond to midi notes D6 and
> D7.
> I'm wondering, and this may be quite naive, if it also possible to
> synthesize "Smart" FSK, so that the hardware could chase a linear
> arrangement started at any point in the song. Of course, the speed
> of the pulses may well push it beyond the capabilities of a midi
> file driving a soft synth.
>
>
> Any info welcome!
> Adam
OK, so I've managed to get this working.
The midi spec for Song Position Pointer (SPP) says that it is a 3 byte
message, a status byte followed by 2 data bytes.The data bytes are
basically a 14 bit counter that counts "1" for every sixteenth note
that has passed since the start of the song. Once a machine has
received and recognized a SPP message, it then begins to count midi
clocks from that point. It doesn't continue to process SPP.
At the resolution of midi clock (24PPQN), a sixteenth note is
represented by 6 clocks. (I'm not sure how a 14 bit counter can be
represented by 6 pulses)
Looking at the waveform of Smart FSK, I noticed that the high
frequency pulses were different to that of regular FSK. In FSK they
are all of equal duration, in Smart FSK there are short ones and
longer ones, but their leading edges are all still regularly spaced as
in FSK.
So, the timing pulses also actually contain a binary code.
Since I had no way of knowing how Roland implemented this code in the
pulse-generating/pulse-reading hardware in the MC50, I transcribed the
pulses from a couple of bars onto paper, made an eyeball guess at the
mark:space ratios, then wrote a midi file to mimic the pulses with
notes, as I've been doing with FSK. In this case the short notes had a
resolution of a 512th triplet note!
Well, it worked. The MC50 chased Live and locked on within a bar or
less, at the correct position in the song.
Now of course, it would be really tedious to have to manually write
every bar for a whole song, although once done you could save it as a
midi file and use it as a template. What I'm doing for the present is
just writing say seven or eight sections spread out over the song,
interspersed with regular FSK, to allow me to skip around a track
fairly quickly. There seem to be a few quirks and caveats that I will
explore and document in time.
Messing around with this kind of audio-based sync has got me thinking.
There seems to be a resurgence of hardware boxes such as sequencers
and drum machines, and gradually also, an awareness of the
deficiencies in midi timing.
We might start seeing more of this kind of interface reappearing on
hardware in the future. Obviously Innerclock Systems are ahead of the
curve here, with their Sync Gen products. Interesting also that Korg
have an audio-based sync system for their monotribes and new Volca
range. The extra sophistication that something like Smart FSK offers
could help make the DAW<->hardware workflow experience seamless.
(For any one interested I hope to have an Ableton template set up on
my website soon. I might put up the basic midi files as well, but I
have found that not all platforms can properly reproduce a midi file
with such minutely short notes)
Adam
More information about the Synth-diy
mailing list