If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Synced LFO
Re: Synced LFO
Nubeat7 wrote:just reuploaded it..
You always fix everything, thats good!
tulamide wrote:If I'm right, the correct list of numbers below "1 bar" is...
That was in my mind, sounds right. Watching "Noah" so i'm kinda busy right now!
- Father
- Posts: 177
- Joined: Thu Jan 09, 2014 5:48 pm
Re: Synced LFO
A bit of testing in FL Studio seems to indicate that while tempo and the bar/step divisions in FL adjust expectedly to changes in time signature, PPQ always stays the same, as if at 4/4 time. So that means at 4/8 time, there will be twice the pulses in each bar or quarter note as there is at 4/4 time. The same is true for 8/4.
If I'm not mistaken, that means that in order to adjust correctly for time sig in FL, you need to divide the steps per beat AND the beats per bar by 4 in order to get two factors which effect the timing/PPQ rate.
However, I don't know if this is true for other DAW software. Might anybody know this or have a way of testing this??
EDIT: Actually, from reading the PPQ prim output itself, steps per beat doesn't effect this. It does in fact work logically. So what we actually need is just the PPQ position divided by the beats per bar.
In other news though... I believe I've come up with a much better way of doing this. It's basically the same as Nubeat's principle only done in green instead of blue, and only calculated once "at play." We can simply calculate the Hz rate of the osc, and then adjust for the playback position by calculating a phase offset. That will remove all the additional sample rate calculations and probably make things simpler in the process.
I haven't actually put this together yet but I think this is the way to go!
EDIT2:
This seems to work well and is MUCH simpler. However it only works when you click play. Downside being if it's playing and you change the track position it goes out of sync.
Alternative seems to be just squirt the PPQ position directly into the osc phase (with Hz at 0) at sample rate. We'll see how that goes.
If I'm not mistaken, that means that in order to adjust correctly for time sig in FL, you need to divide the steps per beat AND the beats per bar by 4 in order to get two factors which effect the timing/PPQ rate.
However, I don't know if this is true for other DAW software. Might anybody know this or have a way of testing this??
EDIT: Actually, from reading the PPQ prim output itself, steps per beat doesn't effect this. It does in fact work logically. So what we actually need is just the PPQ position divided by the beats per bar.
In other news though... I believe I've come up with a much better way of doing this. It's basically the same as Nubeat's principle only done in green instead of blue, and only calculated once "at play." We can simply calculate the Hz rate of the osc, and then adjust for the playback position by calculating a phase offset. That will remove all the additional sample rate calculations and probably make things simpler in the process.
I haven't actually put this together yet but I think this is the way to go!
EDIT2:
This seems to work well and is MUCH simpler. However it only works when you click play. Downside being if it's playing and you change the track position it goes out of sync.
Alternative seems to be just squirt the PPQ position directly into the osc phase (with Hz at 0) at sample rate. We'll see how that goes.
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: Synced LFO
Alright guys, here's what I've got.
I created a new sync method by linking PPQ position to OSC "Phase" input while setting the "Freq" input to 0. Super simple, but unfortunately all the switching involved between sync and no-sync, playing and not-playing, it got a little complicated. Seems to work though!
I tried to send the phase position into a sample and hold such that when you stop playing, the LFO would continue from the same position, but I couldn't get the S&H to grab the value for some reason. Maybe you can look at it and figure out what's wrong with that.
I just used the drop-down selector in this upload, though I do like Father's graphic selector better. The saw is flipped from his version. I'd like to add an option for both saw shapes.
Anyways, please give this a try and let me know if there's anything wrong with it.
I created a new sync method by linking PPQ position to OSC "Phase" input while setting the "Freq" input to 0. Super simple, but unfortunately all the switching involved between sync and no-sync, playing and not-playing, it got a little complicated. Seems to work though!
I tried to send the phase position into a sample and hold such that when you stop playing, the LFO would continue from the same position, but I couldn't get the S&H to grab the value for some reason. Maybe you can look at it and figure out what's wrong with that.
I just used the drop-down selector in this upload, though I do like Father's graphic selector better. The saw is flipped from his version. I'd like to add an option for both saw shapes.
Anyways, please give this a try and let me know if there's anything wrong with it.
- Attachments
-
- SuperSyncLFO v1.fsm
- (53.37 KiB) Downloaded 1482 times
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: Synced LFO
Perfect Human Interface wrote:A bit of testing in FL Studio seems to indicate that while tempo and the bar/step divisions in FL adjust expectedly to changes in time signature, PPQ always stays the same, as if at 4/4 time. So that means at 4/8 time, there will be twice the pulses in each bar or quarter note as there is at 4/4 time. The same is true for 8/4.
Seems to be another interpretation issue between vst sdk and the host. I found this on KVR...
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Synced LFO
Indeed, that link is the kind of thing I was wondering about. Although my initial thoughts you quoted about FL Studio were wrong. In FL the PPQ position is based expectedly on quarter notes. But it will be interesting to see if issues arise with using other hosts.
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: Synced LFO
Perfect Human Interface wrote:In FL the PPQ position is based expectedly on quarter notes
Are you sure? I just tested with the little dummy effect attached. First I tried Reaper. It behaves conforming to the vst specs:
It is solely quarter note dependant. Whatever tempo is set, the ppq pos for a bar stays the same. It correctly reacts to changes in time signature. Example: Start of bar two, time signature 4/4. Reaper sends 4.0. Time signature 4/2, Reaper sends 8.0. Time signature 8/4, Reaper sends 8.0. These are correct values
In FL however, the ppq position is odd. At 4/4 it sends 4.0, at 4/2 it sends 2.0, at 8/4 it sends 8.0
I didn't test other DAWs, because I don't have any other. Oh, well, tried LMMS, but it doesn't send ppq pos info (v0.4something)
- Attachments
-
- ppq test.fsm
- (1.03 KiB) Downloaded 1413 times
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Synced LFO
i tested it now in ableton, cubase, bitwig, renoise and fl studio
it works right on each program where you can set the timesignatur like you intend to do, so cubase, ableton and bitwig are working correct
in renoise you only have 4/4 but you can change the lines ber beat as soon you are not in a multiple of 4 it fucks up the sync because the timesignature is still set to 4/4
fl studio seems to sets the timesignature to the right values but it doesn't, what it does when you indent 7/8 (7 8th notes in one bar) is to set 7 bars with 8 beats so the whole counting is wrong, it only works correct as long as you stay in 4 beats, if so, any bar values are possible like 3/4, 6/4...! which definetly is a FL issue.
the calculation i did is right as long the host developers taking care that it fits also the vst sdk to take care that 3rd party vst developers are able to build working vsts for it, sadly there are hosts that don't follow these lines and do their own sync calculations which fucks everything up.. or forces the developer to implement specific solutions for their host..
the only way around would be to write an own calculation for FL studio, but as we have no way in FS to find out in which host the vst actually is playing we cannot switch between different calculations for different hosts
maybe this would be a good feature for future updates to have a primitive which tells us the host name, so we could make individual calculations where they are needed....
or at least some sync primitives specially for fl studio after FS is included in FL this shouldn't be to hard or? or just export your vst as fl plugin with the FL version of FS which also should work or?
it works right on each program where you can set the timesignatur like you intend to do, so cubase, ableton and bitwig are working correct
in renoise you only have 4/4 but you can change the lines ber beat as soon you are not in a multiple of 4 it fucks up the sync because the timesignature is still set to 4/4
fl studio seems to sets the timesignature to the right values but it doesn't, what it does when you indent 7/8 (7 8th notes in one bar) is to set 7 bars with 8 beats so the whole counting is wrong, it only works correct as long as you stay in 4 beats, if so, any bar values are possible like 3/4, 6/4...! which definetly is a FL issue.
the calculation i did is right as long the host developers taking care that it fits also the vst sdk to take care that 3rd party vst developers are able to build working vsts for it, sadly there are hosts that don't follow these lines and do their own sync calculations which fucks everything up.. or forces the developer to implement specific solutions for their host..
the only way around would be to write an own calculation for FL studio, but as we have no way in FS to find out in which host the vst actually is playing we cannot switch between different calculations for different hosts
maybe this would be a good feature for future updates to have a primitive which tells us the host name, so we could make individual calculations where they are needed....
or at least some sync primitives specially for fl studio after FS is included in FL this shouldn't be to hard or? or just export your vst as fl plugin with the FL version of FS which also should work or?
Last edited by Nubeat7 on Sun Sep 14, 2014 12:16 pm, edited 1 time in total.
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: Synced LFO
Nubeat7 wrote:i tested it now in ableton, cubase, bitwig, renoise and fl studio
It's good to hear that at least ableton, cubase, reaper and bitwig stay to the vst specs.
The FL issue: I've further investigated, what FL is sending on not-quarter-based time signatures. I reduce it to one situation, 100 bpm and 4/2 time
- Code: Select all
Reaper info
ppqp 8.0, sample position 211680 @44100, time sig 4/2, tempo 100, bar start position 8
FL Info
ppqp 2.0, sample position 105840 @44100, time sig 4/2, tempo 100, bar start position 0
Note, FL sends 0 as bar start position until its own 5th bar, then it sends 8, at start of 9th bar it sends 16. That means, FL counts 8 real world quarter notes within 4 FL bars, or 2 real world quarter notes per FL bar. That again corresponds to the ppqn of 2.0 at the start of FL bar 2. Also, the sample position is the same as if having played 4 real world quarter notes. Would it be too easy to assume that 4 (sample position to real world quarters) x ppqpos would get the correct ppq?
I'm sure, one could calculate the correct ppq pos out of these informations, but I admit that I couldn't get to a solution. Maybe someone else can?
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Synced LFO
Ah, you guys are right, FL is weird. I keep getting confused. I'm glad you guys have other DAWs to test.
OK, so FL's "time signature" is not based on convention. The first number is "beats per bar" and the second number is "steps per beat." So it's how many steps each beat is divided into, rather than the note length of each beat.
Simply enough, PPQ is counting beats in FL. Not quarter-notes or anything else.
Odd, I would think it would work correctly only in FL since that's what I coded it for...
Edit: Working correctly for me in FL Studio at various time sig settings.
Edit2: Which thing were you testing? My version or yours? lol
One more thing: I know there are a few FL Studio-specific primitives. Does anyone know if these persist in VST export, and if they might be able to be used to detect whether a VST is opened in FL Studio or not?
OK, so FL's "time signature" is not based on convention. The first number is "beats per bar" and the second number is "steps per beat." So it's how many steps each beat is divided into, rather than the note length of each beat.
Simply enough, PPQ is counting beats in FL. Not quarter-notes or anything else.
Nubeat7 wrote:i tested it now in ableton, cubase, bitwig, renoise and fl studio
it works right on each program where you can set the timesignatur like you intend to do, so cubase, ableton and bitwig are working correct
Odd, I would think it would work correctly only in FL since that's what I coded it for...
Edit: Working correctly for me in FL Studio at various time sig settings.
Edit2: Which thing were you testing? My version or yours? lol
One more thing: I know there are a few FL Studio-specific primitives. Does anyone know if these persist in VST export, and if they might be able to be used to detect whether a VST is opened in FL Studio or not?
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: Synced LFO
Perfect Human Interface wrote:Edit2: Which thing were you testing? My version or yours? lol
oh, yes i was talking about my version, didn't find the time to test yours..
here is the correct version for FL studio, i built in a properties switch, so you have both versions to test... best way for releases is to use this in the users options so the user can choose the host, after we have no way that the plugin identifies the host by itself...
- Attachments
-
- Synced LFObarsync_flsudio.fsm
- (151.25 KiB) Downloaded 1470 times
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Who is online
Users browsing this forum: No registered users and 39 guests