AlenK Posted November 7, 2017 Share Posted November 7, 2017 Many of the preset PCM melody tones offered by the XW-P1 (and by the XW-G1) offer velocity switching, which automatically switches between waves at preset velocity levels. Typically, two waves are used but a few voices switch between up to four. In almost all cases the purpose of the velocity switching is to introduce changes in harmonic content with increased playing force, which is a characteristic of acoustic and electromechanical instruments. The Hex Layer mode of the XW-P1 goes further, allowing user programming of the velocity-switch points between up to six user-selectable waves. In that case the waves need not be related; they could be samples from different instruments. Some of the orchestral Hex Layer tones, such as OrchstralHEX (P4-4) do exactly that. The only downside to using velocity switching to change harmonic content (timbre) with playing force for a single instrument is that the change can be rather abrupt, especially when only two waves are used. A much better method is crossfading, which can achieve the same thing in a smooth manner. Unfortunately, the XW-P1 doesn’t overtly support crossfading. However, it can still be done. This post describes one method using the Hex Layer mode. One simple method of crossfading between two waves in a Hex Layer tone is to set the TouchSense parameter of one wave in a layer to a negative value and the TouchSense parameter of the other wave in a second layer to a positive value. The volume of the first wave will then reduce for larger velocities while the volume of the second layer increases. By adjusting the relative volumes and TouchSense values of the layers you can achieve crossfading while retaining some semblance of the normal dynamic response of the tone, which is normally still required. However, linear crossfading, which is all that is possible using only two layers, is not perceptually accurate. Perceptual accuracy requires a pair of non-linear curves that map velocity to volume. This can be accomplished by using more layers since the Volume and TouchSense parameters of each layer are completely independent. If we restrict each layer to a certain velocity range and use suitable values for those two parameters within each range we can do a piecewise-linear approximation of the curves required for an accurate crossfade. Here’s an example that uses all six layers for maximum accuracy. It splits the total velocity range from 000 to 127 into three ranges, with two layers in each. Three of the layers together approximate the crossfade curve for one wave, while the other three layers approximate the very different curve required for the other wave. The relevant settings are shown in the table below and the resulting piece-wise linear approximations to the required crossfade curves are shown in the attached illustration. Value Parameter L1 L2 L3 L4 L5 L6 LayerOn/Off On On On On On On PCM Wave WaveA WaveA WaveA WaveB WaveB WaveB Volume -109 -068 -053 -032 -088 -034 TouchSense +053 +083 +127 +063 000 -064 VelRangeLow 000 043 085 000 043 085 VelRangeHi 042 084 127 042 084 127 Unfortunately, the above method takes all six layers to crossfade between only two waves, which is a heavy price to pay. A somewhat less accurate approximation shown in the next table uses only four layers to crossfade, leaving two layers still available for other components of the composite tone. Value Parameter L1 L2 L3 L4 L5 L6 LayerOn/Off On On On On On On PCM Wave WaveA WaveA WaveB WaveB TBD TBD Volume -083 -063 -031 -019 TBD TBD TouchSense +053 +063 +057 -064 TBD TBD VelRangeLow 000 064 000 064 TBD TBD VelRangeHi 063 127 063 127 TBD TBD Example files for six layer (three-segment) and four layer (two-segment) crossfading are available here. A diagram of the crossfade curves and their three-seqment piecewise linear approximations: 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.