Yahoo Groups archive

Disklavier

Index last updated: 2026-04-28 23:20 UTC

Message

Re: [disklavier] Re: Volume Control of Midi during playback

2006-01-24 by Robert Welcyng

You might make an inquiry to PG Music (www.pgmusic.com) and ask if they have a sequencer that would fulfill your needs. As I recall, the player that was a part of their "The Pianist" packages incorporated a "Velocity Boost" control (in additon to a "Volume" control which will not help you). �Despite the term "boost", one could lower, as well as raise, velocities on the run. The files provided with that player were MIDI files. �You would want to investigate whether just any MIDI file would be accepted by that player and whether it would meet your needs.

I would also suggest specifically asking PG Music if their Power Tracks sequencer might have the feature that you are looking for.

It would be a revolting discovery, after inventing your own square wheel, to find that there already was one on the market that you could have bought inexpensively.

whatsay2that wrote:
I have an older Disklavier, model HQ100, which I drive from a PC 
using WinAmp via a USB MIDI adaptor and the MIDI input port.  The 
only volume control is the knob that adjusts the distance of the 
hammers from the strings, but that has no effect on the force with 
which the keys are struck, which depends solely on the MIDI velocity 
value.

I would like to have a program to adjust MIDI velocity levels "on the 
fly", and ideally one that would work in conjuction with WinAmp (but 
that is not a requirement as long as there would be some means to 
queue files in a playlist).  I sat at dinner last night thinking of 
the velocity adjustment algorithm to use.  On arriving home, I 
decided to check this user group to see if anyone had already solved 
this problem, and I found your timely message thread.  It seems the 
problem is not yet solved, but there are others out there who have 
similar requirements.

I can contribute the velocity adjustment algorithm, if someone else 
who understands MIDI file structure can do the programming.  I have 
written a small Excel spreadsheet with interactive slider bar inputs 
and a velocity distribution graph so that you can see the impact of 
the variables on the velocity value modifications.  (I don't see how 
I can attach the file here, but I will try to post it in the "all new 
uploads go here" folder.  If anyone wants it, write to me outside the 
group forum and I will send it.)

Briefly, there are three variables:  

1) Absolute Maximum Velocity is the value that under no circumstances 
can be exceeded.  This is the safety value so that high velocity 
values do not cause damage to the piano.  Maximum MIDI velocity is 
127, however values of 100 to 110 have been suggested as 
maximum "safe" levels.  MIDI velocities above this maximum will be 
truncated to this value.

2) Target Minimum Velocity is the lower threshhold for sounding the 
piano, or for setting a minimum volume higher if so desired.  All 
MIDI velocities below this level will be raised to this level, unless 
volume control is set lower.

3)  Volume Control is a percentage of original velocity, within the 
bounds set by Absolute Maximum Velocity and Target Minimum Velocity.  
If Volume may be adjusted below the Target Minimum Velocity if 
desired to turn volume down completely.  Volume profile will be 
completely flat at this point.

The algorithm (in Excel format) is: 
=MIN(AbsMax,MAX(TargetMin,(TargetMax-TargetMin)/(OrigMax-TargetMin)*
(OrigVel-TargetMin)+TargetMin))

Where: 
AbsMax = Absolute Maximum Velocity (safety limit)
TargetMin = Target Minimum Velocity (lower threshhold)
TargetMax = Volume Control % times 127 (maximum MIDI velocity value)
OrigMax = 127 (maximum MIDI velocity value)
OrigVel = Input velocity value from MIDI file (the value to be 
modified).

This will make more sense if you view the file, play with the 
variable slider bars, and see from the graph how the algorithm works.

Future enhancements could include a curved profile (this one is 
linear), different profiles or settings for various ranges (treble, 
mid-level, bass), etc, but I think the algorithm I have proposed will 
be more than satisfactory for 99.44% of users.

Is there anyone in the group that could program this?    

John Sutton
China


--- In disklavier@yahoogroups.com, Carl Youngblood  wrote:
  
It seems like the algorithm being used is wrong.  If a note is 
    
already
  
soft, it should not be reduced to zero.  It should be reduced less 
    
the
  
further it is from the desired overall volume, until turning down 
    
the
  
volume doesn't change it at all.  Think of a normal distribution, 
    
with
  
the desired volume being right at the middle of the bell curve. 
Turning down the volume should bring notes closer to the center of 
    
the
  
bell curve instead of just subtracting uniformly from their
velocities.

On 12/10/05, bnbwv  wrote:
    
In trying to reduce the volume on my old wagon grand, there are 
      
two
  
complications.  First, the volume controller (7) has no effect on
hammer velocity (volume).  Second, if you just scale down all
velocities, the softer notes won't sound at all.  You need to map
velocities into a range from a low of around 25 to a high that
depends on the 'volume' you desire.  Your MIDIMOD program is what 
      
is
  
needed, with the mapping being done on the fly rather than as a 
      
file
  
in / file out operation.
      





To Post a message to the group, send it to:   disklavier@...

To Post a private message to Todd Muncy, the group's founder and moderator, send it to:
disklavier-owner@...

To reach our group's web site go to:
http://Yahoogroups.com/group/disklavier

Todd's family web site was completely updated 012/22/03.  It contains some fun disklavier content and links to midi sites among many other things, The url is:
http://MuncyFamily.com 

THINKING OF LEAVING THE GROUP?
If you are thinking of unsubcribing because you are getting too much mail, go the the web site and change your email delivery option instead.  That will fix the problem, while maintaining your access to the group.  If you insist on leaving us completely send a blank email to:
disklavier-unsubscribe@... 

Know someone who wants to join?  Have them send a blank email to:
disklavier-subscribe@... or give them this link:
http://Yahoogroups.com/group/disklavier/join 
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/disklavier/

<*> To unsubscribe from this group, send an email to:
    disklavier-unsubscribe@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



  

-- 
Robert Welcyng
Anchorage, Alaska

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.