Simple questions on synth tech basics...

DSP, Plugin and Host development discussion.
Locked New Topic
RELATED
PRODUCTS

Post

Output transformers whose bandwidth is just about right are considered to be rare items. Not many folks had the chance of building an amp with them, and certainly I wasn't that lucky. Usually one uses a generic hifi amp transformer and upper and lower bandlimits of the amp is then determined by the speaker, because output transformers intended for hifi amps have a bandwidth wider than that needed by the guitar both at the low and the upper and of the spectrum. I'm not sure distortion added by the speaker is a factor, but a common complaint is that it is necessary to turn the amp a bit loud before these speakers start to reproduce sound faithfully, or perhaps this phenomenon is not related to the speaker at all and is a property of human hearing, I do not know. I have never heard a guitar amp sounding really good at 0.5-1 watts. That has been a problem even with amps that were only that loud when "cranked", using "power" tubes like 12au7, for example. There are a few things that can be done to improve the situation, some speakers are better than others, and it is possible to alter the frequency response of the amp by adding a low pass filter right at the output transformer, but the problem persists, at such a low volume a speaker simulator is better than a real speaker for some reason, perhaps simply because one can plug an headphone to the simulator. (and perhaps I should add, the mentioned "low" volume level is actually loud enough to disturb neighbours in some apartment flats and everybody else in the home in others - such is the nature of some old analog gear, and every part needed to recreate them is still available for those who would like to experiment.)
~stratum~

Post

I have read that the note-off message also includes info on the velocity with which the key is released. Is that info made use of in normal synths? I just played around a bit and could not detect any difference, frankly.
How would that even work? I mean, velocity -> cutoff leads to a brighter sound the harder I hit the key, but what effect would note-off release velocity have on the sound that is ending, anyway? Would it determine the brightness of the release tail?

Post

I'll change the question a bit and ask is there a keyboard that sends that info and is it possible to measure it?

