Kara-Moon Forum

Developers & Technology => Musical MIDI Accompaniment (MMA) => Topic started by: drautzburg on October 01, 2010, 05:14:23 AM



Title: Sixteenth swing
Post by: drautzburg on October 01, 2010, 05:14:23 AM
Swing delays beats which fall on an even 8th note (if counting starts at 1).

But there are tons of songs (think: Toto) where all the 8th are in place but every other 16th is delayed (this only sounds well with slow songs with BPM < 100). How can I achieve this with a single setting like "Swing16 ..."?


Title: Re: Sixteenth swing
Post by: bvdp on October 01, 2010, 04:22:39 PM
Ummm, right now you can't.

I've never considered applying swing to 16ths.

For now, is it impossible for you to convert the song from 2/4 to 4/4 (ie. double the number of bars and convert 16th to 8ths).

But, let me think a bit on this. I've never seen swing apply in this manner. If you want to send me an example, contact me via private mail

Best,


Title: Re: Sixteenth swing
Post by: drautzburg on October 01, 2010, 05:23:38 PM
There is certainly tons of material which uses 16th triplets.

Sometimes a 16th swing is notated as regular swing with an added "half time feel" as in
http://www.drummerworld.com/Videos/jeffporcaroshuffle.html

here the groove is fully explained
http://www.youtube.com/watch?v=MwFdExvCxM4


Title: Re: Sixteenth swing
Post by: bvdp on October 01, 2010, 06:15:30 PM
I'm not convinced that they are 16ths :)

From the notation I think you have 8th note swing (the 1st and last notes of the triplet) in a short/long effect. Plus you have an off-note in the middle of the triplet.

Were I doing a drum track like this I'd have 2 tracks. One for the 1st/3rd note; a second track (on a different inst) for the 2nd note.

Let me know if I'm in another world here ... possible, I just got in from shoveling a few more wheelbarrows of gravel for my wifes garden project :)

Also, I did have a look at the existing swingmode code. It'd be easy to convert this with an additional param to make it work on 8ths or 16ths. Just a matter of using shorter note values. But, before I do that, I'd want to be sure that this is the right route.

Also, IANAD (I am not a drummer)!

Best,


Title: Re: Sixteenth swing
Post by: drautzburg on October 02, 2010, 09:42:26 AM
This is in way a question about musical parlance. In the Rosanna example Jeff Porcaro himself refers to the snare beat as on "three". So he is counting like you, and the triplets are really  8th triplets. You can see Rosanna as a fast song with 8th triplets and snare on three or a slow song with 16th triplets and the snare on two and four.

The thing is: Rosanna certainly does not sound like "swing". Here is another example http://www.youtube.com/watch?v=G2WG1-735pU. Try counting along, and you will most likely hear it as a slow groove with the snare on two and four. Then the triplets are 16th triplets.

But the question was not "do we need 16th triplets"?. Mma has no problem with 16th triplets, except you need to do some calculation to know the digits behind the decimal point. The question is: do we need anything between plain 16th and 16th triplets?

All I know is that occasionally shifting a plain 16th to a "ternary" position adds a lot of liveliness. Whether another swing mode is the solution - I am not sure, but I anticipated it would be very easy to do and verify. Another option would be randomization. I don't know how this works today. I have the feeling it should not randomize all beats by the same degree, but (1) randomize even 8th and 16th more then odd ones, and (2) prefer delays over rushes.


Title: Re: Sixteenth swing
Post by: bvdp on October 02, 2010, 05:30:46 PM
The example you sent sounds more like a shuffle than swing to me :) Certainly, I agree it's not swing :)

So, what are we trying to do?  Just creating a pattern for the snares, etc. is pretty simple ...  just calc the hit points in the bar. Off the top of my head, it'd be something like

     Drum Define  SwingyShuffle  1 1 90; 1.8 1 80; 2 1 70; 2.8 1 70 ...

I'm showing here that you can accent beats by using different velocity values.

The 1.8 offset is probably a bit too much. Maybe  1.69 or 1.7 would work better.

Some randomization would help, too.

So, in the drum-snare track you might want to push the beat with something like:

    Rtime 5,10

which pushes each hit a value of 5 to 10 ticks forward. Ummm, the x,x notation for rtime/rvolume was added in version 1.5 ... but you might have missed the enhancement.

If the decimal values are not showing properly (ie. 1 1 1.7) you can, in the beta versions of MMA, use tick offsets as well. See the manual, but you just use the tick offset and append a 't'.

I'm up to my $%*#$*# is yard work today, but does this help?

