loopeytunes ·
Here's a trance gate me and Philter5 made a while ago 😀
just found it out 😀
Hope this comes in usefull
Loopeytunes
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
loopeytunes ·
Here's a trance gate me and Philter5 made a while ago 😀
just found it out 😀
Hope this comes in usefull
Loopeytunes
infuzion ·
Thanks for sharing! Is there a reason why you have the in set to Poly instead of Stream please?
stampo ·
hi man, sorry, but i have no link here...can u put link again please.. thanks..
loopeytunes ·
stampo wrote: hi man, sorry, but i have no link here...can u put link again please.. thanks..
sorry about that, I was supposed to only remove my GUI stuff a bit back but it looks like I've removed everything.
It's back up now 😀
LT
loopeytunes ·
Does anyone want an updated version of this??
Loopey
Mo ·
Yeah, the technique used seems the same as the Step LFO and is drifting/not accurate.
Cyforce ·
loopeytunes wrote: Does anyone want an updated version of this??
Loopey
Yes we want it 😉
loopeytunes ·
I'll post it up as soon as it's finished then, it still uses the same technique as the step LFO, so it will still drift slightly.
UPDATES: 1) New Look 2) Mono/Stereo added 3) Mix 4) Width 5) most of all a preset manager
Loopey
loopeytunes ·
here it is:
Loopey
Mo ·
loopeytunes wrote: ...it still uses the same technique as the step LFO, so it will still drift slightly.
You can use the sync module from dev tools instead of the ramp to fix this. You'll need to use a PPQ for timing as the ramp is not accurate (don't no why actually).
Cyforce ·
WOW... really!
How long does it takes to build it, with code and gui/graphic design?
I am really impressed.
mHz ·
looking very sexy, maybe we can collab on something payware. Since im a good artistic tallent but simply not in gui mode ever. Ill let ya know.
loopeytunes ·
Mo wrote: You can use the sync module from dev tools instead of the ramp to fix this. You'll need to use a PPQ for timing as the ramp is not accurate (don't no why actually).
To be honest with you, I really wouldn't have a clue how to do that!! It'd be nice if you could do this and re-upload here 😀
Loopey
loopeytunes ·
Cyforce wrote: How long does it takes to build it, with code and gui/graphic design?
It took 2 days to do this as i worked from the first trancegate but to do it all from scratch I'd say it takes around 4 days.
Cyforce wrote: I am really impressed.
thanks 😀
loopeytunes ·
mHz wrote: looking very sexy, maybe we can collab on something payware. Since im a good artistic tallent but simply not in gui mode ever. Ill let ya know.
Thanks 😀 Yeah we can collab on something if you like, let me know
Loopey
trogluddite ·
Mo wrote: You'll need to use a PPQ for timing
This may help - it's a PPQ module I lifted from one of my schematics that seems to work OK. It gives two outputs, a 0-1 ramp for position within the note division, and a long ramp that counts the beats in the sequence as well. You can run it just as easily from an internal clock by feeding the PPQ input a ramp that does 0-1 once per beat.
loopeytunes ·
how would i implement that into my trancegate?
Paul
Mo ·
trogluddite wrote: This may help - it's a PPQ module I lifted from one of my schematics that seems to work OK. It gives two outputs, a 0-1 ramp for position within the note division, and a long ramp that counts the beats in the sequence as well. You can run it just as easily from an internal clock by feeding the PPQ input a ramp that does 0-1 once per beat.
Thanks -but still, this one overload and stops after a few minutes. So a precise reset is needed for long playing time.
trogluddite ·
Sorry, should have made clearer. The 'fake PPQ' module is there only to demonstrate the workings - naturally it will run out of numbers to count after a while (after gradually slowing and getting less accurate!) - it was just a test rig for checking the code. Nornally you'd use the VST PPQ primitive to feed the PPQ to ramp module, to get PPQ from the plugin host. With the host doing the counting, the 'downbeat' (zero crossing) will always reset exactly on the beat. Using host PPQ is the only way to get true sync, any kind of clock made in SM will use different maths than the host does, so rounding errors etc. will always catch it out in the end. Within SM (no PPQ, hence the faker module), using a 0-1 ramp to drive it works better, as that will never run out of numbers - resetting to zero would then be done by resetting the ramp to 0 at the same time as the PPQ to Ramp reset. I'm not sure how PPQ itself deals with very large numbers - SM sees it as just a 32-bit float stream, so I guess that host PPQ might also get less accurate or run out of numbers with very long tracks - but I still get perfect sync at Bar 1000 in a 40 minute long project in Cubase, and looping a section of a song also seems to work fine.
trogluddite ·
Here it is in the trancegate - just replaced the existing ramp and freq calculations inside the sequencer modules. Horrible tacky switch on the front panel turns PPQ on, otherwise uses the internal clocks. I may have a bit more of a rummage tomorrow - you only need the integers out of the ramp module so it can probably do with simplifying a little. Getting too late for me to test in a host now - so let me know if it works!
Mo ·
Ah ok, yes VST PPQ will do for this trance gate as VST.
Synthmaker really need a precise ramp for standalone timing and would also be useful for polyphonic synchronizing of an polyphonic LFO, where you need sync to start when a note play, for example. Can't believe it's not done yet but i'm pretty sure it should be possible by counting samples and resetting.. 😉
trogluddite ·
Nearest thing is the Precise Counter from inside the wave player module - that uses double precision maths (64bit) to make the ramp more accurate.. Should be possible to reset poly ramps using the MIDI to Poly trigger output to reset the count - or to read an offset for the PPQ pos. I've already done a similar thing in mono before, I'll see if it will work the same in Poly.
nix ·
If you need to sync without using ppq, a stream counter will suffice for track length runs. I think it's clock is the soundcards', so should correspond to your host. Cheers 😉 The only way I've seen to make the counter is use a stream add and -> 1 input is no.1 if you want the samplerate. the second input is fed back from the out you should have a stream counter streaming from the out. weird trick!
loopeytunes ·
hi trog, I've just tried it and it's well out of sync with the host (Ableton Live 8).
Paul
trogluddite ·
Back soon, I feel like I need to check this out now I've talked it up so much! 😉
trogluddite ·
No problem here. I added an oscillator and exported as VST and tested in Cubase.
When PPQ is switched on (I may well have saved it with PPQ turned off 😊 ), the sequences run in perfect sync with the metronome, all the way up to 1000s of bars- I got perfect lock to tempo whatever I did with the transport, and it followed tempo automation accurately. It does need the reset function putting in properly to get the start position of bars where you might want them. Getting the absolute position (offset) right is relatively easy as long as there is no drift.
With PPQ switched off, there's plenty of drift - that's to be expected; when PPQ is off, the clocks revert to being the stock ramp module (I was only trying to demonstrate PPQ rather than counters in general, so I didn't try to improve on this) That could be improved with a more accurate ramp module - nix is spot on when he says to use a DIY sample counter, the stock ramp is really designed for driving oscillators etc; it's designed to reproduce an identifiable pitch, but not for phase accuracy in the long term. For every sample, the ramp must calculate how fast to step toward 1, then add this number repeatedly until resetting to zero - so you're getting 44100 potential rounding errors per second! The chances that a VST hosts timer is introducing precisely the same errors is vanishingly small, even if they are both following the same sample clock - and the errors are constantly piling up the longer you play. If you're using the plugin in a host, PPQ will always be the most accurate because the tiny mathematical errors are then the same for every sync'ed instrument - so they will become unnoticable.
Oh well, I suppose we should all just be thankful that we're not synchroning tape machines using SMPTE timecode wibbles any more! 🙂
loopeytunes ·
sorry trog it was my fault! I exported the trancegate as a vst and not as a whole synth 😊
I've tried it as a full synth now and it's great thanks 😀
Paul
trogluddite ·
He he, happens to us all - I've lost count of the days I've wasted over the years looking for bugs that were never there to start with - usually leaving a wake of new bugs behind me as I tear the schematic to shreds - all because the headphone amp is unplugged coz I got desperate for power sockets to charge some batteries, and anyway it's late, I should have gone to bed hours ago, but there's just this one thing I must fix RIGHT NOW......etc......etc......
......Next morning, when my colleagues at work ask why I seem so dog-eared, I just tell them that I got very drunk the night before - seems to be more socially acceptable than describing the joyful experience I had with my dodgy schematic (which never got fixed anyway)! (and sometimes I do get very drunk the night before, so it's a very plausible excuse).
Anyway, good news that it's working - seem to be a lot of people with host problems lately, I was worried that maybe the PPQ thing wasn't working so well in other app's.
aliasant ·
trogluddite wrote: He he, happens to us all - I've lost count of the days I've wasted over the years looking for bugs that were never there to start with - usually leaving a wake of new bugs behind me as I tear the schematic to shreds - all because the headphone amp is unplugged coz I got desperate for power sockets to charge some batteries, and anyway it's late, I should have gone to bed hours ago, but there's just this one thing I must fix RIGHT NOW......etc......etc......
......Next morning, when my colleagues at work ask why I seem so dog-eared, I just tell them that I got very drunk the night before - seems to be more socially acceptable than describing the joyful experience I had with my dodgy schematic (which never got fixed anyway)! (and sometimes I do get very drunk the night before, so it's a very plausible excuse).
Anyway, good news that it's working - seem to be a lot of people with host problems lately, I was worried that maybe the PPQ thing wasn't working so well in other app's.
LOL
Spot on!
Mo ·
trogluddite wrote: Nearest thing is the Precise Counter from inside the wave player module - that uses double precision maths (64bit) to make the ramp more accurate.. Should be possible to reset poly ramps using the MIDI to Poly trigger output to reset the count - or to read an offset for the PPQ pos. I've already done a similar thing in mono before, I'll see if it will work the same in Poly.
I'm trying to make a poly PPQ ramp. So far i have a precise ramp from the VST PPQ, but to make it poly i have subtracted the ramp again to reset it to 0 as starting point. I guess i need a kind of poly sample & hold for the subtraction value to hold the offset and start the ramp counting or do you have another way to do it?
trogluddite ·
Mo wrote: another way to do it?
Yes, that can be done quite easily (as long as you are using code), by using stages. The trick is to read the subtraction value during stage(0). A stage(0) section of code only runs once, whenever a new note is initialised - though it does behave strangely sometimes with stolen notes, so make sure you have enough voices to avoid stealing. If you don't specify stages in the code, then it will automatically default to stage(1), which always processes every single sample. You can put as much or as little code as you like inside the curly brackets - but you always need the brackets for the syntax to be correct.
Something like this...
streamin PPQin; streamout PPQout;
float SubValue;
stage(0) //Initialise Values { SubValue=PPQin; }
stage(1) //Every Sample { PPQout=PPQin-SubValue; }
Mo ·
Thanks trog,
Anyway i realized using VST PPQ of course only works when host is running. What i want is a poly sync sequence when i press a note, also when host is stopped. That makes me left with a counting/reset method. Good is it seems to work fine so far and is precise (is following VST PPQ 100% in host!), i only need to fix that tempo shift won't make it go out of sync again and triole resetting. This would work as precise ramp for standalone timing too. -Cheers!
trogluddite ·
Hmm, that's given me an idea - PPQ only being active on playback annoys me too, but my project is a little different because I do want sync to always be on note transitions. Using the VST 'Is Playing' primitive, it will be easy to switch between the PPQ and built in timer on the fly - with the free run counter automatically taking over from PPQ when the host is stopped, you'd get the best of both kinds of behaviour. When playback starts again, you could lock the timer duration to PPQ again, and carry on without a glitch - which should solve any problems with tempo changes. I'll have a little experiment tomorrow - I'm having a little break from synths/sequencers tonight, off to watch some French guys (Ed Wood Jr)thrash their guitars.
Mo ·
Ok, i have now fixed the timing and it's works for perfect sync when host not running, but using it when host is running is still not great when changing tempo or skipping in the song. Therefore using the PPQ on the fly is a good idea, but with your code i getting nothing in stage0 in poly. Is stage0 right? I tested with a readout of the subValue and it stays at 0 in host.
trogluddite ·
Sussed it- something I should have remembered, oops. 😊 The PPQ module runs in stage(1), so it doesn't return a value if it's read during stage(0). The easiest way around this is to use the Trigger output from the MIDI to Poly to sample the PPQ value - it sends a boolean 'True' on the first sample of a voice.
streamin PPQin; streamboolin Trig; //trigger from M2P streamout PPQout;
float SubValue;
//Just using stage 1 SubValue=SubValue+(PPQin-SubValue)&Trig; //Sample and Hold PPQout=PPQin-SubValue;
Tested this on an export and it works much better!
Mo ·
This seems really to work very well! I use the TriggerToGate module as in example synth to trigger or can i just use the gate output from V to P module? Need to do some optimization and i can finally finish my SM timing project here. Thanks again trog!
trogluddite ·
You'll need to use the Trigger to Gate one (confusing name, surely should be 'Counter to Trigger' !) - that one always gives a pulse that is only one sample. The VtoP gate output stays on for the whole of the note, so the SubValue would keep getting updated contantly using that. Looking forward to seeing the finished article...
loopeytunes ·
It's been along time since i saw this project and was wondering if there is anyone willing to try and take down the cpu on this and reposting the osm? I do have a gift in return????
Loopey
Mo ·
Hi Loopey,
Here it is. Everything optimized: Sequencer, graphics, redraws, redraw area, controllers and mixer. Mixer in ASM. Fixed a bug with the sliders was jumping back to the previous value after changing preset and they also had the same preset name and Ticker 100 on label redraw. Stereo input and de-zippers added. More than 75% faster.
Warmonger ·
Good stuff, I really like that feature in Nexus.
Devaux ·
loopeytunes wrote: here it is:
Loopey
Looks straight out of ReFx Nexus TG...lol Beautiful design if i do say so myself, though. Cheers for the upload! 😉
Wrote something here? To have a post removed or your name hidden, write to [email protected].