JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 11, 2008 22:42:11 GMT
I'm trying to write a file with Pedal steel parts in it and I'm too mathematically challenged to figure out at what I should set my pitch bend range to, to get what I want. I thought using portamento might be easier. But, I have completely forgotten how to use portamento controllers! Sheesh. ( Now I'm not sure which will be harder! LOL)
I had a MIDI file I myself made as demo of portamento to remind me but it seems to have freakin' disappeared from my drive. Arrgh!
I know I need Portamento on/off CC 65 , (I assume set to 127 to turn it on) and Poratmento time, CC 5 From there I can't remember what the heck to do. I can't remember if I need a data entry CC ( 6 or 38 and ) and/or if CC 5 has to have a value give to it.
Hope you are reading this John! But, please do me a favor, and keep it dummied down and stick to CC numbers and values, which should be first, second and last in their order. Hex and binary values won't help me. Thanks!!
Maybe you could send a file with just some portamento CCs and note data so I can look at it. If I could fine my own darned example file I'd be set.
Cat >^..^<
|
|
|
Post by JohnG on Jun 12, 2008 6:09:56 GMT
Hi Cat,
Give me a moment and I'll get right back to you on this one.
Best regards, JohnG.
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 12, 2008 6:43:34 GMT
Thanks John, It's really appreciated.
I am exceptionally torqued off that I can't find that demo file I made. It seems that things are disappearing off my drive. I just don't get it.
|
|
|
Post by JohnG on Jun 12, 2008 7:05:53 GMT
Hi again Cat,
Well for a start you're right about the one controller, CC5 defines "portamento time". The usual one byte value between 1 and 127 (decimal). As far as I recall "1" gives you almost instant slide between two notes, "127" is mu.u.u.u.cho longer, maybe like a Swanee whistle, or worse. You will probably need to experiment a bit with settings and may need to change it at different times during the song. Once set the slide will (should) be done automatically by the sound module between the note playing and the next note played. It's not like pitch bend. So, to some extent, set and forget!
However you can mess all you like with cc5 with no result without setting the all important "portamento on" switch. That is CC65 (decimal) as you said. This is by default set "off". The switch is, like most MIDI CC switches, usually set to 0 or 127, being off and on respectively.
The technique then is to set portamento on (127), just before you need it using cc65, then set a portamento value using cc5 (or, more likely, vice versa). The value will define how quickly/slowly the note slides. Every note from then on will be slid to from the previous note by the time value in cc5 until you switch portamento off again. You can Switch it off when you don't need it by setting cc65 to zero. Then do the same again using a different cc5 if you need to. As far as I recall the cc5 value is stored in the sound module, so if the portamento is fixed just set it once and use cc65 to switch it on and off.
I don't recall reading, except in manufacturer's specifications, what the length of time was for each value used in cc5, but I'll look it up for Yammy and Roland if you like. Its usually a case of trial and error though.
That's the basics. However a later addition to the MIDI standard added cc84 "Portamento control". This little chappie defines which note the next played note will glide from. So the third byte will define the note number (just like in a "note on" message). So the note following this controller will be slid up or down to, from the note defined in the cc84, using the time value defined in cc5, as long as cc65 indicates portamento on.
So the three byte message will read: (1) As usual controller message plus channel, (176 + 0 thru 15) (2) Controller number 5, 65 or 84 (decimal) (3) when cc5 = time value, when cc65 = 0 or 127 (off or on), when cc84 = key number to be slid from.
BTW all these CCs are defined in table III on the MMA site.
I've read through this a couple of times and it makes sense to me, but then it would wouldn't it? Hope it does to you too? I'll see if I can find an example somewhere but no turning blue, okay? Have great fun, Best regards, JohnG.
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 12, 2008 7:50:05 GMT
Thanks so much John, You are an invaluable resource and friend and, I sure am glad you are around!
I don't remember using CC 84 to define the note number. I just inputted the starting pitch and the ending pitch ( notes) via the piano roll, and it worked fine. I just couldn't remember what order to use them and couldn't remember if they required a data entry CC.
When I tried it in the file with just CC 65 and CC 5 I was having strange things happen, but not correct things happening. With both CCs set to 127 I was getting an almost instantaneous change in the notes, so I figured I was doing something wrong, or forgetting something.
I think I am placing those CCs in the wrong place in relation to the onsets ( note on messages) of the notes themselves.
My confusion is probably die to knowing that some sound cards/modules will respond to only the MSB and data entry for pitch bend range and others must also have the LBS set to 0 for
I have a copy of table III printed out, but it didn't help me to remember exactly what to do.
With things like this, step-by-step instruction is needed, especially seeing as those decimal CCs are not sitting right next to each other, numerically.
I feel sort of moronic as I have taught people how to use portamento in the past. Told ya my memory is complete garbage! LOL
On the Yammy and Roland specifications for portamento time Yes please look. I have a feeling they will be the same. I do believe that became a GM set spec but, I could be wrong.
Trying to get this file done for a MIDIMart member and I'm under the gun for time, so I've been cheating on most of the pedal steel stuff, and have been getting away with it by only using whole step pitch bends. But on this one part I really want a nice slide that goes up a 4th. I may just say th' heck with portamento and use extended pitchbend range to accomplish it. If I cant get portamento working right. I already dedicated over 3 hours just to that today, and got nowhere.
Still, I don't want to be in this position again( of forgetting what I knew) so I'm going to keep this info, and eventually make another porta-potty demo file. <grin>
Well, it's off to try it again! Wish me luck!
(Feeling like a greenhorn sequencer) Cat >^..^<
|
|
|
Post by JohnG on Jun 12, 2008 8:37:30 GMT
Hi JazzCat,
First of all see the two example files that I just PM'd you. You're quite right that if you haven't got cc84 implemented on your module then you can use "ghost notes" i.e non-sounding ones set to a very quiet "pppp" of velocity 1, set a fourth, or whatever, below. file 2 has an example of that. If you use the first file "live" with your keyboard you can experiment with changes in portamento time.
As for your memory, do you think I had all that info just sitting there in my brain? Heck no. But I have a good filing system (for me) with all the data and notes I've written myself on usage in one place and a collection of MIDI files written to CDs with a hand written note on the front that tells me what's on them.
I learnt, when I was dealing with horrendously complex data communications protocols, that I couldn't provide accurate, timely answers without it. I don't even try to hold the information in the front of my brain, but reading my notes brings it very quickly back to mind.
It goes as follows: Controllers, mma table iii. sub-section portamento. BnH. n=ch(0-15), 3 byte. CC65, 41H, on/off, 0/127. CC05, 05H, time, 1-127. CC84, 54H, lead-in note, 0-127. N.B. new! (ghost note.)
Maybe I'll expand the one on CC5 to add some values. Coming right up, I hope.
Best regards, JohnG.
|
|
|
Post by JohnG on Jun 12, 2008 8:56:15 GMT
Hmm! Don't seem to be able to find a table of portamento time values. Many others like reverb, but no portamento. That's checking GM, XG and GS. All I've found is "logarithmic scale" and 1 short, 127 long.
I guess, thinking about it, that it's may depend on other things like tempo and distance apart in time and not be a "fixed" time.
JohnG.
|
|
|
Post by JohnG on Jun 12, 2008 9:28:20 GMT
Well here's an interesting finding and no mistake!
When I play with portamento using the internal Windows GS MIDI emulation, no portamento effect is played. Connect to a "proper" MIDI sound module and bingo.
Yet another reason to consign Windoze to the rubbish heap. I wonder what other MIDI parameters in the specification MS has decided, in its infinite wisdom, not to implement.
So, JazzCat, if you're using your internal MS generated PC sounds rather than those from a soundcard or external sound module that may be why you can't hear any portamento. 'cos there ain't any. JohnG.
|
|
|
Post by JohnG on Jun 13, 2008 7:21:43 GMT
Hi all, esp. JazzCat,
A further update to my last post.
Your question, JazzCat, has prompted me to look around to find out where I saw a spec. about portamento. At last I've found it. It was in the MMA GM2 spec. and it's just a tiny graph (1" x 3") calibrated in cents per millisecond.
Useful values for the CC5 control seem to lie between roughly 20 and 100. 20 will be very quick (10,000 cents/msec) and 100 will be very slow (0.5 cents/msec) very roughly. Lower values will be almost instantaneous, higher values may take for ever. The permitted range is, as usual, 1 to 127. I would expect the most useful effects to lie from roughly 30 to about 70 or 80.
However the most interesting discovery, which I must have read but not taken on board, is that the GM2 spec says "Monophonic (MODE 4) Channels support portamento." Which implies that if the channel isn't set to mode 4 then it won't implement portamento! Is this the reason that the Windows GS MIDI implementation doesn't SEEM to work?
You can be sure that I'll be trying that today and reporting my findings back to you.
Hasta la vista! JohnG.
|
|
|
Post by JohnG on Jun 13, 2008 9:21:30 GMT
And yet another.
"Curiouser and curiouser" said Alice.
Inputting a "Channel mono mode" message into the file at the beginning makes no difference to the way a MIDI file with portamento is played when using MS GS emulation mode. i.e. the effect is still "no portamento". I'm still on Wn2k so I'd be interested if anyone else knows different.
AND ... I changed the "GM mode" message at the start of the file to a "GM2 mode" message and, guess what? Silence. No sound output at all from MS GS.
They work fine when I send them to the sound modules MU128 (v.2 f/w), MU1000 & SC8850. So, what gives Microsnot?
If anyone else has the time to play with these parameters I'd like to know what you find.
Best regards, JohnG.
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 13, 2008 10:18:02 GMT
As for your memory, do you think I had all that info just sitting there in my brain? Heck no. But I have a good filing system (for me) with all the data and notes I've written myself on usage in one place and a collection of MIDI files written to CDs with a hand written note on the front that tells me what's on them. I think I'd kill for your notes and CDs with examples!!!! "He thinks I'm kidding!", she says with a sinister gleam in her eye. <GRIN!>
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 13, 2008 10:24:32 GMT
I haven't used Microsh!t's GS wavetable synth in eons it seems. I used to use my Soundblaster Live, then the Audigy, then the X-FI 's synth A, until I got the Ketron SD2 Orchestral Wizard sound module. Now I seldom use anything else.
|
|
|
Post by JohnG on Jun 13, 2008 11:26:38 GMT
I think I'd kill for your notes and CDs with examples!!!! "He thinks I'm kidding!", she says with a sinister gleam in her eye. <GRIN!> Glad your over there not over here then! On the other hand it depends what method of execution you had in mind. Wicked gleam in his eye! Even bigger grin. Stop it, John, stop it! ;D The amended entry goes as follows: Controllers, mma(i) table iii. sub-section portamento. BnH. n=ch(0-15), 3 byte. CC65, 41H, on/off, 0/127. CC05, 05H, time, 1-127. GM2 (mode 4?) 20-120 linear reg. cent/msec (10,000-0.1) mma (gm2) graph. p6. CC84, 54H, lead-in note, 0-127. mma(gm) p16. NB new! (ghost note.) RY(TMF) porta1 & 2. Any help? JohnG.
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 14, 2008 11:33:16 GMT
well as you know, thaty gets a bit complicated for me... Hex and all. And I can't even fathom a guess to what the following foreign language translates to. LOL!
20-120 linear reg. cent/msec (10,000-0.1) mma (gm2) graph. p6. CC84, 54H, lead-in note, 0-127. mma(gm) p16. NB new! (ghost note.) RY(TMF) porta1 & 2.
except possibly " mma (gm2) graph. p6." meaning the MMA's GM2 spec showing a graph on Page 6, and "mma (gm) pg 16" meaning the MMA's GM specification, page 16.
BTW, what does BnH mean? I assume H=Hex
|
|
|
Post by JohnG on Jun 15, 2008 11:34:59 GMT
well as you know, thaty gets a bit complicated for me... Hex and all. And I can't even fathom a guess to what the following foreign language translates to. LOL! 20-120 linear reg. cent/msec (10,000-0.1) mma (gm2) graph. p6. CC84, 54H, lead-in note, 0-127. mma(gm) p16. NB new! (ghost note.) RY(TMF) porta1 & 2. "20-120 linear reg" = from MIDI value roughly 20 to 120 the curve of the graph is nearly flat. Before that there's a sharp upturn and after that there's a sharp downturn. "cent/msec (10,000-0.1)" = The graph is calibrated in cents per millisecond. The linear region extends from 10,000 c/msec through to 0.1 c/msec. Every semitone can be divided into 100 cents. You've got it. Yep, putting an "H" after a cluster of, usually two, digits indicates that they represent hexadecimal. "B" is the first half, or "nibble" (nybble?), of the byte, and is always, when "B", an indicator that the 2 bytes that follow are a "control change" or "channel mode" message. See mma table 1. The second part of the byte, the "n", is the channel number -1. i.e. 0-15 (or 0 to F in Hex) rather than 1-16. You'll see, in table 1, in the left most column, 8nH = note off, 9nH = note on, AnH = polyAT and so on. It then gives you the binary followed by the number of data bytes that follow, i.e. the value. So if we were able to watch the stream of MIDI data going across the MIDI cable we'd see a whole stream of 3 byte messages beginning with either 9nH or 8nH indicating note ons and offs. The second half of those bytes would be 0 to F indicating which channel (1 to 16) the note was intended for, and then the note number in the next byte, followed by the note velocity in the last. At the beginning we'd see other control or program change messages and we'd probably see pitch bends and other things interspersed between the note ons and offs. As well as a whole raft of timing messages, but that's another subject all on its own. Make any sense? JohnG.
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 15, 2008 12:48:51 GMT
Yes it does! Oh my! I understood ya! LOL!
|
|
|
Post by JohnG on Jun 15, 2008 14:16:23 GMT
Okay then, one at a time. We know, I suppose, that most MIDI parameter setting values lie between 0 and 127? Now imagine a graph that looks a bit like an "S" but cut off the top and the bottom curves (i.e. the top and the bottom quarters). What you have remaining is a straight line (almost) but, on the left is a curve going upwards and on the right is a curve going downwards. The "linear" part is in the middle. As it's a graph we need to label it. Along the bottom we write, from left to right, 0 to 127 (MIDI values). Up the left hand side we write 0 at the bottom, and some extremely large number, say 1,000,000 at the top. So it's possible now to take readings from the graph. If we set our MIDI value to 0 then it represents, looking up the graph at the line, 1,000,000. Now we move along the bottom to say 30, look up and the line on the graph crosses a point of maybe 10,000. Move along again to say 70 and we find a value of 100 and so on. (I'm making these up not looking at the graph.) If we go to the right, to 127 we find that the line has now reached zero. So, reading the graph, we can get a rough idea of how long the portamento will take depending upon what MIDI value we choose. A MIDI value of 0 will result in a note that seems to take for ever to glide to its final setting, a value of 127 will result in no portamento effect at all. Between those two there is a part which is useful. The linear part. Okay, next cents. As well as what we divide the dollar or the Euro into, it can represent a way of dividing up a semitone into even smaller values, believe it or not, 100 smaller values. If we go from "C" and travel up the keyboard to "C+1" we go up exactly 12 semitones. So an octave can be subdivided, using cents, into 1,200 very tiny steps. Why? Well, historically we have not always tuned our instruments the way we do today. In the past, especially about 300 years ago, there was a lot of discussion about how to tune fixed pitch instruments like harpsichords and organs. (The piano hadn't yet been invented.) It was in the time of the Reformation when the Catholic Church could no longer dictate how music should be and which notes should be tuned exactly pure. In order to be able to play in all the keys that we know today, every fixed pitch instrument had to be retuned! We can use the idea of cents today, to represent how far from today's tuning we need to retune a note in order to get it close to how, maybe Bach, would have tuned his instruments. Actually several of these old tunings sound a lot better than what we call Equal Temperament or ET. Nothing to do with little green creatures from outer space! In those days they talked about tone colour, because transposing a piece into a different key actually made it sound different, more lively or more laid back. In some keys the sharps were sharper (more tension), in others flatter (more relaxed). There is a vast amount of academic discussion about how Bach may have tuned his harpsichord, because he never wrote it down exactly. Like many, even today,he wasn't really interested in the math. (Remind you of anyone we know?) It is believed he left a clue in a series of squiggles he put at the top of one of his most famous pieces, "das wohltemperirte Clavier", Which may instruct a tuner just how much to tune each fifth away from absolute purity. Phew! Enough. Has it made any difference? Hope so! JohnG.
|
|
|
Post by JohnG on Jun 18, 2008 7:46:53 GMT
Hi JazzCat, Just wondered if you ever figured out how to get portamento working? Hidden away in one of my earlier posts was a bit that said something about setting the channel to "mode 4", "mono mode on". The GM2 spec certainly implies that this is a requirement for the effect. Ive more info if you need it. Best regards, JohnG
|
|
JazzCat
Full Member
E=Fb Musician's Theory of Relativity
Posts: 709
|
Post by JazzCat on Jun 22, 2008 23:53:12 GMT
Hi John, It would have taken me too long to get it right with portamento so I went back to pitch bend. When my brain finally started functioning right I finally realized that I simply needed to use separate channels for each of the notes of the pedal steel. Then, set a pitch bend range for each channel just ahead of the notes that needed bending, so it would end on the correct note for the ending chord.
If I remember right, without opening the file and looking, I needed one track set to a range of 3 one to 4 and one to 5.
My program shows the data entry CC-6 as 0-127, but in the case of pitch bend range you only need up to 24, each number being a semitone.
Had I been able to concentrate on what I was doing at the time, I probably never would have brought up portamento. ( hubby's condition after surgery had my mind elsewhere)
Still, from hearing that exceptional example you sent me, I do want to learn how to use portamento skillfully!
BTW, is there an actual graph on the MMA site I can look at while I'm re-reading all of your writings on the subject? If so, what's the URL?
Later I'm going to have a couple SysEx related questions for you. I probably have already asked them and completely forgotten the answers. It's that durned CRS disease I have. LOL!
|
|
|
Post by JohnG on Jun 23, 2008 7:36:48 GMT
It would have taken me too long to get it right with portamento so I went back to pitch bend. When my brain finally started functioning right I finally realized that I simply needed to use separate channels for each of the notes of the pedal steel. Then, set a pitch bend range for each channel just ahead of the notes that needed bending, so it would end on the correct note for the ending chord. I think you probably made the right decision there and, if it's any consolation, you'd probably have to had done the same for multi note portamento. Since your question I'd spent a little time looking up the subject and it seems to have changed, in the setup procedures at least, from GM to GM2. Sounds about right to me. Yes, pitch bend can be any number of semitones up to 2 octaves maximum. i.e. 1 to 24. Default is 2 which should be set at GM reset. Quite sure it did, hope he's on the road to recovery now? Me too. I keep meaning to have a go at programming the steel guitar in Matthews Southern Comfort record Woodstock. If I could do a half passable version of that then I'd know I'd have cracked it. Gordon Huntley has to be one of the best steel guitar players ever. No, unfortunately not, it's in the GM2 spec. Look in your PMs in a day or so. Fire away JazzCat, it's always a pleasure to help you. All the best and to hubby's speedy recovery. JohnG.
|
|