What's new

A question about SFZ format

I have a question for anyone who knows something about SFZ format, regarding the opcode 'delay_beats' (reference: https://sfzformat.com/opcodes/delay_beats.) The function of this opcode is described as: 'Delays the start of the region until a certain amount of musical beats are passed.'

My main question is: can delay_beats be used to create patterns, i.e. passages of drum beats or musical notes, triggered by playing a key?

I have not been able to achieve this with my own experimenting (using Plogue's sforzando), although I can get some limited delay behaviour to occur. In searching the web some time ago I came across a claim (not sure where) that SFZ or perhaps SFZ players are not able to sync properly with the tempo in the host DAW.

Is this the case? Or some other issue? I don't want to waste any more time on it if it's not possible. Thanks.
 
I would suggest that it's theoretically possible to play one or more samples, then delay and play some more, to create a drum pattern; but it's almost certainly easier to do this in the host.
 
My guess is that the SFZ hosts haven't prioritised this one and that though the opcode is there, it's just not used enough to have become an issue or there's some ambiguity in the opcode's definition that makes it a bit tougher to use than expected (eg does it mean beats or ticks and at what resolution? It's not exactly an expansive description on that page).

Have you emailed David at Plogue? He should be able to shed some light on whether they've implemented host sync in the way described in the opcode. He posts at KVR if you want to take that route. He also has a recently active Twitter account: https://twitter.com/plgdavid
 
Basically, yeah, it's not really used by any instruments that are out there, so I'm not sure what it really does in sforzando, what it might have done in the old Cakewalk stuff etc. But it "should" be possible to create beat patterns or arps, though how to do it and whether the patterns could also be looped - those are questions it would take some testing to answer. I've used delay for strumming... but not delay_beats.

David's pretty busy after the Chipsynth C64 release, so probably won't get a quick answer from him...
 
Thank you benwiggy for kickstarting this thread again, and to everyone who's replied. Obviously it's not at the top of most people's area of interest, and I'd basically given up trying to get it to work. I'll keep everyone's suggestions in mind if I try and tackle it again.

Meanwhile, for those who might be interested, while I was wrestling with the delay_beats conundrum, I came up with an indirect way of creating an sfz pattern-playing instrument that could adjust to tempo.

It works like this: you create a midi file that is used only for tempo, not for pitch. I call this a 'universal midi file' because it plays all timing options simultaneously. You'd need a different midi file for different time signatures, and for the smallest division of beats. I put these in the top two and a half octaves of the keyboard. (See pdf and midi files attached.) You duplicate that midi-bar for as many bars as you need.

Then every other key is used as a keyswitch. Of course the DAW has to be playing to get any sound out of the instrument. Each keyswitch triggers a pattern, which could be one bar in 4/4 of 1/8th notes or half a bar of 1/16th notes, for example. You simply assign the sample you want to be triggered to the midi note of the relevant beat.

I set up some test instruments like this, which work fine, but haven't gone on with it at this stage. I'd be interested to hear if anyone else gives it a go.
 

Attachments

  • Pattern-Player-Universal-Midi-File-8ths-1Bar.pdf
    93.6 KB · Views: 1
  • PlayerMidi_Universal_8ths_1Bar.mid
    315 bytes · Views: 1
  • PlayerMidi_Universal_16ths_HalfBar.mid
    311 bytes · Views: 1
Top Bottom