Again, I'm not a drummer!!!! Frankly, I find drums to be a bit of mystery in concept and notation. Anyone else with suggestions on this ... please feel free to jump in! Remember, it's not Bob's forum!


Title: Re: Sixteenth swing
Post by: drautzburg on October 02, 2010, 09:17:24 PM
I think what I really would like to experiment with is the situation where I have written a groove which uses some light 16ths (e.g. 1.75) and then either swingify it or randomize it. Both having the effect that the 16th is played a little too late, except "swing" delays them all by the same amount and "random" does not.

Today swing works perfectly on 8th notes and there is a workaround for 16ths if you write it in double speed. As for randomization, I don't know, but I assume it treats all notes equally and does not favor delays of "light" beats.

This is not exclusively a drums issue. In the Shakatak example all instruments use "delayed 16ths", even the vocals.

I guess I will handcraft an example and post it here.


Title: Re: Sixteenth swing
Post by: bvdp on October 02, 2010, 10:33:04 PM

If you think it'd be useful at all I can "fairly easily" add in a swing option like:

    SwingMode ON Skew=xx Note=8

Setting note to 16, 8 (and probably 4) will be permitted. All I need to do is to code in a divisor. Should be simple enough.

As to getting accents on some beats and not others, the easy thing to do is to have 2 tracks, one with accents the other without. There's really no limit on how many tracks you can have. So, have a Drum-Snare-1 with beats on 1,2,3 and 4 and no randomization; have Drum-Snare-2 with the same tone and hits on 1.7, 2,7, etc. Put the randomization in and even change the volume.

Having more than one track for a voice should be noted in the manual, I guess ... but the sucker is getting to be a novel already :)

Also, the accent option can help as well by setting volume changes to beats.

Let us know what you come up with!

Bob.


Title: Re: Sixteenth swing
Post by: bvdp on October 03, 2010, 01:38:59 AM

I'm just fooling around with the swingmode code. I'm still thinking about the 8/16/4 thing ... but, I did just add an accent option. So, now in setting up swing you can do something like:

    Swingmode On Accent=110,90

and the first notes of each pair will be have a velocity of 110% and the 2nd 90% of the original setting. Default is 100,100. Just doing a few tests here and a slight difference really does make a large difference in sounding natural.

I'll look more tomorrow about the 8 vrs 16ths.


Title: Re: Sixteenth swing
Post by: drautzburg on October 03, 2010, 05:30:43 AM
Interesting.

As a side note, I once made some experiments with volume shaping, where I wanted to algorithmically give the one more oomph than the the two etc. all the way down to 32nds. This is fairly easy, but you cannot do the same thing with triplets easily. This is because a quarter triplet is really 1/12 and the first three quarter triplets are at 0/12, 1/12 and 2/12 (if I start with 0). Ideally the first triplet should be heavy and the second and third should be equally light. However the last triplet coincides with the second half-triplet (0/6, 1/6, 2/6). If you only look at the time, you cannot make the half triplets heavier then quarter triplets, because then the third quarter triplet would be heavier than the second (because it will be treated like a light half-triplet). But this is not what we want. The light triplets should all be equally light.


Title: Re: Sixteenth swing
Post by: bvdp on October 03, 2010, 04:43:37 PM

I assume you're NOT talking about MMA issue here :) But, like I said before, in MMA the simple solution is to use more tracks.

I think I see what your talking about and it's probably much like the classic problem one encounters when doing string sections: Don't cross over in runs ... if one fiddle is going up a scale and the other is going down you get an "interesting" effect when they cross ....


Title: Re: Sixteenth swing
Post by: bvdp on October 03, 2010, 11:10:59 PM
I've been playing with the swing code today.

First off, and this should not effect anyone but me, I've done some reorg so that all the swing stuff is now in one module.

Next, the accent code has been added. So, Accent=110,90 works. Makes a huge difference.

I don't feel good about permitting 16ths and/or 4ths as the swing. It just doesn't feel right. And, frankly, if I saw the notation "Swing" or even "Swing 16ths" at the top of a sheet of music with a bunch of 16ths in it I'm not sure what  I'd do. Plus, I'm not convinced that it'll fix the original problem in this thread....

However, I have an idea. Would a DELAY be useful. I'm thinking of an additional option:

    Delay=x1,x1

Which would default to 0,0. But, using this one could push (or advance) either or both of the on times.

Comments ... before I post the next beta please!


Title: Re: Sixteenth swing
Post by: drautzburg on October 05, 2010, 07:18:05 PM
Seems like nobody wants to jump in ...

I don't quite get what "Delay x,y" is supposed to do. Delaying 8th (at least the second of a pair) is what traditional swing mode already does. How would that apply to 16ths?

