Old 07-18-2011, 03:06 AM   #1
mrp
Human being with feelings
 
Join Date: Jul 2009
Posts: 15
Default CC#88 hi-res

hi,

I'm sending CC#88 hi-res midi events to the Modartt Pianoteq plugin. But they're being read as standard 0-127 velocity events. Is there something I need to do to tell Reaper to read them properly? (The Pianoteq standalone version reads the stream correctly.)

Thanks for any help with this,
Morton
mrp is offline   Reply With Quote
Old 07-18-2011, 04:39 AM   #2
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

That's interesting. I never heard of CC88 Hi-res before. From a quick read it seems to be a CC88 prefixed to note messages which enhances velocity resolution to 14bit precision. Here is what a spec sheet I found says:



Quote:
MMA Technical Standards Board/
AMEI MIDI Committee
Confirmation of Approval for MIDI Standard

CC #88 High Resolution Velocity Prefix (CA-031)

Source: AMEI MIDI 1.0 Board

Abstract:

Defines MIDI Continuous Controller 88 (58H) as High Resolution Velocity Prefix to the subsequent Note On / Note Off message.

Background & Purpose:

High Resolution Velocity Prefix is intended to improve Note On/Off Velocity resolution while keeping compatibility with older instruments. High Resolution Velocity Prefix is intended to be used when 7-bit Note On / Note Off velocity resolution is not enough. In conjunction with this message, 14-bit resolution can be achieved.

This message is not intended as a substitute for any future data-resolution extension of MIDI.

[CONTROLLER MESSAGE]
HIGH-RESOLUTION VELOCITY PREFIX

Bn 58 vv
vv = lower 7 bits affixed to the subsequent Note On / Note Off velocity

The velocity byte in the subsequent Note On / Note Off message represents the higher 7 bits of the velocity.

A single High Resolution Velocity Prefix message only affects the next Note On or Note Off received on the matching channel. There may be other MIDI messages in between the High Resolution Velocity Prefix message and the subsequent Note On or Note Off message. After the standard Note On or Note Off message has been
parsed, the lower 7 bits of the receiver's 14-bit velocity register should be cleared.

In order to maintain compatibility with the Note On Running Status shortcut (9n kk 00 acts as Note Off), the smallest possible 14-bit Note On velocity shall be 0080H. The least significant bit of the upper 7-bit message is set to 1, the same as the standard softest Note On message. The largest 14-bit velocity shall be 3FFFH. Hence, the entire Note On velocity range consists of 16,256 steps. If 9n kk 00 is received, that still qualifies as a valid Note Off, and the preceding Bn 58 xx has no effect.

If the receiver does not recognize this message, it will just ignore the message and accept only higher 7 bits of the standard Note On and Note off messages.
Link to original pdf: http://www.midi.org/techspecs/ca31.pdf

From how I understand it, it's a CC88 message that is sent pre all Note-On events, so I would think that there should be nothing extra to do in Reaper. The message itself is nothing new to MIDI, just the meaning some devices pull out of it if it's coming in before a Note-On. CC messages which happen to occur before a note message are nothing out of the ordinary in a typical MIDI stream. From Reaper's point of view it just passes an ordinary MIDI stream over to a plugin.


What I'm saying is that it should just work and I don't understand why it doesn't.

Where do you get the info that "they're being read as standard 0-127 velocity events" from? Is that from a logger within Pianoteq or from another MIDI logger (which might not know that message combination and just interpret them as what they are normally - a CC88 plus a Note-On). Are you seeing CC88 and (7bit) note events in that logger or just the note events?

Last edited by gofer; 07-18-2011 at 04:49 AM. Reason: formatting the quote for readability
gofer is offline   Reply With Quote
Old 07-18-2011, 05:30 AM   #3
mrp
Human being with feelings
 
Join Date: Jul 2009
Posts: 15
Default

Quote:
Where do you get the info that "they're being read as standard 0-127 velocity events" from? Is that from a logger within Pianoteq...?
Yes, I'm reading the logger within Pianoteq. In the standalone, the same logger shows the hi-res values like: 12.469 or 97.219.
mrp is offline   Reply With Quote
Old 07-18-2011, 05:47 AM   #4
mrp
Human being with feelings
 
