Kara-Moon Forum

Developers & Technology => Musical MIDI Accompaniment (MMA) => Topic started by: vervethe on February 18, 2012, 02:41:30 AM



Title: suggestion,add some features
Post by: vervethe on February 18, 2012, 02:41:30 AM
add some features? :

has a key sig scaletype for aria / scale / bass  track ? :
    keysig A min 0 2 3 5 7 8 10
    aria scaletype KEYSIG
    aria direction 0 -1 +2 rr r rrr 0
    ........

1 2 3 4 5 6 7 based on key sig in solo / melody riff ? :
    C [Dou ReiMi] { 4 1;8 2+;8 3-; }
    ........

add "aria pitch"  in solo / melody riff ? :
    C { 8 +rrrr;8 +1;8 -2;8 +0;8 +rrr;}
    ........

random select beatoffset ? :
    chord riff 1|1.5 4 80; 3|3.5|4 4 80;
    ........

random select riff ? :
    chord riff {1|1.5 4 80; 3|3.5|4 4 80;}|{2|2.5 4 80;}
    aria sequence {1|1.5 4 80; 3|3.5|4 4 80;}|{2|2.5 2 80;}  a1|a2
    ........

pattern rotate operator ? :
    bass define b14 1 4 80; 4 4 80;
    bass define b12 b14 rotate 1
    ........

multi-bar riffs on a single line :
    walk riff {1 4 80; 3 4 80;} {2 4 80;} {2.5 4 80;} w1
    C
    Am
    Dm
    G
    ....

calculate and get new random value at each call time,like:
    random V 80 85 75 70
    random P 2 2.5 4 4.5
    chord riff 1 4 $V ;3 4 $V ; $P 4 $V ;
    ....

define function/macro,get new value at each call time,like:
    set a c g a e
    func ea
        set r $a[0]
        set a $a[-1:10000]  $a[0:-1]
        $r
    endfunc
    solo riff 4 $ea ;8 $ea ; 8 $ea ;4 $ea ;8 $ea ; 8 $ea ;
    ....

make scaleTpye/notelist more powerful and flexible:
    aria scaleTpye  keyANDscale  //intersection
    aria scaleTpye  keyANDchord  //intersection
    aria scaleTpye  keyOrscale  //union
    aria scaleTpye  keyOrchord  //union
    aria scaleTpye 0 2 4 5 7 9 11 8    //custom notelist
    aria scaleTpye key 8    //custom notelist
    aria scaleTpye 0 0 2 4 4 5 7 7 7 9 11 8    //custom notelist with weight
    aria scaleTpye key 0 4 7 7 8    //custom notelist with weight
    ........

add 'elseif' keyword :
    if eq $$kvm 0.1      
        rndset kvm -1 0 1
    elseif eq $$kvm 0.2
        rndset kvm -2 -1 0 1 2
    elseif eq $$kvm 1.1      
        rndset kvm -1 1
    elseif eq $$kvm 2.2
        rndset kvm -2 2
    endif

bug?: 'eq r rr' is true
    set a r
    if eq $a rr
        print eq    // always print eq
    endif

strum direction and strum time of chord track with beat offset on single line:
    chord sequence {1 2 80;3 2 70;} {1 2 80;} {1 2 80;3 2 70;} {3 2 70;}
    chord strum {1 2;3 -3;} {1 -3;} {1 2;3 -3;} {3 2;}
    C
    Am
    Dm
    G
    ........

multi-bar Plectrum capo with beat offset  :
    Plectrum-Strumming capo 5 {4 4;} 2 {4 0;}
    A
    / / / E/G#
    F#m
    / / / A/E
    ........



Title: Re: add some features?
Post by: bvdp on February 18, 2012, 03:11:13 AM
Not sure what you're after.

If you want to have notes from a scale, there is the SCALE track.

Of course, you do (at this time) need to set the scaletype to the correct one (well, the default probably works 99.99% of the time) ... since the scale selected is determined from the chord you should be getting the right notes. Right now the keysig has no effect on this.

