From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Acolmiztli ·
Ok. So I bought my license a while ago, but until today I've not used the program because of massive amounts of university work. So I've done all my work and now I'm delving in.
But this program is really baffling/annoying/angering me. I'm feeling very ... how shall we say.. regretful that I bought it at the moment. I can't get anything to work. I can't understand how to get a working ADSR, I can't understand how to get a working toggle button. I can't understand how to send bang messages to modules.
In short: All I can do is load up an osc, plug it in and press Q to get a C playing.
Everything I've learnt in Max/MSP just does not translate at all. What should I do? I'm at the end of my tether with it at the moment. Its making me angry that the simplest things do not work.
For example. In Max/MSP, if you want an ADSR, you can multiple two signals. But in SM this isn't working for me.
What should I do?
skOre ·
"In Max/MSP, if you want an ADSR, you can multiple two signals"
In Synthmaker you have the adsr giving out a value between 0 and 1 for each note. if you multiply any output with an adsr, it will be faded in and out according to it.... wheres the big problem?
[edit]Just remember to use poly multiply for it[/edit]
malc ·
Hi Acolmiztli,
I'm so sorry to hear you've been having problems. I'll do my very best to help you out. We certainly don't want SynthMaker making you miserable - that's definitely unacceptable.
So let's start with the ADSR then, I don't know Max/MSP but if you just multiply the ADSR signal by the signal you want to modify then it works the same way as SM. Have a look at this example:
[old link]
All the integer inputs to the ADSR are in samples. The sustain is a fraction of the signal amplitude in the range zero to one.
The ADSR is triggered on note on and the release is triggered on note off unless you have the hold input set to false (or disconnected) in which case the note ends on note off.
There is no gate sync at the moment but there will be a component with this in the near future.
The Switch component in the Control group of the toolbox will show you one way to make a toggle button. I don't know what bang messages are but if you let me know I'd be happy to explain how you would do them (if there is an equivalent in SM).
While we are trying to get more documentation up I can perfectly understand that getting into SynthMaker may be a struggle. There is help to be found on the forum so please post on anything you don't understand.
You don't have to suffer in silence. I'm here, as are others, and we're happy to help 🙂
jorge ·
Acolmiztli, if there is anything I can help with let me know and I'll try to create example schematics and I'll post screen captures related to it.
Acolmiztli ·
Thanks very much Malc.
Ok. In your example (on your machine) when you trigger two midi notes, do you get the most annoying scream from the synth or do you just hear the two notes? Playing two notes on my machine gives me a really annoying squeal - I can record this sound for you if you need me to. It also happens when I press another note before the other one is finished.
Is this how it is supposed to work I wonder - does it then take more work to get polyphonic playing working?
A bang message simply put is a one. This can be used to trigger things. It is much like a toggle button, but rather than saying in the "on" position when pressed, it goes back to the off position.
In Max/MSP you can send a bang message to tell something to do something, for example you can setup a float connected to the frequency input of a basic sine wave. When you bang this float the current frequency is changed to reflect the floats value.
I don't want to be a pain in the ass, because I figured I would be able to learn this stuff very quickly - it took me a week at most to be comfortable with Max/MSP. But thanks for the help.
jorge ·
Acolmiztli wrote: In your example (on your machine) when you trigger two midi notes, do you get the most annoying scream from the synth or do you just hear the two notes?
When you play two notes they get added before being converted to Mono.
Because each wave goes from -1 to 1, with two waves added you'd go above 1 which would cause distortion. SM's approach is to give the user as much freedom as possible so it's up to the user to make sure the sound doesnt distort.
To avoid having the sound distorting you should multiply the output of the oscillator as in the following example:
Now you can safely play 5 notes without distorting.
Acolmiztli ·
Oh right. Ok. In Max/MSP you can use a clip~ object. if you give it the arguments -0.99 0.99 it will clip anything above 0.99. Optionally you can also utilise a volume fader.
I think I'll be ok with Synth Maker. It just works differently that's all, and I was getting annoyed for a while there.
jorge ·
Now you might want to use an ADSR to control the envelope of your note, here is how the schematic would look with the ADSR:
and here's the schematic:
[old link]
Notice that if you just multiplied by the ADSR, you'd get distortion if you played more than one note, that's why you also have to multiply by gain. The output of the ADSR goes up to a maximum of 1.
Also notice the last input of the ADSR component that is used to make the sound hold even after NoteOff until the end of release time. If you set it to false the sound will stop at NoteOff causing a click.
Acolmiztli ·
Is there any advantage or disadvantage by putting the ADSR for the volume after the initial gain reduction instead of before like in your example?
jorge ·
Acolmiztli wrote: I think I'll be ok with Synth Maker. It just works differently that's all, and I was getting annoyed for a while there.
Ok, but I dont mind continuing to explain things if it's of any use, might be useful for other people too.
The idea of SM is that although you have access to low level components you dont have to work at that level, I think most users specially the ones more interested in music rather than programming will use high level modules. At the moment you dont have enough high-level modules in the toolbox but you can start to create your own collection from schematics posted in the forum and from the example schematic. For example, normally you'd use a high level VCA, you can get it from the example schematic:
You can create your own group in the toolbox and drag the VCA to it:
From then on when you create a schematic you can use that instead:
jorge ·
Acolmiztli wrote: Is there any advantage or disadvantage by putting the ADSR for the volume after the initial gain reduction instead of before like in your example?
No, both ways would be fine.
Acolmiztli ·
I'm sort of used to building everything myself, and because I'm a snob, I want to keep it that way as much as possible 😀
So... I have another question Jorge. In Max/MSP if I want to make a PWM wave, I use an object called the signal less-than operator
This object has two inputs. It outputs a 1 whenever the left input is less than the right input. If the left input is equal to or greater than the right input, it outputs a zero. The objects symbol is <~
Now what I want to know is if there anything in SM that does this, or if there is anyway to do this. Its a useful tool for generating pulse width modulation among other things.
jorge ·
Taking the same approach as before, you could drag a few other modules from the example schematic to your toolbox group:
Now you start to have a group of easy to use modules for creating your synths, the simple 1 sine synth could than easily evolve to the following:
and here is the schematic:
[old link]
jorge ·
Acolmiztli wrote: So... I have another question Jorge. In Max/MSP if I want to make a PWM wave, I use an object called the signal less-than operator
This object has two inputs. It outputs a 1 whenever the left input is less than the right input. If the left input is equal to or greater than the right input, it outputs a zero. The objects symbol is <~
Now what I want to know is if there anything in SM that does this, or if there is anyway to do this. Its a useful tool for generating pulse width modulation among other things.
This is how you can do that with SM:
and here is the schematic:
[old link]
If you dont understand any part of the schematic please dont hesitate to ask.
Shifrin ·
Acolmiztli wrote: Oh right. Ok. In Max/MSP you can use a clip~ object. if you give it the arguments -0.99 0.99 it will clip anything above 0.99.
You can do this in a few ways, with the 'code component' you'd write something as follows :-
polyin in;
polyout out;
out = min(in,0.99);
out = max(out,-0.99);
You can also do it with the poly-math primitives, give me a shout if you can't get it to work!
Shif.
jorge ·
As synthmaker at the moment doesnt have a LessThan poly component, you might want to create a module using the code component as in my last example, here is how it could look like:
and here is the schematic:
[old link]
The new LessThan module would probably be one that you'd want to drag to the toolbox.
Acolmiztli ·
Wow. You guys are very helpful. Thanks very much. After learning about the ADSR, I've got a small additive synth going with some sine waves just for practice.
Acolmiztli ·
jorge wrote: As synthmaker at the moment doesnt have a LessThan poly component, you might want to create a module using the code component as in my last example, here is how it could look like:
and here is the schematic:
[old link]
The new LessThan module would probably be one that you'd want to drag to the toolbox.
Jorge, I've created the code, now to save it as a module in my list, do I make a module and link up the inputs and outputs - is that it?
jorge ·
Acolmiztli wrote: Jorge, I've created the code, now to save it as a module in my list, do I make a module and link up the inputs and outputs - is that it?
If you want to create a module from a schematic, just select all the component you want inside the module and click the Make Module button:
You can then rename the module by clicking on the Set Name button:
After you have a module with a name you can drag it to the toolbox to keep for later use.
Acolmiztli ·
Great. Done that 🙂 Thanks.
Slightly confused as to why I can't hear the PWM waveform though. Any ideas?
jorge ·
Acolmiztli wrote: Slightly confused as to why I can't hear the PWM waveform though. Any ideas?
The example I posted doesnt connect the sound to the output, it just uses an analyser to display the waveform.
Here is another version that lets you listen and see the waveform at the same time:
and here is the schematic:
[old link]
db ·
jorge wrote: I'll try to create example schematics and I'll post screen captures related to it.
While your schematics that you are posting in this thread are
helpful, they won't run in 093 j . That is the latest version, isn't it?
Cheers
jorge ·
db wrote: While your schematics that you are posting in this thread are
helpful, they won't run in 093 j . That is the latest version, isn't it?
latest version is 0.9.3m:
[old link]
db ·
jorge wrote:
db wrote: While your schematics that you are posting in this thread are
helpful, they won't run in 093 j . That is the latest version, isn't it?
latest version is 0.9.3m:
[old link]
Man, that's what I get for blinking ! <lol!>
Thanks for that, and while we are here, where is the best place to check for new releases? The link on the home page isn't always up to date.
Thanks Jorge, off to load 'm' right now.
jorge ·
db wrote: Thanks for that, and while we are here, where is the best place to check for new releases? The link on the home page isn't always up to date.
Yeah, the incremental releases are sometimes too frequent for updating docs, website etc. Whenever you try a schematic that doesnt open and shows the message that you need a more recent version you can assume there is a more recent version, you can always look for it by replacing the last letter of the version with the next in the alphabet.
There's a sticky for announcing releases and you can set it up to send you an email whenever it changes, it just didnt get updated yet but it will soon.
db ·
jorge wrote: you can always look for it by replacing the last letter of the version with the next in the alphabet.
Perfect idea, thanks.
There's a sticky for announcing releases and you can set it up to send you an email whenever it changes, it just didnt get updated yet but it will soon.
Right, I remember that sticky now that you mention it. Too much info on the internet sometimes, what can I say! 🙂
Cheers
Acolmiztli ·
Thanks for the help Jorge. I feel a lot more comfortable with the program now after your advice.
Rellik ·
Lots of helpful info in this thread - made me think of a question though.
Why are MIDI inputs necessary to make sure the signal is on? How would you just make a signal that's on all the time, with the oscillators? If I were trying to, say, make a simple oscillator that's on all the time so I could constantly retrigger a graph - I wouldn't want to have it triggered by MIDI, but it seems it's necessary.
jorge ·
Rellik wrote: Lots of helpful info in this thread - made me think of a question though.
Why are MIDI inputs necessary to make sure the signal is on? How would you just make a signal that's on all the time, with the oscillators? If I were trying to, say, make a simple oscillator that's on all the time so I could constantly retrigger a graph - I wouldn't want to have it triggered by MIDI, but it seems it's necessary.
What you're describing should be no problem:
Acolmiztli ·
In Max/MSP all MSP objects start running immediately when they're put into the patch - perhaps this could be a similar option for Synth Maker???
skOre ·
But what jorge has posted is running as soon as it is put into the patch, is there a difference if you need one or two steps when the end result is the same?
I always thought that maxmsp had a low level approach just as SM, but it now seems like SE to me 😉
Acolmiztli ·
skOre wrote: But what jorge has posted is running as soon as it is put into the patch, is there a difference if you need one or two steps when the end result is the same?
I always thought that maxmsp had a low level approach just as SM, but it now seems like SE to me 😉
Max/MSP is lower level than SM.
Nu Audio Science ·
How can you get lower level than the code component ?
Oh yeah you can actually the ASm component 🙂
Shifrin ·
Maybe Max/MSP has a machine code component?! Or even, nah it couldn't, I mean, a binary component!? Just kidding 😉
Shif.
jorge ·
Hi Acolmiztli
Acolmiztli wrote: Max/MSP is lower level than SM.
I never used Max/MSP. From reading posts and comments about it I have the impression that SM can be at least as low level but probably even lower. If you want I'll be happy to try to show you how.
You probably spent a lot more time using and learning Max/MSP than you have SM so it's only natural that you feel more confortable with Max/MSP at the moment. I hope you'll give us a chance to help you learn SM. Just keep posting your questions and we'll do our best to answer them. If there is something you can do easily with Max/MSP but not with SM please let us know.
Acolmiztli ·
jorge wrote: Hi Acolmiztli
Acolmiztli wrote: Max/MSP is lower level than SM.
I never used Max/MSP. From reading posts and comments about it I have the impression that SM can be at least as low level but probably even lower. If you want I'll be happy to try to show you how.
You probably spent a lot more time using and learning Max/MSP than you have SM so it's only natural that you feel more confortable with Max/MSP at the moment. I hope you'll give us a chance to help you learn SM. Just keep posting your questions and we'll do our best to answer them. If there is something you can do easily with Max/MSP but not with SM please let us know.
Oh I'm not by any way saying that Synth Maker is shit. Its certainly not, and yes I'm still learning it, so of course I feel more comfortable using Max.
They're very similar though. You can code objects for Max/MSP. You can use patchers (SM's modules) and do all the math and stuff. They're remarkably similar in fact, I don't really know why I said Max/MSP was lower level, they're actually on par with each other.
Rellik ·
From what I can tell, Max/MSP is like SynthMaker but has been around longer and has more "modules" (I think it has stuff that can work with audio samples from disk and different kinds of SysEx or whatever).
Overall, I would choose SynthMaker over Max/MSP any day. I've seen Max/MSP used a lot of times, and it seems much more complicated for the same functionality - even if they're both on the lowest level. You can use either one, but I think the graphical part of SynthMaker and its interface are far superior, as well as the fact that both SynthMaker and Max/MSP (I assume?) have the ability to function on the lowest level.
SynthMaker desperately needs a name change, though. Seriously. ImpulseWave Studio!!!! 😉
I'll try that schematic, by the way - thanks!
Acolmiztli ·
Rellik wrote: it seems much more complicated for the same functionality
Hehe. See, I think its the other way around, Synth Maker seems much more complicated for the same functionality to me. Take my latest question for example, I wanted to make a very basic sequencer in Synth Maker using the same style as I would in Max/MSP.
In Max it takes at most five objects to get this to work. In Synth Maker (In Jorge's example anyway) it takes a lot more.
[old link]
I mean, it could just be that I'm not used to it. But so far the SM learning curve has been a lot steeper than the Max/MSP one, and I find the look of the program to be hindering my work - everything is too big.
lalo ·
Hi!
max.msp has a serious limitation compared to SM..
if you want to do 1 sample at a time processes you can do it..but at a very high CPU cost...
SM do it at a very low CPU cost..so you don't need to code your stuff in C++ to do custom modules that works internally at 1 sample at a time...
(an example can be the Percolate object pack for max.msp and pd..they do physical modelling INSIDE the module, when SM will have more modules you'll can do this in your schematic)
SM seems a little more complex cause it goes very lower-level than max.msp..
The max.msp (beautiful app tho) advantage is to have a shitload of objects for everything from midi-sequencing to sample handling to ftt to video with jitter etc. etc. etc..
it will take months/years until SM will get there....but i'm sure will do.
Another limitation i found in max.msp when i did the beta-test for pluggo was its incomplete implementation of vst protocol for exported plugins..
i sincerely hope the SM will cover the whole VST standard for exported VST (for example to be able to export vst that are providing tempo information to the host..max.msp pluggos can't do it at the moment) ..
you can say 'why on earth you need tempo providing plugins? '
i say : i use plogue bidule for my improvised live sets and often i go throu this scenario...
i record some live audio input or some live midi-playing and i loop it...then from the lenght of a loop i have to extract tempo information for other plugs...
so my sampling/recording plugs must provide the tempo info...(in bidule is possible 🙂 )
sorry for the lenght 🙂
lalo
jorge ·
Acolmiztli wrote: In Max it takes at most five objects to get this to work. In Synth Maker (In Jorge's example anyway) it takes a lot more.
That would indicate to me that SM is much lower level than Max/MSP. We could really quickly implement a new hard-coded component that works as the whole sequencer, then you'd only need 1 object, but you can do that as a module already and drag it to the toolbox and never worry about how it works inside until you need to change the functionality slightly. That's exactly what you have to gain from the low-level, the fact that you can go inside a module and change it. I bet you cant go inside the Max/MSP counter object and make it count in a completely different way, like jump to 20 when it gets to 10 etc. But the lower-level you go the more work and learning it takes.
I think you're trying to use SM at low-level when you really dont have to. You can just use prepared modules and if you find one missing, you can always ask here in the forum, you'll probably have it available in a matter of hours although I think you'll probably prefer to learn the low-level stuff and I'll be happy to help.
Acolmiztli wrote: I find the look of the program to be hindering my work - everything is too big.
I'm not sure what you mean. You mean in SM everything is too big? Did you realise that you can zoom in and out? You can also resize the navigation panel to make it as tiny as you want. Your comments on this ( and anything else ) are very welcome, if there are ways in which we can improve SM we'd like to know.
skOre ·
Acolmiztli wrote:
Rellik wrote: and I find the look of the program to be hindering my work - everything is too big.
O_o *shaking his head*
Acolmiztli ·
jorge wrote: I bet you cant go inside the Max/MSP counter object and make it count in a completely different way, like jump to 20 when it gets to 10 etc. But the lower-level you go the more work and learning it takes.
Well no, you can't edit the counter object itself. But you can do stuff like that with a bit of creative expression objects.
I think you're trying to use SM at low-level when you really dont have to. You can just use prepared modules and if you find one missing, you can always ask here in the forum, you'll probably have it available in a matter of hours although I think you'll probably prefer to learn the low-level stuff and I'll be happy to help.
I think its a case of trying to use SM in the way that I use Max, and the two don't really merge together 100%. That's where I'm falling down I think.
I'm not sure what you mean. You mean in SM everything is too big? Did you realise that you can zoom in and out? You can also resize the navigation panel to make it as tiny as you want. Your comments on this ( and anything else ) are very welcome, if there are ways in which we can improve SM we'd like to know.
Oh yes, aesthetics. Well let me put it this way, if there were an option to turn off the transparency, to turn off the green boxes around int/float/string objects, and if I could turn of all the visual beauties, I would use it. 😉
Zooming out makes things a bit hard to read. I'd like to be able to change the font size for objects, and maybe to turn off their colours - Would this be possible?
Tom7777 ·
I think its a case of trying to use SM in the way that I use Max, and the two don't really merge together 100%. That's where I'm falling down I think.
Thats because there different programs, SM is much better though and has a great community i think. On some forums you might have got 1 reply in a week where as here you usually get a reply on the same day. 🙂 Also Jorge and Malc will fix bugs and make modules requested ect.
unkargherth ·
Acolmiztli wrote: So... I have another question Jorge. In Max/MSP if I want to make a PWM wave, I use an object called the signal less-than operator
Well, it can be done, but it isn't the recomended way to obtain pulse modulation
The better way i've found until now is to add a sawtoth to a second dephased inverted sawtooth.This gives you a fairly good approximation to the "analog-like" Pulse PWM wave
For an example of this, dig in the example osm lloking for the aquare oscilator. it's made this way
db ·
jorge wrote:
Acolmiztli wrote: I find the look of the program to be hindering my work - everything is too big.
I'm not sure what you mean. You mean in SM everything is too big? Did you realise that you can zoom in and out? You can also resize the navigation panel to make it as tiny as you want. Your comments on this ( and anything else ) are very welcome, if there are ways in which we can improve SM we'd like to know.
If I might add to your post, Jorge, a default zoom can also be set
in Options\Scematic\Zoom Level\default zoom level. This can vary of course depending on your eyesight, size and resolution of monitor, etc.
Hope that helps! 🙂
jorge ·
Rellik wrote: SynthMaker desperately needs a name change, though. Seriously. ImpulseWave Studio!!!! 😉
🙂 Thanks for your suggestion. ImpulseWave Studio is probably the best suggestion I've heard so far if it's not being used already.
SynthMaker is short for Synthesis Maker.
The Concise Oxford Dictionary definition of 'synthesis' is:
the process or result of building up separate elements, especially ideas, into a connected whole
Even as a general programming environment SynthMaker seems quite an appropriate name to me.
Tom7777 ·
Leave it as SynthMaker 🙂 whats with the name change talk...
Shifrin ·
Haha, yeah I like SM! Ummmm, I mean SynthMaker obviously 😉
Good descriptive name!
Shif.
db ·
Tom7777 wrote: Leave it as SynthMaker 🙂 whats with the name change talk...
What he said! 🙂
Synthmaker is straight forward and to the point. The name tells you what it is and what it does.
'Impulsewave' sounds like a new starwars weapon from the Pentagon.
stefan ·
db wrote:
Tom7777 wrote: Leave it as SynthMaker 🙂 whats with the name change talk...
What he said! 🙂
Synthmaker is straight forward and to the point. The name tells you what it is and what it does.
'Impulsewave' sounds like a new starwars weapon from the Pentagon.
Yeah, except that you can just as well make an calculator application with it... 🙂 Drawing graphs and shit 🙂
malc ·
I think the name change issue is very interesting. We had a debate about this last October:
Name suggestions
As you'll see from this one of my concerns about a name is that it's very difficult to find one that tells you what an application does. SynthMaker does suggest that it's for making synths but of course that's not all that the software can do.
I liked some of bManic's suggestions, in particular Blueprint. In the end we decided to stick with SynthMaker because it was reasonably well recognised and at least suggested to some extent what the software was about. We may be wrong but I think it's very difficult to know.
Thanks for the suggestion Rellik
skOre ·
Yeah, lets go the NI way and call the prog Synthmaker and the "engine" "blueprint" 😉
Nu Audio Science ·
Nutcase ++
🙂
db ·
malc wrote: I think the name change issue is very interesting. We had a debate about this last October:
Name suggestions
As you'll see from this one of my concerns about a name is that it's very difficult to find one that tells you what an application does. SynthMaker does suggest that it's for making synths but of course that's not all that the software can do.
I liked some of bManic's suggestions, in particular Blueprint. In the end we decided to stick with SynthMaker because it was reasonably well recognised and at least suggested to some extent what the software was about. We may be wrong but I think it's very difficult to know.
Thanks for the suggestion Rellik
I say we call it BOB and be done with it! BOB sounds bland, faceless and totally lacking in social graces. My accountant's name is Bob btw! 🙂
Rellik ·
jorge wrote:
Rellik wrote: Lots of helpful info in this thread - made me think of a question though.
Why are MIDI inputs necessary to make sure the signal is on? How would you just make a signal that's on all the time, with the oscillators? If I were trying to, say, make a simple oscillator that's on all the time so I could constantly retrigger a graph - I wouldn't want to have it triggered by MIDI, but it seems it's necessary.
What you're describing should be no problem:
Hmmm - yes, it does work! Except that I can't find the WTimer and MonoTo components - using version n, if that's necessary info.
Also, I don't get how you can have the Poly output of the sine osc going into the Mono input of the ASIO output and the Mono input of the MonoTo. Big gap in my understanding there - before, I tried to link Poly to Mono and got strange signals. hmm
Rellik ·
Ok, definitely REALLY confused...
When I just attach a frequency to a sine wave and then attach the sine wave to the DirectSound/ASIO output, it works. But if I attach the sine wave to a code component, the sound stops... ?! The sine is still attached directly to the DS out - the code component's output is not connected to anything... hm
jorge ·
Rellik wrote: Hmmm - yes, it does work! Except that I can't find the WTimer and MonoTo components - using version n, if that's necessary info.
Do you have the R&D components enabled in the settings?
Rellik wrote: Also, I don't get how you can have the Poly output of the sine osc going into the Mono input of the ASIO output and the Mono input of the MonoTo. Big gap in my understanding there - before, I tried to link Poly to Mono and got strange signals. hmm
I used the Poly Sine because we dont yet have a Mono Sine, it's a hack. Just try to picture it as having mono connectors for now.
Rellik ·
Ah - got R&D enabled now, thanks 🙂
I still don't understand about how Sine can be used as mono, though. When I plug it up so that I can play it with MIDI, I have to convert Poly->Mono to be able to hear it. But when it's wired up with a fixed frequency, I can't hear it if I convert it, and I can only hear it if I pretend it's Mono. Is there some internal states that's triggered with the MIDI In component or something?
unkargherth ·
Rellik wrote: Ah - got R&D enabled now, thanks 🙂
I still don't understand about how Sine can be used as mono, though. When I plug it up so that I can play it with MIDI, I have to convert Poly->Mono to be able to hear it. But when it's wired up with a fixed frequency, I can't hear it if I convert it, and I can only hear it if I pretend it's Mono. Is there some internal states that's triggered with the MIDI In component or something?
Well, only guessing here, But yes. AFAIK Midi2poly is doing voice management too.
Anyway, if you need a mono Sine Osc look here. It's a little code snipet for makeing a sine osc from scratch, you only need to change those Polyin's and polyout's to monoin and monout to get a real mono oscilator
jorge ·
Rellik wrote: Ah - got R&D enabled now, thanks 🙂
I still don't understand about how Sine can be used as mono, though. When I plug it up so that I can play it with MIDI, I have to convert Poly->Mono to be able to hear it. But when it's wired up with a fixed frequency, I can't hear it if I convert it, and I can only hear it if I pretend it's Mono. Is there some internal states that's triggered with the MIDI In component or something?
Ok, I'll try to explain:
Poly components process 4 channels simultaneously, when they're used in a poly section of the schematic they can have many processes, one process for each 4 notes playing. The MidiToPoly together with any PolyToMono in its path take care of creating new processes when needed, that's why you can have more than 4 notes.
A Mono section of the schematic is directly connected to the DirectSoundOut, ASIOOut, MonoToFloat or MonoToGraph. The mono section is constantly running, it's as if you have a note playing starting at the moment you change the schematic.
In terms of code, a Poly component is very nearly the same as a Mono component, most of the times they're actually the exact same code. When there is a different is to save CPU. For example, there is no way with SSE instructions to do a table look-up on the four channels simultaneously, so in that case the Poly component has to repeat the table look-up code four times, one per channel. The Mono version of the same component only has to process the first channel so it can simply ignore the other 3.
An example of a component that would be different in the Poly and Mono versions is the Sine Osc as it uses a table lookup. The Poly Sine is processing the 4 channels which means a waste of processing for the 3 channels that are not used, but it works as Mono, as the first channel is also processed. Ideally we'd have a Mono version of the Sine Osc but it should always work to use a Poly component as if it was Mono.
There's also a Mono4 connector which is exactly the same as Poly. The reason we have all these different types is to make the schematic clearer so you know exactly which is the poly section and which is the Mono section, I think it would get confusing otherwise. Eventually, when we have all the components done, you will never have to connect from a Poly connector to a Mono connector or Mono4 connector. For now, as a hack, whenever you dont have the Mono version of a component use the Poly and just imagine the connectors are Mono.
I think this is an important subject as it can be quite confusing so your opinion is very welcome. If there's something you still dont understand please let me know.
skOre ·
db wrote: I say we call it BOB and be done with it! BOB sounds bland, faceless and totally lacking in social graces. My accountant's name is Bob btw! 🙂
Yeah! B.O.B.!
Bible music. Electric revival
Bible music. Electric revival
Bible music. Electric revival
Bible music. Electric revival !!!
jorge ·
unkargherth wrote: Anyway, if you need a mono Sine Osc look here. It's a little code snipet for makeing a sine osc from scratch, you only need to change those Polyin's and polyout's to monoin and monout to get a real mono oscilator
The code component always works on 4 channels simultaneously. You can most often use the 4 channels even in a mono section of a schematic by using the Pack and Unpack components.
In the schematic above you get 4 sine waves for the price of one.
The same could be done if you were using a code component. In the schematic above assume the Sine and the Mult component have Mono4 connectors, eventually we'll have Mono4 Sine and Mult components but they're exactly the same as the Poly versions, just the symbols are different.
skOre ·
O_O never thought of that! great !
skOre ·
So how would that work on stacking superwaves ???
I actually mean, what happens if you put more then one of the (4) connectors into a poly in?
jorge ·
skOre wrote: So how would that work on stacking superwaves ???
I actually mean, what happens if you put more then one of the (4) connectors into a poly in?
The mono4 connectors are exactly the same as poly, they have a different symbol just to indicate that you're in a mono section of your schematic. Both mono4 and poly process 4 SSE channels in one go.
As it happens with poly data, two mono4 links connected to the same input get added together so that if you have mono4=0.1,0.2,0.3,0.4 and mono4=0.1,0.1,0.1,0.1 they get added to 0.2,0.3,0.4,0.5 at the input connector.
unkargherth ·
jorge wrote: that's why you can have more than 4 notes.
Will this mean that we never get more that 4 notes poliphony???????
jorge ·
unkargherth wrote:
jorge wrote: that's why you can have more than 4 notes.
Will this mean that we never get more that 4 notes poliphony???????
No, just that each four notes are processed simultaneously. The 5th, 9th, 13th etc notes start a new process.
If you play 1 note the CPU useage should be similar to when you play 4 notes. When you play the 5th note it will probably nearly double.
Nu Audio Science ·
But in the same sense 5 notes is the same as 8
Anyone here with a Wusik Engine product will know this
Go download the demo for a classic example of SSE style polyphony 🙂
unkargherth ·
Never used Wusik, so i prefer your own opinion NAS
How it compares to non-sse optimized similar products ( stabdrd C++ vst's and so on)?
Nu Audio Science ·
Well at first go it sort of surprises you that the CPU is a little heavyier than most plugs.
Then when you actually press 4 notes on Wusik compared to all other synths (Test have been done) in its feature range it is unbelievable, Wusik never moves but the others really do hit the CPU, Jorge will correct me here if i'm wrong but it also SEEMS that tiny bits of the synthesis process are actually achieved with the less CPU aswell, For instance i have a 1.5ghz centrino with 512 meg, I often run three to four wusiks with extra drum machines and effects, Now take into account that the presets i build on Wusik tend to be made up of 4-6 layers two of which are actually wavsequencers each layer having 4 filters plus 4 main stereo filters on the out plus eqs plus FX, Now if i try to run say 3-4 of the others (I don't want to mention names here because it can turn into flame war 2005) It becomes death of the Centrino, Now some people might say i'm biased because i have Wusik engine products coming out myself, It isn't actually that though because the reason i got involved with Wusik was because it allows so much with modern hardware.
Still i must say that on tests we have done so far it seems that SSE stuff is much better on AMDs than Intels but actually shows better on Centrino to P4, The testing in these particular cases though could be seen as not valid because of the variance in systems and people using those systems.
At the end of the day you actually get a small feeling of safety with SSE synths, Because you can create a patch within your CPUs capability doesn't actually mean you could play a chord or melody with it, SSE tends to give you that edge.
Will K would answer any questions you have about SSE stuff as long as he isn't too busy with Wusik Mod 🙂
Rellik ·
That was some great info! 😀 Thanks!
I understand now.
So the reason I could use the sine OSC direct to Out but not through Poly to Mono is because: Poly To Mono's functionality is linked to the MIDI to Poly, invisibly. In actual practice, all Poly can be used as Mono, and vice versa, except that Poly->Poly connections can accomodate more data.
skOre ·
I don't completely get it yet, I got it to a level where I could play on the keyboard, and it would turn out notes, but only after each 4th note I could go on to the next tone. So say I started of with a c, regardless what I pressed next, the next 3 notes would just be an alteration to the first c's gain...
I have the feeling that this is the way it should be, but how do we get a playable polyphony out of this?
Wrote something here? To have a post removed or your name hidden, write to [email protected].