SynthMaker

Adding note ons and removing note offs from list?

Archive · 2008 16 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

exonerate ·

Ok I've broke my head on this, what I need to do is to put note on pitch values on to a list, and when the corresponding note off is sent remove it.

I've made something like this before but it was very inflexible.(you run out of polyphony and couldn't get voices back on note off)

Basically for the synth I'm working on I'm adding arpeggiator capabilities to the multi env, so for each point of the env you can set same,next,last, none, so you can create simple arp patterns and the shape of the env controls the amplitude, anyone familiar with sytrus envelopes will know what I mean.

Now the only thing in my way is this notes list, has anyone done this already? or does anyone have a good idea of how to do it?

In short I need an array that contains the pitch values for the currently held notes only.

Cheers 😉

Exo

oddson ·

Array of Playing Notes

Which contains two solutions from me, one old and a better one using my newly acquired parser skills.

exonerate ·

oddson wrote: Array of Playing Notes

Which contains two solutions from me, one old and a better one using my newly acquired parser skills.

Thanks a lot oddson 😀

Thats a very simple and eloquent solution.

Cheers 😉

Exo

tektoog ·

And how should i do to keep the note hold until another note on is sent ? note on ----> play note note off ---> keep playing note on ----> stop playing

Thx

oddson ·

From an even older thread

How to transform a Note message to a 'toggle'

tektoog ·

Thx very much Oddson, exactly what I was trying to do. Only the fact that I realized it's not working with my old oxygen midi keyboard... It works fine with the pc keyboard though... I will have to check this with another midi controller...

aliasant ·

I was thinking about building a synth with maybe 8 mono oscillators.

They would have to be controlled by something similar to this.

Is there a simple solution for a synth like this or is it something that needs to be written from scratch?

I would have to work much like the old analogue synths. I I play a C4 (60) it should only use the first oscillator. If I then add D4 it has to use the second osc for that one.... then lets say I add a G4 to taht... It has to use the third...and... if I know release the D4 it has to know to release the second oscillator..... This is to hard for me to figure out from scratch.

Has anyone any experience in building something like this?

Acrobat ·

aliasant wrote: I was thinking about building a synth with maybe 8 mono oscillators.

They would have to be controlled by something similar to this.

Is there a simple solution for a synth like this or is it something that needs to be written from scratch?

I would have to work much like the old analogue synths. I I play a C4 (60) it should only use the first oscillator. If I then add D4 it has to use the second osc for that one.... then lets say I add a G4 to taht... It has to use the third...and... if I know release the D4 it has to know to release the second oscillator..... This is to hard for me to figure out from scratch.

Has anyone any experience in building something like this?

...that is known as "dynamic allocation of voices", like in Yamaha CS80 or Oberheim Matrix series..

aliasant ·

Acrobat wrote: aliasant wrote: I was thinking about building a synth with maybe 8 mono oscillators.

They would have to be controlled by something similar to this.

Is there a simple solution for a synth like this or is it something that needs to be written from scratch?

I would have to work much like the old analogue synths. I I play a C4 (60) it should only use the first oscillator. If I then add D4 it has to use the second osc for that one.... then lets say I add a G4 to taht... It has to use the third...and... if I know release the D4 it has to know to release the second oscillator..... This is to hard for me to figure out from scratch.

Has anyone any experience in building something like this?

...that is known as "dynamic allocation of voices", like in Yamaha CS80 or Oberheim Matrix series..

Sounds correct. =) So how do we do it?

Would be pretty interesting building a synth that way. Then you could control each osc much more in depth. for ex. Each osc's pitch could have a noise attached to it so that the pitch isnt steady. Or you could have 2 osc / Voice and detune them ...blablabla.

Acrobat ·

aliasant wrote: Sounds correct. =) So how do we do it?

2 things to start: 1. the Trigger output of V2P comes in hand 2. I remember a code written by Exo that takes the normalized freq at the input and switches to one of the outputs based on note values, I can't recollect it because my CPU is overheat, 90 celsius! Needs assistance. He surely has it still between his numerous goodies... think he wrote that for sampler keyzones, originally....

Now the trigger output calculates the number of notes held, so taking that integer combined with the normal gate on/off and bit of code work...you can re-route the norm freq input to different outputs (oscillators) - but I can't do it at the moment... .. when my PC is back on again I will try.. 😉

aliasant ·

Acrobat wrote: aliasant wrote: Sounds correct. =) So how do we do it?

2 things to start: 1. the Trigger output of V2P comes in hand 2. I remember a code written by Exo that takes the normalized freq at the input and switches to one of the outputs based on note values, I can't recollect it because my CPU is overheat, 90 celsius! Needs assistance. He surely has it still between his numerous goodies... think he wrote that for sampler keyzones, originally....

Now the trigger output calculates the number of notes held, so taking that integer combined with the normal gate on/off and bit of code work...you can re-route the norm freq input to different outputs (oscillators) - but I can't do it at the moment... .. when my PC is back on again I will try.. 😉

Wow acrobat. Im embaressed to say that I dont understand what you are talking about. Way over my head 😕 Lets hope Exo is reading this and remembers were he placed that piece of code. Not that I know what to do with it....

But I did try that http://members.shaw.ca/oddson/notesOn3.osm and it relly does some magic. Try that Acrobat. Might help in this matter. Hope your computer gets better. Poor thing.

Acrobat ·

it' simple,the idea is this, pseudo-coding:

if trigger =1 & gate=1 then route frequency to out1 if trigger =1 & gate=0 then route frequency to out1

if trigger =2 & gate=1 then route frequency to out2 if trigger =2 & gate=0 then route frequency to out2

and so on for every output/oscillator... should work as long as the gate/voices info are keeped alive when the signal moves across the outputs, but it's worth trying.. 🙂

However the interesting part comes when the maximum no of voices is reached, when trigger is equal 9 (9 notes held) and the max polyphony is 8, the out1 should be resetted, the voice stolen and substituted with a new note on out1.... 😈

tektoog ·

But I did try that http://members.shaw.ca/oddson/notesOn3.osm and it relly does some magic. Try that Acrobat.

Well i tryed the three different midi inputs i have...not a single works...only the computer keyboard... Anyone has an idea?

kirkagur ·

oddson wrote: Array of Playing Notes

Which contains two solutions from me, one old and a better one using my newly acquired parser skills.

hi

is there any way to sort the string array by the order of the played notes and not by the note number ???

oddson ·

Trickier than I thought because you need to be able to delete off notes from a list and the String Array Split wouldn't play nice. I couldn't get it to reduce the array size down by one by concatenating two string arrays together.

But the existing solution was able to clean up a string array once I reduced it down to a string...

kirkagur ·

thanks!!!!

this is very help full & work very well .

and

thank again! 🙂

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.