From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Dias.Francisco ·
Is it possible in SynthMaker to create a MIDI FX like arpeggiator... let's say I don't want sound to come out of the VST, I just want the IN-NOTE to be processed and generate MIDI signals (arpeggios) that are sent out to another VSTi... is it possible? Thank you in advance! 🙂
MichaelBenjamin ·
its possible, but not usable, due to timing issues with the event system. you would get midi data out, but it is all very unreliable. if you want to process midi data with any kind of timing involved, check out synthedit.
Sasu Honka ·
You must have audio outs in your MIDI-FX VST even if you have no audio processing. Some hosts will not recognize MIDI-FX if there are no audio outs.
+ what Michael said. MIDI is handled in GREEN which is not sample accurate in SM.
HalfLife ·
MichaelBenjamin wrote: its possible, but not usable, due to timing issues with the event system. you would get midi data out, but it is all very unreliable. if you want to process midi data with any kind of timing involved, check out synthedit.
Michael,
Does this apply to simply sending MIDI as well? (As opposed to processing MIDI.) I've been working for several months now on a monome controlled MIDI sequencer in SM. Quite similar to Tenoi-on, my application send a series of notes as the seq runs through 16 steps. Pressing various buttons on the monome causes the seq to restart, transpose, arp etc - all in real time.
I've got a rough draft of the UI and I'm getting to the MIDI part now. Should I look for another tool?
Regards,
Scott
MichaelBenjamin ·
i dont know, if you need to specify time, and you do it in green, it wont be sample accurate, and also depending on cpu load way off under some circumstances.
the best thing i can imagine would be a code block which sets the timing and then a mono2float with 100tick to the note event, and nothing else in green but even then the tick will vary in time.
HalfLife ·
Thanks Michael (even if it's bad news). Guess it's back to the drawing board. Perhaps I'll take the plunge into Max
Regards,
Scott
oddson ·
Hey Scott...
Above you used the term 'real time' MIDI. But you also talk about sequences -- which are decidedly not real time.
SynthMaker can present MIDI events to it's host as real time (well not exactly but no program actually works in instantaneous 'real time').
The problem is when delaying events -- where SM (currently) relies on Windows timers which are not reliable for precise timing of musical events.
If you want to trigger a host to play and control the sequences that's easily done -- assuming the host let's you define an event that it can recieive as MIDI that it interprets as 'play this sequence RIGHT NOW'. (Something like this is easily done in a program like eXT.)
But if you want to tell the host:
D1 in for 1 second 25 frames
F1 in 2 seconds 10 frames for 1 second 25 frames
A1 in 4 seconds 5 frames for 1 second 25 frames
... then you're shit-outta-luck because there's no accurate way to initiate the delay for the latter two notes.
OutSim demo'd SynthMakerX (for experimental) back in Spring 2006 and it did have sample precise event timing but since then no one here has heard anything about if and when the complete overall of the events system will be achieved in the full program.
So... you can wait with the rest of us or move on to another program if sequencing is a deal breaker for your project.
(P.S. - did you know that Max is no longer supporting Plugo? Perhaps it's not where you want to go either.)
Jay ·
Hi
I havn`t been around much lately as i'm busy learning all things visual studio atm! also the programmers at work
are trying to teach me a bit of Delphi 😕
I have a question or two. Why is Synthmaker still relying on Windows Multimedia timer services when there are so many addon replacement Timers and Libraries for every single Dev Package out there!
Most of these address the problems of accuracy and resolution found in the Microsoft ones so whats the problem?
Is there some reason that these cant be used? Maybe some uniqueness in Synthmakers coding?
is it a case of having to change so much of Synthmaker code? If so then Outsim need some extra staff 😉
Anyway i was just wondering since i now know some of the possibilites out there!
Best regards
Nu Audio Science ·
I think it's more of a case of Malc needs to make money to live 😉
He will get to updates like these when he gets time
Updating an app like SM on your own can't be an easy task
NAS
Jay ·
wow just malc doing the coding! i thought it was maybe workload related but certainly never thought that there was only one coder at Outsim! that's really a feat indeed!
but then surly if this was fixed as more of a priority then a lot more ppl would adopt Synthmaker and therefore would be more money going into Outsim!
alas i know an awful lot of ppl that steer clear of Synthmaker for development purely because of timing issues!
ive tried synthedit and fair enough it has a lot more features and better timing and midi but it is stinking ugly and hard to make nice gui elements! imho horrible to use after using synthmaker
Synthmaker FTW and i hope malc gets the help he needs soon!
regards
Nu Audio Science ·
Most people stay away from SM for developing for other issues than the timing 😉
Same goes for SE
Neither of these will ever be useable for fulltime development unless they put out source code which you could tweak and compile yourself
I doubt that is ever going to happen so take your pick
If your serious about developing then native code is the way to go
NAS
overhishead ·
this looks like it was made in SynthMaker, and it is a midi effect as described by o.p.
i thought so too but, Leslie Sanford stuff is usually written in c# He/She has a fair few articles and code snippets on the codeproject.com web site
Incidentally, Leslie has an artile that describes the win32 multimedia timer as being pretty great 🙂
and i quote "The Win32 multimedia timer services provide the greatest degree of timing accuracy. They allow you to schedule timing events at a higher resolution than other timer services. This can be useful in a multimedia application where timing accuracy is of utmost importance. For example, a MIDI application needs timing events that are as finely grained as possible."
i take it synthmaker uses another windows timer 😉
Best Regards
overhishead ·
well, Leslie seems to have modelled a SM gui very accurately, unless SM uses graphics from some other common source.
mwvdlee ·
Isn't the Timer module ([old link]) based on the multimedia timer?
I understand that at the very least it's accurate with a resolution of about 16ms which may be sufficient depending on the intended purpose.
I can drum slightly above 10 beats per second, the fastest drummers in the world can hit about 20 beats per second (hey, I've only been practicing for half a year now :P). Both would be well within the limits of the Timer module. I'm sure there are reasons to go faster, but for many purposes 16ms resolution may be sufficient.
What other timing mechanisms are available in Windows?
MichaelBenjamin ·
i think the timer is so unusable because of its random instability, a human does not got this random instability, more of a constant error drift with magical readjustments. if you put a quantized midifile trough eg tobybears humanizer and adjust the random timing, it starts to sound not pretty very soon, ~over 5 ms.
but its interesting that your source mentions that timer to be excellent. i have no idea why its not that excellent in sm.
mwvdlee ·
MichaelBenjamin wrote: i think the timer is so unusable because of its random instability, a human does not got this random instability, more of a constant error drift with magical readjustments. if you put a quantized midifile trough eg tobybears humanizer and adjust the random timing, it starts to sound not pretty very soon, ~over 5 ms.
but its interesting that your source mentions that timer to be excellent. i have no idea why its not that excellent in sm.
Has anybody ever tried using it without a big, fat, resource-hog of a GUI?
As I understand it, S|M does all it's green stuff (including the Timer) in a GUI thread. It may be the timing inconsistencies stem from this reason and would be very hard to fix without introducing a new, high-priority thread and all the plumbing that goes with it. Then again, if the Trigger Thread module can trigger normal threads, it could also trigger high-priority threads. I understand the Threads module is quite unstable at the moment though.
Perhaps what could fix this would be to have a poly-to-MIDI module? Then again, if poly is handled in batches depending, it's timing might be even worse. Lord knows we could use better MIDI-Poly interaction.
p.s. It wasn't my source, somebody else posted that 🙂
Wrote something here? To have a post removed or your name hidden, write to [email protected].