I still owe you an example how this sounds. I could take a piece which has straight 16th and then add a little time to the even ones. Is there a way I can do this with some sort of variable, so I don't have to edit the whole piece over and over. You know something like

x=0.1

Begin Bass-bridge
      Voice ElectricBass
      Octave 3
      Sequence {1 4 1 100; 1.75+x 4 1 80; 3.5 16 1 100;}
End


Title: Re: Sixteenth swing
Post by: kara on October 05, 2010, 07:39:52 PM
Yes you can Drautzburg

With a Set command

Look in the Fine Manual for Variables, Conditionals and Jumps

k


Title: Re: Sixteenth swing
Post by: bvdp on October 05, 2010, 09:11:00 PM

I don't quite get what "Delay x,y" is supposed to do. Delaying 8th (at least the second of a pair) is what traditional swing mode already does. How would that apply to 16ths?


The delay factor is actually quite cool :)

Swingmode effects successive 8th notes. And 2 8ths (assuming that the first one is on-the-beat) become a quarter-note triplet and an eight-note triplet ... the 2 add up to be a quarter.

Now, with accent you can emphasize the first or second. It's natural to have the 1st a tad louder, so "Accent=100,90" or "Accent=110,100" will do that trick.

Delay is mostly useful in delaying the first note. Gives the effect of a musician playing a little bit behind the beat. Listen to some Miles Davis to hear this. It's very little delay.

So, "Delay=5,0" will push up the first note by 5 midi ticks; the 2nd note will be played right on the beat calculated as a quarter-triplet after the beat. Of course, that can be delayed as well. (To be totally cool you could, of course, use negative values for both and you'll never figure out where you are ...)

If you are setting up times using notation like {1.05 4 80; 1.66 8 80; ... } then SwingMode has no effect at all and you'll not have to worry about Delay or Accent ... mind you, there is a Track Accent command that lets you (de)emph notes on certain offsets.

I'll be getting a new devl version up later this week. Promise :)


Title: Re: Sixteenth swing
Post by: drautzburg on October 07, 2010, 07:54:07 PM
Here is finally an example what it would sound like. It was made using a variable S and lines like

$( 4.75 + $S ) 16 3 80;

A true sixteenth triplet would require an additional delay of 0.08 of the second sixteenth. In the example there are three simple short pieces with

(1) delay = 0.08 (triplets)
(2) delay = 0.00 (straight)
(3) delay = 0.04

The first one does not sound good to my ears. The second is straight sixteenths and the third is the effect I am going for.

Frankly I am a little underwhelmed, but maybe the pieces are not that great.


Title: Re: Sixteenth swing
Post by: bvdp on October 08, 2010, 03:15:34 AM
Here is finally an example what it would sound like. It was made using a variable S and lines like

$( 4.75 + $S ) 16 3 80;


Yes, you have to resort to $() for this since you can't contat. offsets (you can concat note durations). However, and sorry for not mentioning it before ... but much easier is to use the shift modifier:

    4.75 16 80 Shift .04

or if you want to use a variable:  4.75 16 80 Shift $s

Not sure what you are doing in the example ... if this is a drum beat you have too many args, but I'm sure you just typed too fast :)

Quote

A true sixteenth triplet would require an additional delay of 0.08 of the second sixteenth. In the example there are three simple short pieces with


I listened, quickly, to the example. I *think* I see what you're getting to. Just a few minor adjustments and I think you'll be there.

BTW, the new swingmode code probably will not help you much :)



Title: Re: Sixteenth swing
Post by: drautzburg on October 08, 2010, 05:28:03 AM

Yes, you have to resort to $() for this since you can't contat. offsets (you can concat note durations). However, and sorry for not mentioning it before ... but much easier is to use the shift modifier:

    4.75 16 80 Shift .04

or if you want to use a variable:  4.75 16 80 Shift $s

Not sure what you are doing in the example ... if this is a drum beat you have too many args, but I'm sure you just typed too fast :)


Thanks for the Shift $s hint.

The example line was a bass track. In fact *all* tracks have been adjusted to delay the even sixteenths.  Doing the same thing for eights can be done with a single swing-mode setting, but for sixteenths it requires a lot of typing and looks ugly, which is why I was looking for sixteenth-swing in the first place.


Title: Re: Sixteenth swing
Post by: bvdp on October 08, 2010, 04:33:36 PM
Watch this space for an announcement later today or tomorrow ... I've got a few clean up things to do and then I'll put up another beta. I'm wondering if the 16th swing will work for you needs ... so let me know.

Best,