Please login or register.

Login with username, password and session length
Advanced search  

News:

Pages: [1]   Go Down

Author Topic: Disable SPP for external beat clock sync in SVP  (Read 2749 times)

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Disable SPP for external beat clock sync in SVP
« on: January 20, 2025, 02:08:11 PM »

Finally i can use SVP again, now that the machine is refurbished.

I came across an unusual midi issue: My sequencer cannot interpret the song position pointer SVP sends out at playback begin ($F2 $00 $00), is there any way to switch this off?

My SVP version is 4.2 as it was said this is the most stable. I checked all the menus and also the midi manual.

Also in OMS setup I am not able to filter it out, there is only one checkbox for everything realtime.

I should mention that the sequencer is a DIY project and probably not 100% midi conforming. Until I fix this on the sequencer side it would be useful if I just could turn it off.
Logged

GaryN

  • Moderator
  • 1024 MB
  • *
  • Posts: 1605
  • active member
Re: Disable SPP for external beat clock sync in SVP
« Reply #1 on: January 21, 2025, 03:23:27 PM »

Well, I guess this one lands in my MIDI-IN box…

I’m not certain I understand what’s going on here. Your seq “cannot interpret the SPP…”
1) Are you using SVP as the Master, or your seq?
2) Is your seq sending Beat Clock to SVP?

IF SVP is the master, it must send something indicating a start and where that start should be.

IF your seq is the Master and SVP is sending SPP when it receives a start from the seq, that shouldn’t be happening.
Under Options/Sync Options, “Send Sync Enabled” should be OFF.
Under Options/Sync Options, the “Receive Sync” popup should be set to Beat Clock.

More details would be helpful here: I’m reading this as “My seq sends Beat Clock and when SVP starts it sends SPP back instead of just starting?
… and just WTF does “not 100% MIDI conforming” mean?  :)
Logged

IIO

  • Staff Member
  • 4096 MB
  • *******
  • Posts: 4693
  • just a number
Re: Disable SPP for external beat clock sync in SVP
« Reply #2 on: January 22, 2025, 12:36:59 PM »

Well, I guess this one lands in my MIDI-IN box…

everyone was waiting for you.
Logged
insert arbitrary signature here

GaryN

  • Moderator
  • 1024 MB
  • *
  • Posts: 1605
  • active member
Re: Disable SPP for external beat clock sync in SVP
« Reply #3 on: January 22, 2025, 04:58:12 PM »

Well, I guess this one lands in my MIDI-IN box…

everyone was waiting for you.

It's nice to be wanted…  8)
Logged

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Re: Disable SPP for external beat clock sync in SVP
« Reply #4 on: January 23, 2025, 12:16:16 PM »

Maybe I was not precise enough, SVP is the master, my Arduino sequencer is slaved.

First the SPP bytes are sent from SVP, then $FA for play, then regular midiclock.

It's a DIY project and handling of SPP bytes is not implemented (yet), all my other devices don't send SPP so slaving to them is not an issue.

I just would like to turn off SPP and test the DIY sequencer software, not go back to coding for one bug.
Logged

GaryN

  • Moderator
  • 1024 MB
  • *
  • Posts: 1605
  • active member
Re: Disable SPP for external beat clock sync in SVP
« Reply #5 on: January 23, 2025, 03:42:14 PM »

OK… NOW I understand. The real problem is in your Arduino setup.
I'm afraid there's no relief for you here. As I said originally:

IF SVP is the master, it must send something indicating a start and where that start should be.

That's true not only for SVP, but for any Beatclock/SPP master.
Synchronize: To cause to occur or operate with exact coincidence in time or rate.

SVP is doing exactly what it's supposed to do. As exceptionally versatile as SVP is, there's no way provided to make an edit in the output at user level that would "break the rules" to accommodate a fault in the slave.
My only idea - and it's iffy - would be to start and then pause SVP where you want it to start then pause the Arduino at it's start position so that possibly/hopefully you can get SVP to send only a "start/continue" without the SPP data. No guarantee this is possible or will work but it's all I've got.

Or, you could fix the Arduino… 8)
Logged

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Re: Disable SPP for external beat clock sync in SVP
« Reply #6 on: January 25, 2025, 04:54:10 AM »

It's just funny because other gear that sends SPP behaves different. $FA always starts playback from zero so $F2 $00 $00 is not needed. Only a continue playback command would need a position pointer. My old boss BR-864 recorder sends no position pointer when doing $FA, but it does so when starting playback in the middle of the track.

The Arduino has a three stage buffer reading the incoming bytes in realtime and honestly I don't want to touch it again at this point. I spent five days over the Christmas holidays with it trying to implement sysex dumps which I also could not implement properly, in the process I rolled the code back to an older version that works reliable, as long as it doesn't receive SPP.

I was hoping to use SVP as the stable base to cross check with my Arduino sequencer, deep beta testing, but maybe I will have to use something different then.

