Offline
WOW MAN!

I've been doing some experimenting with PR8. I've made it so that instead of a counter to advance the step sequencer, it can sit and wait for a button press on controller 2.

I'm just thinking out loud here but wouldn't it be pretty simple to rig up a MIDI->electronic pulse cable and then in your external sequencer, assign a MIDI control to send each time you'd like PR8's sequencer to advance a step and it should just work?

I guess you'd have to create a "dummy" track in your song that just sent out constant MIDI messages to keep PR8 moving but that wouldn't be too much trouble would it? You'd also have the advantage of it staying perfectly in sync with your tempo changes.

Not sure about the difference in resolution. I'm still only polling the second controller port @ 60hz but unless you've got an insanely fast track it should keep up shouldn't it?

Just want to use this thread as a place for ideas as I really need to get this external sync lark sorted, for Pulsar too.

Offline
Vancouver, BC

It's a great topic to be working on!

In terms of my personal vote/preference, the question is whether the total timing jitter would be enough to be a problem...
(PC MIDI Interface Jitter can easily be 10ms) + (midi-pulse-converter Jitter if any) + (+/- half of 1/60 s jitter, is what about 8ms) = ??

Keeping in mind that trackers with 60Hz timing resolution usually sound fine but of course the pattern of timing deviation is a regular pattern not a random one. And haven't I heard people say that certain tempos 'sound better' with a 60Hz tick since timing deviations 'from the beat' are minimized?

I guess it will come down to actual testing and perceived feel, in the end. I'm pickier than most people anyway about timing. I use a PCI-based midi interface in my computer cause I swore I was getting a sloppy feel from the usb-midi device I used previously.

Offline
Vancouver, BC

Actually a 2nd option for people with an extra audio out channel on their PC:
Send out an _audio_ pulse using an extra sequencer track, and convert that into the controller-port signal.
Would actually give better results imho than going through a typical MIDI interface.

Certain projects are doing this to connect 'DIN Sync' gear, or modular sequencers, to PC's. I could find more info if you're interested.

Again though, to be honest I'm sure that most of your potential market isn't picky about timing the way I am, and most people are going to want the simplicity of MIDI.

Offline
Milwaukee, Wisconsin USA

i'd aim for more analog clock input and then the sky's the limit and we can just use midi to analog clock converters smile Which also opens up to using Sync24, and modular. smile
Just say'n .

Offline
Milwaukee, Wisconsin USA

the button press idea is basically what i'm talking about.. if it's pulling a port high then one can easily just use a simple logic clock source. if it pulls port low, then a simple transistor can be used w/ the analog clock source to pull the port low.

again. simple analog clock stuff but from there you can easily use so many other devices to sync the NES to.. and MIdi clock to analog clock converters are super simple to make or buy.

Offline
Milwaukee, WI

I can dig it.  I vote for low-gains idea.  Being able to sync this with my bent stuff would be great!  MIDI is great too.

Offline
WOW MAN!

@low-gain

In order to do this, would I have to decouple the step sequencer from VBLANK altogether. My instinct says yes as each time the NES receives a pulse to advance, we could be waiting almost 1 frame before the actual signal is acknowledged and acted on. It might not be an issue though, I really can't tell.

Essentially, doing the button press way, you're not actually doing any synching at all - PR8 would essentially be turned into a kind-of arpeggiator MIDI device and the sync pulses would be just telling PR8 to play the next note.

I guess it could be designed so that there's:

+ 1 button which advances the step sequencer
+ 1 button to start/stop
+ 1 button to reset (start the song/pattern from the beginning)

but then it starts to get very specific to my application and perhaps not much use to others. That's the nature of the beast though I guess.

Offline
Sweden
neilbaldwin wrote:

I've been doing some experimenting with PR8. I've made it so that instead of a counter to advance the step sequencer, it can sit and wait for a button press on controller 2.

I'm just thinking out loud here but wouldn't it be pretty simple to rig up a MIDI->electronic pulse cable and then in your external sequencer, assign a MIDI control to send each time you'd like PR8's sequencer to advance a step and it should just work?

I guess you'd have to create a "dummy" track in your song that just sent out constant MIDI messages to keep PR8 moving but that wouldn't be too much trouble would it? You'd also have the advantage of it staying perfectly in sync with your tempo changes.