Recenly I have cleaned a midi keyboard and had a chance to examine how it might have worked. If I recall correctly there were two contacts per key which are triggered almost at the same time by the instant the key was pressed, and the fact that these two contacts were triggered by almost the same but not exactly the same time has given a clue about how velocity was measured: It is inversely proportional to the time interval between the moments the two switches recognize the "ON" signal; similarly the same idea could be used to detect velocity while they key was released, but the problem here is that while pressing a key one can affect its velocity, the same is not true for its release (at least wouldn't be equally effective). So the mechanism to measure the "key off " velocity is already there, but I could not see how a player may use that.
~stratum~

Post

Key release velocity is indeed measured simular (but reverse) to note on velocity.

You could let that modulate the ADSR- release key fast = adsr release goes down fast.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

it's up to the receiver to take it or ignore it
my CME keyboard sends different note on and note off velocity depending on how hard you press and release each key
it can definately be useful
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Yeah mapping note-off velocity to modulate an ADSR release value might be the most common application. Perhaps especially useful for instance on strings or pads type of sounds.

Another common mapping could be for clavinet, harpsichord, or electric piano type sounds. Some mechanical keyboards make a noise when you release the key, and the noise might be different in tone or amplitude depending on how fast you release the key. It might also be applicable to such as acoustic guitar, where rapidly pulling-off a finger from a fret makes a different noise than a slow pull-off (where the finger is more likely to mute glitch noises as it lifts from the fret).

Some synths might ignore release velocity. Additionally, some MIDI sequencer type programs might ignore release velocity, or possibly require a user setting to tell the program NOT to ignore release velocity.

It is very common to turn-off notes with a note-on with velocity of 0. Note-on with velocity of 0 does exactly the same as a note-off event. Except of course it doesn't impart any info about the release velocity. Quite a few keyboards send note-on velocity 0 rather than note-off events.

An advantage of note-on velocity 0 for turning off notes is that it can help thin the MIDI stream using running status, sometimes improving MIDI timing with a "less-clogged" MIDI pipe. Running status omits repeating the status bytes when sending multiple events of the same type.

So for instance if there are no intervening controller or pitch-bend etc messages, playing a C chord arpeggio on midi channel 1, playing each note for a quarter note duration, using running status and using note-off events, would be these bytes (just picking velocity numbers at random for sake of example) [18 bytes sent]--

Code: Select all

144 (note on) 60 (C note) 100 (note-on velocity) 
128 (note off) 60 (C note) 82 (note-off velocity)
144 (note on) 64 (E note) 110 (note-on velocity) 
128 (note off) 64 (E note) 96 (note-off velocity)
144 (note on) 67 (G note) 80 (note-on velocity) 
128 (note off) 67 (G note) 121 (note-off velocity)
Turning off the notes with note-on velocity 0 and running status [13 bytes sent]--

Code: Select all

144 (note on) 60 (C note) 100 (note-on velocity) 
60 (C note) 0 (note-on velocity 0)
64 (E note) 110 (note-on velocity) 
64 (E note) 0 (note-on velocity 0)
67 (G note) 80 (note-on velocity) 
67 (G note) 0 (note-on velocity 0)
So in this example, we can't "save any bytes" with running status if we send note-off events, because when the status changes we have to send the new status byte and the three notes need 18 bytes.

But if we turn off notes with note-on velocity 0, we only have to send one 144 note-on byte, and the receiver knows to apply the same status to all received bytes until a new status byte is received. So the same three-note phrase only needs 13 bytes to transmit. Since each midi byte takes about a third of a millisecond to transmit, the 5 "saved bytes" free-up about 1.67 ms of MIDI bandwidth.

In some cases running status doesn't save much bandwidth even using note-on velocity 0 to turn off the notes. Depends on the nature of the notes and controllers and such in the track.

Just saying, when recording, some sequencers might receive note-off messages from a keyboard and then ignore the velocity and only store note-on velocity and duration. Then when you hit play, it would send note-off velocity 0 to turn off the notes, and the release velocity you recorded is lost.

Just something to check, if you know a keyboard "ought to be" sending release velocity, or a synth "ought to be" receiving release velocity, but you can't get it to work.

Post

I think one of the most useful things would actually be key angle, which MIDI doesn't implement and there was at the time no cost-effective way to measure.

It can be measured with laser distance meters scanned across keys via a reflector today, which I'm not aware of having yet become mainstream or practical at this point in time but I do feel it is nonetheless possible for a manufacturer to roll their own at a quite reasonable cost at least for high-end controllers.

The effect it would work to recreate is the damper felt when the key is released on an instrument like a Rhodes or similar. Many pianos seem to try to avoid this effect by using a lever or other method to very quickly apply the felt during release but in the Rhodes the felt is applied very gradually. This means if you either don't fully depress the key after it is struck or release it more slowly, the felt is hit by the tine over multiple cycles and it creates a change in timbre followed by a volume reduction and eventually mutinge as the key is released further.

You could transmit this through the use of poly pressure even using MIDI.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Was just playing around with pad chords with long release time. It sounded nice to pitch bend an entire chord a couple of notes and let it fade out that way. But somehow it affected the pitch of the next chord, unless I released the pitch wheel, which was audible at the end of the previous chord, though.
So, I was wondering, wouldn't it make sense to kind of lock the pitch to the one set at the note-off moment via the pitch wheel? I mean, why does the pitch wheel have any impact on the pitch after I already released the note? Is there still Midi data being sent after I release the key? If so, how does the DAW know when the note is really over?

Post

fluffy_little_something wrote:Was just playing around with pad chords with long release time. It sounded nice to pitch bend an entire chord a couple of notes and let it fade out that way. But somehow it affected the pitch of the next chord, unless I released the pitch wheel, which was audible at the end of the previous chord, though.
So, I was wondering, wouldn't it make sense to kind of lock the pitch to the one set at the note-off moment via the pitch wheel? I mean, why does the pitch wheel have any impact on the pitch after I already released the note? Is there still Midi data being sent after I release the key? If so, how does the DAW know when the note is really over?
Pitch Bend is another MIDI message. The MIDI Note Off message ends the note (in the DAW), but the sound may go on, depending on the envelope of the device (release time, which happens only after a Note Off message is received).

Since Pitch Bend message is another message, it still affects anything that's happening in the instrument, independently of the Note Off.
Fernando (FMR)

Post

My old ESQ1 had a feature that pitch bend only affected notes currently held on the keyboars. So with a sustain pedal down you could play a chord, let go of some keys (that were still sounding due to the pedal) and bend the remaining ones with the pitch bend wheel. Don't know how many synths implement pitch bend that way though.

Post

fmr wrote:
fluffy_little_something wrote:Was just playing around with pad chords with long release time. It sounded nice to pitch bend an entire chord a couple of notes and let it fade out that way. But somehow it affected the pitch of the next chord, unless I released the pitch wheel, which was audible at the end of the previous chord, though.
So, I was wondering, wouldn't it make sense to kind of lock the pitch to the one set at the note-off moment via the pitch wheel? I mean, why does the pitch wheel have any impact on the pitch after I already released the note? Is there still Midi data being sent after I release the key? If so, how does the DAW know when the note is really over?
Pitch Bend is another MIDI message. The MIDI Note Off message ends the note (in the DAW), but the sound may go on, depending on the envelope of the device (release time, which happens only after a Note Off message is received).

Since Pitch Bend message is another message, it still affects anything that's happening in the instrument, independently of the Note Off.
The DAW does not seem to know when the sound itself ends, which also shows in the length of the track segments in Mulab when recording. Say, I play a chord, release the keys and the long env release time makes the chord linger for 10 seconds. Now I stop recording, and the segment ends 10 seconds too early, so to speak, which can be a problem with loops.

Basically I want a note-based pitch bend rather than a global one :hihi:

Post

noizebox wrote:My old ESQ1 had a feature that pitch bend only affected notes currently held on the keyboars. So with a sustain pedal down you could play a chord, let go of some keys (that were still sounding due to the pedal) and bend the remaining ones with the pitch bend wheel. Don't know how many synths implement pitch bend that way though.
That sounds more like what I have in mind :tu:

Post

The Rhodes Chroma Polaris also had fancy pitch bend modes. Can't recall if it was a switchable option or always operated that way. Various rules governing pitch bend according to note-on status and sustain pedal status. With care it was possible to play steel-guitar-like passages. Steel guitar being one of the most famous trad instruments which can easily and controllably change the pitch of individual notes in a held chord. Unfortunately it was not easy to properly play steel guitar. :)

Any midi "doing what you wanted" recorded in a sequencer would of course duplicate the individual note pitch bends when played back to the polaris. I played around with it some but didn't practice enough to get good at that technique. Would take practice until fingers, pitch bend lever, and sustain pedal would master the procedure as if it were second-nature.

I wouldn't be surprised if some modern instruments might have such options in there somewhere. A sequencer workaround would be to run the synth in 16 channel mono mode. For instance the first three note chord is played on Ch 1 thru 3, the second three note chord is played on Ch 4 thru 6, etc, until you get to Ch 16 and start out on Ch 1 again. Assuming you don't need the voice on Ch 1 by the time you need it again for a new note.

That would give you independent arbitrary pitch control of every note in every chord. If you don't need independent control of every note, only chords, you could play the first entire chord on Ch 1, the second entire chord on Ch 2, etc.

Some of the modern squishy position and pressure sensitive controllers, so far as I know, might operate each voice on its own MIDI channel, or the modern equivalent thereof. I have not studied those things at all.

Typically bass-to-midi and guitar-to-midi boxes send each string to its own midi channel in order to get independent pitch control from every string. Sometimes by convention the most common channels for midi guitar would be 11 thru 16 (leaving 10 free for drums and 1 thru 9 for piano, bass, etc).

Post

fluffy_little_something wrote:Was just playing around with pad chords with long release time. It sounded nice to pitch bend an entire chord a couple of notes and let it fade out that way. But somehow it affected the pitch of the next chord, unless I released the pitch wheel, which was audible at the end of the previous chord, though.
To get rid of that effect you could use two tracks set up with the same synth, and alternate between them. Wait for the notes to release fully, then reset the pitchwheel. Meanwhile the alternate track can play your next chord. Or render it to audio: reuse the same clips again.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

I suppose your workarounds using different Midi channels and tracks would work, although they are a bit clumsy.

Would be cool to have more sensitive keys, with built-in pitch control, i.e. pressing stronger on the left side of a key bends the pitch downwards, and vice versa. But that would interfere with aftertouch :hihi:

Locked

Return to “DSP and Plugin Development”