MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI-OX >> Mapping Questions >> Channel aftertouch display
(Message started by: mydogkeko on Feb 16th, 2007, 2:49pm)

Title: Channel aftertouch display
Post by mydogkeko on Feb 16th, 2007, 2:49pm
When I press on a MIDI controller and I listen to a piano (program one) and I hold down the key the sound of the piano eventually diminishes.  I'm assuming what I'm listening to is a stepping down of the  velocity/volume because of channel after touch but when I look at the screen for midiox no channel after touch signals are displayed.  I'm not sure if I'm correct if this is what is happening?  Any thoughts welcome

Title: Re: Channel aftertouch display
Post by Peter L Jones on Feb 17th, 2007, 4:08am
When someone plays a piano and holds the key down, the sound diminishes.  It's called natural decay.  The struck string slowly comes to rest as the energy imparted by the hammer dissipates as heat and sound.

It does all that without MIDI involved.

When you press a key on a MIDI controller, a Note On message is sent somewhere.  You've not said in your message exactly what you've got your controller connected to and that does make a difference.  I'll explain a few of the ways sound sources work.

Many sound sources try to emulate natural decay using an "envelope" (with attack time, decay time, sustain level, release time).  For a completely synthesized sound, this will rise, fall and then hold until you release the key.

However, for a sampled sound, one of two things can happen.  If the sample is looped, it is essentially the same as a synthesized sound.  It no longer represents the natural sound as it won't decay naturally.

For an unlooped sample, you'll get the recorded sound (with any envelope applied on top).  If it's a whipcrack, for example, it won't last very long.  A peal of thunder might start loud and rumble on for a while.  A struck piano string will sound like a struck piano string.

Title: Re: Channel aftertouch display
Post by mydogkeko on Feb 18th, 2007, 11:44am

Thank you Peter.  As always, I really appreciate your sharing so much useful information.  My ultimate goal is to try to remap a wind controller so that a student who cannot use his hands or his arms to play some music.  The idea was to take advantage of the student's ability to be able to control his own breath.  He has no other movement.  If you have a moment please watch the video below:

http://mybreathmymusic.googlepages.com/switchblow

I was hoping to remap the data so that at different volumes he could play different notes.

2862133  2   1    144    61   127    1  C# 4 Note On              
  2862133  2   1    176     2   127    1  ---  CC: Breath            
  2862135  2   1    176     2   127    1  ---  CC: Breath            
  2862464  2   1    176     2   118    1  ---  CC: Breath            
  2862469  2   1    176     2    51    1  ---  CC: Breath            
  2862473  2   1    176     2     2    1  ---  CC: Breath            
  2862478  2   1    176     2     0    1  ---  CC: Breath            
  2862482  2   1    176     2     0    1  ---  CC: Breath            
  2862483  2   1    144    61     0    1  C# 4 Note Off        

I was thinking of some fun ways to be musically expressive with one blow sensing switch.  I was thinking about changing the pitch with a constant velocity at every level of velocity.

Is there a way that midiox would listen to the note on signal for note 61 and then for the corresponding breath control between  127 program change up octave
                                                                                                                                                                                      126-90 Play note 65
                                                                                                                                                                                      89-60 play note 64
                                                                                                                                                                                     59-30 Play note 65
                                                                                                                                                                                    29-1 program change down octave

The number two above under the 61 I believe stands for the degree of breath control up to a value of 34.  Its course versus a fine control.  I'm not sure what 176 stands for under 144.  Are there any samples on the forum to discuss remapping Wind controllers like this?

Many thanks

David

Title: Re: Channel aftertouch display
Post by Jamie OConnell on Feb 18th, 2007, 1:12pm

Quote:
Is there a way that midiox would listen to the note on signal for note 61 and then for the corresponding breath control between  127 program change up octave
                                126-90 Play note 65
                                89-60 play note 64
                               59-30 Play note 65
                              29-1 program change down octave


Yes, you could do this with simple range mapping CC:2 to Note On.  The problem that arises, though is how to generate a Note Off (sometime later) for the corresponding Note On.  Another problem is that you would generate a new Note On for every controller event that arrives (very many of them normally).

The 176 is a MIDI controller message.  I usually look at the monitor in Hex where you'd see:  B0 instead of 176 (a CC message on channel 1).  The 2 following that means Breath Controller, and the value after that is the amount of breath.

Your best bet might be to use scripting to do this so you could prevent regeneration of notes if one is already playing, and to turn it off before playing the next note.

Title: Re: Channel aftertouch display
Post by mydogkeko on Feb 19th, 2007, 11:03am
Thank you Jamie.

I came up with an attempt to make a percussive instrument for him.  Here's my feeble attempt:

MOXMAP Version 5

[Map]
*,NoteOn,*,*,*,*,N,0,*,NoteOff,*,*,*,*
*,Ctrl,2,2,101,101,N,0,10,NoteOn,50,67,*,*
*,Ctrl,2,2,100,100,N,0,10,NoteOn,32,32,*,*
*,Ctrl,2,2,90,90,N,0,10,NoteOn,64,66,98,100
*,Ctrl,2,2,80,80,N,0,10,NoteOn,43,43,127,127
*,Ctrl,2,2,70,70,N,0,10,NoteOn,63,63,100,100
*,Ctrl,2,2,50,50,N,0,10,NoteOn,61,61,*,*
*,Ctrl,2,2,20,20,N,0,10,NoteOn,61,61,100,100

[Options]
WaitForFullNRPN=0
MapNRPNDataIncr=0
SendFullNRPN=0
ReverseDataEntry=0

I have been trying to learn more about midox for a while.  I definitely am a perpetual newbie though and appreciate your assistance.  He just strikes me that the program has the possibilities to really create some nice adaptive musical instruments for people.

I would like to learn the basics of scripting.  If anyone has any suggestions on which type of scripting to learn in any web sites where I might start to learn some basics they would be really appreciated.

Many thanks





MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.