Don't get me wrong, I have been working on this code for more than four months and I just don't have the nerves to fix this issue now. I want a list of bugs, as little as possible of course, and then look to fix them for the final version.

And sure I could dig into midi specifications when SPP should be sent or if my device should ignore SPP normally. It's a 4x16 step sequencer so sending SPP is not a useful thing. It was just a matter of "luck" that I discovered my device does not work with SPP, how SVP handles it. On modern DAWs it mostly can be disabled. But doesn't matter, that all also doesn't change the fact that I will have to fix it later, in case someone plans to use this sequencer with SVP or other software that has SPP oddities.
Logged

GaryN

  • Moderator
  • 1024 MB
  • *
  • Posts: 1605
  • active member
Re: Disable SPP for external beat clock sync in SVP
« Reply #7 on: January 25, 2025, 08:10:04 PM »

Wow… this is what we call "in the weeds".
I get it. What you really want is SVP to send MIDI Real-Time Start, Stop, Continue & MIDI Clock without any SPP location… and sorry, that's what you won't get from SVP. It's even specified on pg. 435 of the MIDI Manual that SPP is transmitted when you select Beat Clock.

Although there was (and still IS) more than a little ambiguity in the MIDI 1.0 spec, it was pretty much understood that one could send an $F2 $00 $00 before a $FA without ill effect since the location bits were all zeros. The slave was/is expected to use the SPP if needed and ignore it if not.*

* Some devices are also capable of remaining at and remembering their position after a $FC Stop and therefore continue from that point after a subsequent $FB Continue without the need for a SPP refresh and some are not. I guess Opcode decided the more "universal" implementation therefore would be to always send the SPP to be there if needed after a $FB.

This is the kind of thing that, if this was then and you called for tech support, an extra menu item to toggle SPP off might have appeared in the Sync Dialog box in SVP 6.0.
One of the many joys of using unsupported software……

Since all you're needing is Real-Time and Clock and you're determined to NOT dig back into the Arduino, maybe a drum machine or such as the master could do the job instead of SVP…? If you need SVP to be running (playing tracks or…) maybe you could slave both sequencers to a separate clock.  8)

Logged

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Re: Disable SPP for external beat clock sync in SVP
« Reply #8 on: January 26, 2025, 12:18:25 AM »

Thank you again for the detailed reply.

Continue is handled just like playback start regardless of position, since my device is a pattern based step sequencer it does not make sense to start playback in the middle of a pattern, the complexity of the generated notes is somewhat easy to overview. It's also possible to build songs inside my device but it must be running for a while, always loading up the next pattern automatically, or one can chain manually what pattern comes next, it's a bit like a x0x based drum machine but also has some note tracks.

Basically I want to test how it behaves as slave and also as master, how is the quality of midiclock it outputs and if the timing of note ons is decent enough. From my ears it's good but that's not enough, I need to see it. There are also other things like the need of writing pattern data to flash which can cause a disruption in timing, since for the writing the clock interrupt has to be disabled for a few mS, and I want to find out if this will cause a timing shift in playback. If patterns are saved and only loaded everything works without interruption, just the save process takes more time due to block erasing of the flash chip...

I thought maybe I can slave another sequencer to SVP and slave my device to that sequencer. I have a super odd and rare Brother PDC100 - pro disc composer, that also has a nice internal click sound. This thing is from a different planet and precise like a sewing machine. For the timing drift I could align that click with my sequencer notes and check how it turns out. The notes that my sequencer plays I can record back into SVP, at a later stage.

I already tried using my device as master with SVP but it was too jittery in the higher BPM ranges. My device is capable of running at up to 1000 BPM with optional clock divider for the output - but of course it only runs on a cheap pro mini 328p with 8Mhz resonator, so the BPM even at 120 are minimum 0,5 BPM off. Opposed to that the jitter is very low, even lower than "native" SVP midi beat clock. I also was a bit scared of midi baudrate deviations which can be maximum 1%, but until now none of my devices had communication issues with this project sequencer.

I don't know if I should post this, but I do it now so that you see what this is about. This is not a complete demo, many functions are not shown, it's just "composing in standalone without a midi controller". And it's all improvised, nothing was prepared, and I am not really proud of it. Planning to do better, full, videos at a later point.

https://youtu.be/pkM6X-vnIn0?feature=shared

And mind, this is a low cost design on purpose, all the needed parts can be had for well below ~40$.

(Omg, now I went off topic too! Hope that's acceptable... I am not trying to advertise anything here, it is not for sale yet, it's all open source...)

If Gibson wouldn't have bought Opcode... Who knows what would have happened :)
Logged

GaryN

  • Moderator
  • 1024 MB
  • *
  • Posts: 1605
  • active member
Re: Disable SPP for external beat clock sync in SVP
« Reply #9 on: January 26, 2025, 01:27:33 AM »