Join Date: Jul 2009
Posts: 15
Default

After running the standalone to confirm velocity values, I'm now seeing the correct values on the Pianoteq logger within Reaper as well. Since Reaper hasn't changed, I must assume a configuration error of my own, probably with my keyboard.

However, the event list for midi recordings are only showing interger values, and not the nnn.nnn values I'm seeing in the logger. Does this mean that the actual recorded velocity values are rounded off to integers?
mrp is offline   Reply With Quote
Old 07-18-2011, 06:21 AM   #5
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,752
Default

If gofer's understanding is correct (and it usually is), the "hi-res" nature of the velocity messages is only meaningful to the receiver (in this case, the plugin). The REAPER piano roll and event list will still show two separate events (the CC88 and the note itself), because that is what the actual underlying MIDI data actually is.
schwa is offline   Reply With Quote
Old 07-18-2011, 06:55 AM   #6
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

Good you got it to work.

No, not rounded. As Schwa already said, Reaper's MIDI editor will show you the messages in the way it understands them - as CC88 events and note events with normal 7bit velocity. All the interpretation magic happens in the plugin. You need to open a CC88 lane to see the extra events.

As long as you don't move notes, the performance should be reproduced accurately.

Reaper can't know which CC88 belongs to which note, so things will probably mess up when you are moving notes. Even the "Move CC with notes" option can't help, because the CC is before the note and won't be caught by that option. It shouldn't be too audible, as the CC is carrying the low significant bits, so the errors moving notes can introduce will be smaller than one step of ordinary 7bit velocity. Nevertheless, for people striving for perfection, editing the performance will be a pain.

To be able to display and edit CC88+Note velocity as one Hi-res event, the MIDI editor would probably need significant changes.


Is it worth it? I'd love to try that. I don't think I can even distinguish between velocity steps of 1, so I never felt the need for more resolution. But maybe with a physical modeling plugin like Pianoteq there are real advantages.
As long as there is no editor capable of presenting and handling Hi-res velocity, I think it's really for those skilled performers that don't need to edit but want that extra resolution in reproduction of their performance.
gofer is offline   Reply With Quote
Old 07-18-2011, 10:22 AM   #7
mrp
Human being with feelings
 
Join Date: Jul 2009
Posts: 15
Default

Thanks for clarifying the way these messages actually work. I had just
thought they were simple velocity messages with a higher precision. I
think I understand now the two step process which was adopted to
insure compatibility, and why the extra precision doesn't show up in
the event list.

I have no intention of trying to hand edit velocity values; so no, I
don't think it's worth the significant effort you mention to display
them as single Hi-res events. But I do want to take advantage of the
excellent sensitivity of the Vax77 keyboard I'm now using. It may be
psychological, but I do have the feeling that I'm a good step closer
to the expressivity of acoustic pianos.

Morton
mrp is offline   Reply With Quote
Old 07-18-2011, 11:06 AM   #8
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

...Vax77...



*drool*





Edit:
All drooling aside,
a comfortable way to edit combined messages like NRPN+CC6 combos or MSB/LSB combos of two CC messages (like CC1 + CC33 etc.) in piano roll and list editor would be a nifty enhancement.

We can generate the MSB/LSB combos easily (actually a bit too easily, if you ask me) with ReaControlMIDI, but the MIDI editors will display them as two discrete messages (which they are, it's basically the same method as Hi-res velocities). An option to display those combo-messages as one would be awesome and nicely fit with the way ReaControlMIDI handles them per default (it sends 14bit pairs where the GM specs allows - unless you switch to "raw" mode).

For piano roll I imagine for example modwheel MSB (CC1) and modwheel LSB (CC33) in a single lane with 14 bit resolution. Behind the scene the same two CC would be used of course - and it should be possible to switch to displaying two lanes any time.

From there it shouldn't be that much a leap to combine CC88 and note messages to a 14 bit velocity lane... Ok, I'm being optimistic there, I don't have any clue about how much effort changes like this would be.

Last edited by gofer; 07-18-2011 at 11:50 AM.
gofer is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:01 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.