Not sure about the difference in resolution. I'm still only polling the second controller port @ 60hz but unless you've got an insanely fast track it should keep up shouldn't it?

Just want to use this thread as a place for ideas as I really need to get this external sync lark sorted, for Pulsar too.

If you work with MIDI sync at 24 PQN (which maps nicely to tracker speed 6, assuming every step is 1/16th note), 60 Hz isn't enough for anything over 150 BPM, I think. I've done experiments with joystick port syncing on the C64, but there I used a tight loop that was pretty much only polling the joystick port. Too bad, because the C64 is able to make an interrupt upon the fire button being pressed (for light pens and guns), but only once per frame sad. Can't the NES do something similar for light guns?

Offline
Sweden

Or maybe you can generate interrupts from joypad presses by other means, by moving sprites to collide or something. I don't really know how the NES works; just throwing out ideas.

Offline
Vancouver, BC

If you stick to the "Sixteenth-Note Sync Pulse" idea, couldn't someone still make a cheap Sync24->NES converter cable by dividing down the clock and passing through the 'start' signal?

Following that train of thought, it would be pretty sweet to have a converter that could take as input any of these:
-DIN Sync 24
-MIDI Clock
-Audio clicks at either 24ppq or 4ppq


Just brainstorming. Full 24ppq sync would also be great if it turns out to be doable.

Offline
Milwaukee, Wisconsin USA
spriteful wrote:

If you stick to the "Sixteenth-Note Sync Pulse" idea, couldn't someone still make a cheap Sync24->NES converter cable by dividing down the clock and passing through the 'start' signal?

Following that train of thought, it would be pretty sweet to have a converter that could take as input any of these:
-DIN Sync 24
-MIDI Clock
-Audio clicks at either 24ppq or 4ppq


Just brainstorming. Full 24ppq sync would also be great if it turns out to be doable.

Yes, you could easily make a sync24 to NES controller cable and it would work like a champ.
if you got the software working correctly i can put one together and make a tutorial for it quite easily.

i'd say if you go via the sync 24 spec's we'd be pretty much set to run any kind of sync operation needed. smile

Offline
WOW MAN!

@low-gain: It would be cool if you could send me one and I can do some further testing. PM me if you want paying for it etc.

Offline
Milwaukee, Wisconsin USA
neilbaldwin wrote:

@low-gain: It would be cool if you could send me one and I can do some further testing. PM me if you want paying for it etc.

do you have any gear that runs sync24?

likewise... we'd have to figure out a port spec... i.e. which pins on the controller connector would be the clock line, start/stop line.

Offline
WOW MAN!
low-gain wrote:
neilbaldwin wrote:

@low-gain: It would be cool if you could send me one and I can do some further testing. PM me if you want paying for it etc.

do you have any gear that runs sync24?

likewise... we'd have to figure out a port spec... i.e. which pins on the controller connector would be the clock line, start/stop line.

I was going to buy one of these (MIDI-syn24 box):

http://www.philrees.co.uk/products/sync-if.htm

So presumably I could go:

Computer/MIDI MTC/Clock ---> MIDI/syn24 Converter ---> your DIN/NES controller cable -> NES

Would that be right?

Offline

While Sync24 is all retro and cool, not arguing there, why not start with standard midi beat clock sync which 95% of all the users would probably use anyways. It wouldn't be hard making an arduino based sync device that could handle inputing and outputting both. And LSDj or nanoloop sync for that matter.

Offline
rochester, ny
spriteful wrote:

In terms of my personal vote/preference, the question is whether the total timing jitter would be enough to be a problem...
(PC MIDI Interface Jitter can easily be 10ms) + (midi-pulse-converter Jitter if any) + (+/- half of 1/60 s jitter, is what about 8ms) = ??

if you were going to sync an NES to a gameboy running LSDJ, could there maybe be a specific sync mode in LSDJ for this where it would send the clock signal on time but delay the playback of the audio by the same amount as the lag time you're talking about? then the audio you'd hear would be in sync.

anyways, i have no idea about any of this stuff but it's fascinating to read you dudes talk about it, so i thought i'd add that idea.