So, assume we have scaletype set to the default, and the chord to Am. The notes used would be a,b,c,d,e,f,g. Cm: c;d;eb,f;g;a;b. Etc.

Perhaps you could give me an example of what you would like the output to be. Let's start off with a scale track. It's easier since there's little randominzing there. And what the use of the feature is (are you doing a particular type of music, writing a library file, etc)?

Please let me know.


Title: Re: suggestion,add some features
Post by: vervethe on February 18, 2012, 11:01:06 AM
when notes is based on keysig scale,the melody is pleasant to hear.
main melody of most songs only have notes based on keysig scale rather than scales based on chords.

try:
aria sequence ........
aria direction  ........
C
Am
Dm
G
....
play

and open midi editor,move the notes not in C major scale to pitch based on C major scale
play


Title: Re: suggestion,add some features
Post by: bvdp on February 18, 2012, 05:19:11 PM
So you are suggesting that in an Aria track:

1. Assume keysig has been set to C

2. Aria ScaleType Key

3. Now all the notes generated in an aria are base on a C Maj. scale, regardless of the chord setting.

Should be do-able.

But, will this not sound odd if in the piece we have, for example, a C7th chord (with a Bb) ... in this case the scale would be with a B and the chord with a Bb would be dissonant. Guess that'd be the users problem :)

Another idea might be to add a list of notes to aria  and limit the picking from the list. So, in this case we'd ignore the scaletype completely. Don't know about the syntax off the top of my head, but something like:

    aria Notelist c d e f g b

would limit to those notes.

This might be more useful. You could then have an aria based on only "C E B" or whatever.

Comments welcome.


Title: Re: suggestion,add some features
Post by: bvdp on February 18, 2012, 06:26:15 PM
Well, it was a choice between playing a bit with MMA or shoveling snow. MMA won.

The addition of KEY as a scaletype option to aria was pretty simple and is now working.

I just need to work out the docs a bit. I'm hoping to release a new version of mma this weekend. This will be included.


BTW, what I'm doing is this:

 If the scaletype for aria is "KEY":
   - get the current keysig. If not set, it'll be C Major,
   - create a chord name based on the keysig. It'll be C or Dm, etc.
   - get a list of the scale note associated with that chord. For C, that'd be (0, 2, 3, 5, 7, 8, 10)
   - use that for the notes ...

After we get the list of notes, no other logic needs to change.




Title: Re: suggestion,add some features
Post by: Oren on February 19, 2012, 12:26:23 AM
Well, it was a choice between playing a bit with MMA or shoveling snow. MMA won.
Yeah!(http://www.freesmileys.org/smileys/smiley-bounce015.gif) (http://www.freesmileys.org/smileys.php)


Title: Re: suggestion,add some features
Post by: bvdp on February 19, 2012, 01:33:35 AM
Well, it was a choice between playing a bit with MMA or shoveling snow. MMA won.
Yeah!(http://www.freesmileys.org/smileys/smiley-bounce015.gif) (http://www.freesmileys.org/smileys.php)

Hey, I know where you live. You know NOTHING about shoveling snow :)


Title: Re: suggestion,add some features
Post by: vervethe on February 29, 2012, 02:49:07 PM
when
    aria scaletype key
,the melody feels irrelevant to chord progression.

if notelist of aria / scale / bass  is based on the intersection of keysig and current chord ,or based on the intersection of keysig and current chord-scale,
then the melody feels harmonious to both entire song and chord progression.
what do you think of intersection? :

    aria scaleTpye  keyANDscale  //intersection
    aria scaleTpye  keyANDchord  //intersection
    ....

there are many new suggestions added on topic........


Title: Re: suggestion,add some features
Post by: bvdp on February 29, 2012, 04:30:51 PM
I have no idea what you're getting at here :) Sorry.

All that MMA is doing, as I'm sure you know, is generating a list of notes to select from. These notes can be grabbed from a scale or a chord.

Then, notes are selected from the list in the Direction setting. The duration of the notes is from the Sequence.

So, you want some kind of hybrid note list based on scales and chords? I have no idea right now. You'll have to give me more details.

I'm looking out at the snow coming down, again, so I might be brain dead today :)