SynthMaker

Triggering New Notes

Archive · 2012 12 old posts

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

geekygenius ·

Hello, I have managed to figure out most of SynthMaker on my own, but I don't really have a solid understanding at the most fundamental level. I have no idea how one would trigger notes. In particular, for an on-screen keyboard, or an arpeggiator. I can change my voice module if needed, I think it's important, but I'm not entirely sure.

Thanks for any help! ~geekygenius

nix ·

The easiest way is to use 'MIDI event' module. Note on is 144 status, and off is 128 . then you define the note no. and the velocity. Otherwise, You can feed a frequency to an oscillator, and multiply it by 1 for note on, and 0 for silence. If you you use a cycled array for the multiplier, you have a sequence. Use a cycled array for pitch too, and can create arp. If you get stuck, pls. post yer .osm and i can try help 8D Midi timing for other than keypresses is terrible. hmm, just a tick and I'll find you Exonerate's sequencer, which taught me heaps.

trogluddite ·

Hi there, welcome to the forum. The simplest way to do this is by generating a MIDI note - you can then plug this into the "MIDI to Poly" primitive to give the same effect as a notes coming in from a MIDI keyboard etc. There are two options... 1 - Use the "MIDI Note Event" primitive - simple to use, but it has the limitation that it can only send notes of a fixed length. 2 - Create discrete Note On and Note Off events using the standard "MIDI Event" primitive - which is done like this...

These two are the only practical way to do it if your note output needs to be polyphonic - however, if you are making a purely monophonic synth, it is possible to bypass using MIDI entirely by using purely mono (blue) streams instead of poly (white) ones...

- Oscillators just need a frequency value in order to play a pitch - there are several modules for converting between Pitch (MIDI note numbers), Frequency in Hertz, or "Normalised" frequency (goes from 0 to 1). So if you don't get the pitch you expect, chances are that the oscillator just needs its frequency value converting to one of the other formats (the same is true for filter cutoff frequencies etc.) - You can take control of envelopes by ticking the "Gate" option on their properties page, and connecting a suitable signal to the Gate input. This bypasses the usual "automatic system" that the MIDI to Poly uses, enabling you to trigger them without the usual MIDI setup.

Although it is a bit more complex, doing it without MIDI does have one big advantage - the timing will be much superior. The "Green" signals in SM have a very coarse timing resolution, and also have very low CPU priority (so they will wait for your CPU to do other stuff before changing values) - whereas White and Blue streams have very accurate timing because they are synchronised to your soundcard's sample rate. You can read more about this if you search the forum for e.g. "trigger timing".

EDIT) Ha, ha - looks like nix can type faster than me! 😉 One word of warning...

nix wrote: You can feed a frequency to an oscillator, and multiply it by 1 for note on, and 0 for silence.

...for sure, an oscillator with frequency zero will not oscillate - so you hear no sound. However, setting frequency to zero does not mute the oscillator output, it just "freezes" the oscillator wherever it happens to be in the waveform - so you still get a fixed number at the output (a "DC Offset"), which can sometimes have nasty side effects when you mix it with other sounds - it pushes everything up or down, making the audio "lop-sided". In this case it is a good idea to use an envelope or amplifier (multiplier) to mute the oscillator - to make sure that you reallly do get "nothing" at the output.

Happy SynthMaking!

nix ·

This is really cool IMO, I have modified it extensively. This version is the original Exo shared. It's an arp done in stream, so it's timing is fine to use.

Yep Trog, I meant multiply by 1 or 0 the osc's output to mute, not the frequency. This also needs dezipping, actually. So that can be done with a dezipper or biquad/lowpass filter, alternately to an envelope.

Cheers for explaining that better trog 8D indeed happy experimenting chap

trogluddite ·

nix wrote: This is really cool IMO

You swine - I had loads of chores to get done, and you go and post this! 😉 😈 Arp + Step.seq all-in-one, it sure is still a beauty! 😀

nix ·

You're gonna hate me now! I sent through my version 😉

Xtinct ·

Any ideas why this doesn't work 😕

I know its going to be something simple 😊

philter5 ·

yeah thx for the reminder nix ! i can remember this nice schematic, too. the EXO arp hehe.... years ago when this was posted by exo i remember i packed 4 of this arps in one schematic and it sounded really great... just the CPU load was WAY too high at that times....maybe now it´s time for a new try(in the age of multi-core´s)? 😍

trogluddite ·

Xtinct wrote: Any ideas why this doesn't work

It works better if you set the boolean for "Hold Stolen" to false. If it is true, the MIDI to Voices remembers all of the last played notes, then the Note Off message turns off the most recent one, but one of the 'stolen' notes will re-appear.. This also means that it will not work polyphonically. (NB) While trying to fix it up, I noticed that the MIDI to Voices misses a big pat of the MIDI spec' - it does not respond to All Notes Off or All Sounds Off messages!) However, there is a way to do it, that will also work polyphonically...

In this method, Note Off events are directed to the MIDI Buffer instead of the MIDI to Poly, so played notes will latch on. When hold is turned off, the buffer is flushed - sending all the stored Note Off events to the MIDI to Poly. If the hold button were operated by CC64, this would create the standard MIDI sustain pedal action. Note that to properly meet the MIDI spec', it would need a bit of extra logic - a Note On event with velocity=0 also counts as a Note Off, and there are a few MIDI KB etc. that use this method instead of proper Note Off messages.

philter5 ·

trogluddite wrote: (NB) While trying to fix it up, I noticed that the MIDI to Voices misses a big pat of the MIDI spec' - it does not respond to All Notes Off or All Sounds Off messages!)

😮 😕 i have to search this old thread again but i am damned sure that at least AllNotesOff worked in the past... i remember i´ve used it in some kind of "fake"active sensing for midi to prevent stuck notes .... 😕

trogluddite ·

I have been wrong before! - and It is the kind of thing I would remember if there has been a bug thread. Maybe I was sending to the wrong MIDI channel or something - worth some more testing, anyhow.

geekygenius ·

Sorry I haven't had any input, but I was on vacation. Anyways,

I'm using a voices module, the one that comes with the default patch. It looks like this from the inside. http://prntscr.com/dslq0 Should i use a MIDI to Voices primitive, then combine the two voices outputs from the Voices module, and the MIDI to voices module? (If that makes sence)

Essentially, I am using a voices module. How would I add support for plugin generated MIDI messages, or should I control it some other way?

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.