I watched the YT. I like your device. More buttons and blinkinlites per square inch than I've seen in a long time! I notice, and I'm sure you're aware that you have some ergonomic issues regarding tiny little buttons crammed up against each other. Maybe tapered finger caps…?  ::)

My thought re: Continue instead of Start was that maybe SVP would send that without the SPP but that has since been shown to be unlikely.
So, just what does happen when your gertomatic* sees the SPP before the $FA? I'm still unclear about the overall nature of your setup and its objectives.
Is SVP playing sequenced tracks while trying to control the Gmatic?* Exactly what is it doing other than slaving the Gmatic? There are many simple ways to generate MIDI Clock both hardware and software-based.  8)


* Gertomatic: Well, ya gotta call it something… even temporarily…
* Gmatic: shorter

There's a small app called MIDIClock (what else?) at MIDIClock.com which does just what you seem to need. It is however, Windoze-only.
There's also midilab/uClock on Github that looks to be Arduino-friendly.
Logged

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Re: Disable SPP for external beat clock sync in SVP
« Reply #10 on: January 26, 2025, 02:23:34 PM »

I wanted to go to sleep but now I try to reply shortly.

If you like it thats a good sign for sure!

I wanted to do anything that goes, but noticed it failed at the SPP already. Setup would have been to properly beta test the unit before I consider it a "release candidate", although I already did a lot of testing during coding/modifying the code. Just to be sure I wanted to work with it together with SVP for a few days and see how it turns out. That's the whole nature and objective. It would be pointless to really use it with SVP since SVP is better in every regard, I just wanted to deep test it with a trusted DAW, not some crap like FLstudio...

I have quite a collection of other sequencers and even a dedicated clock generator. But for me it is important to hear and see if my device drops a clockbyte and after a while it will be off, especially on flash saves and pattern changes.

Why? The Gmatic is now called EOSequencer, Experimental Open Sequencer, and sooner or later it will be a DIY kit, for those people that don't fancy ordering PCBs from china, a prepared kit with all parts. Development goes way back and was started six years ago under a different name, I had it on my shelf all the time and now by the power of chatGPT I was able to modify the code for stability and implement new features. I mean many times chatGPT screwed it and I fixed it, I learned a lot about coding in these four intense months of implementation and testing.

So yes, now that I have some distance from it I want to test it as if it was not created by me. Just use it, get into the zone. And if there is a bug, I will have to fix it, since other people later might encounter it too.

The initial sequencer was called beat707 NXT, and actually it's quite a ripoff of the 707 with it's ABCD variations. However, I don't believe in that as a product name. This initial version was not created by me six years ago but it was based on my ideas. I wanted actually 14 segment displays like on a Williams pinball machine, but it is now what it is. The original coder abandoned this project and is focusing on PC DAW development.

I am aware that the 6x6mm tactiles are small, but it's the best and cheapest premade option. Three of those boards and the so called brain board with DIN midi jacks. This is midi only of course.

The button input scheme is not complicated and there are no finger breaking combos.

And - I worked on this primary to have a step sequencer for myself. I don't think it will sell much and that's also not the point. But if it makes a few people happy sequencing old-school like that it's already good. Currently we try to create a 3d printed enclosure which is a challenge on another level... That can probably increase sales, when it's not just four circuit boards that you have to mount somewhere... But as said, i don't expect much sales to happen overall, it's a old-school hobby project for people that like to sequence stuff with limitations. It's better for working with than my analogue solutions Europa by far for example, having almost same and partially even better specs.

And: anyone can use the control boards and solder their own LEDs and tactiles to it, whatever one wants to build. Segment displays can be driven in single Mode too, there is a TM1638 control chip on each board, so either it's a premade device or an option to make some unique DIY style sequencer from it, like arcade buttons with LEDs in a 4x4 matrix... Just needs someone to actually buil it. For me the concept is finished as it is. But...maybe I myself will build a big unit in Summer when it's warmer outside, to fully be able to enjoy it and go crazy on step editing...

Wow what an excursion, but now you know possibly everything about this device.

And that was not short either, another 30 minutes of sleep lost 😫
Logged

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Re: Disable SPP for external beat clock sync in SVP
« Reply #11 on: January 27, 2025, 02:33:04 PM »

That was no joke, only at the end of the day I find time to write replies here...

Meanwhile a friend created the first 3d print case, time for a cheap prototype promo shot with uncovered displays...

Ok that's all then for heavy offtopic. I promise to keep this thing outside of the forum from now on :-)
Logged

GaryN

  • Moderator
  • 1024 MB
  • *
  • Posts: 1605
  • active member
Re: Disable SPP for external beat clock sync in SVP
« Reply #12 on: January 27, 2025, 09:37:31 PM »

Looking good!
Logged

gert79

  • 64 MB
  • ****
  • Posts: 71
  • New Member
Re: Disable SPP for external beat clock sync in SVP
« Reply #13 on: January 28, 2025, 02:39:30 AM »

Thank you Sir 🙂
Logged
Pages: [1]   Go Up

Recent Topics