Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER General Discussion Forum

Reply
 
Thread Tools Display Modes
Old 03-03-2019, 05:11 PM   #81
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Thanks for the feedback it's great to hear someone finds it useful !

It's suppose to be a beta test but I haven't got much feedback at all so I lost interest in it as I did'nt know if anyone was using it or not.
Yes that's in the to do list, that just needs adding into the Script: ReaTrak create midi chords from region chord name.lua I will have a look at it and Script: ReaTrak snap midi takes to chords.lua I think it needs the slash also.



For now you can save the chords
change the slash chords to normal
create the midi chord track
add the root notes manually
load the original chords
MusoBob is offline   Reply With Quote
Old 03-03-2019, 10:28 PM   #82
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Try this and let me know
http://reatrak.com/downloads/ReaTrak...chord-name.zip
Just put it in Scripts/ReaTrak replacing the existing file.
** some of the slash notes could move up an octave depending on the chord root, I will work out a way to do that.
EDIT: this should fix it, note1 is the root of the chord
octave = note1 - slashnote
if octave > 12 then slashnote = slashnote + 12 end



...

Last edited by MusoBob; 03-03-2019 at 11:41 PM.
MusoBob is offline   Reply With Quote
Old 03-04-2019, 02:44 AM   #83
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

For Script: ReaTrak snap midi takes to chords.lua
It converts the chord name into note intervals Major chord = 0,4,7
then into a Reascale 100030050000 that the existing midi notes that start in that chord region are then snapped to.
So I just need to work out how to insert the the slash root into the Reascale.
Will have a look tomorrow when the brain is in gear.
MusoBob is offline   Reply With Quote
Old 03-04-2019, 05:21 AM   #84
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Thanks a lot Musobob, you're faster than light !

I will test this tonight and report.
Also, even though I've got two young children and a full time job - that is to say I don't even have time to sleep steadily - I'll do my best to help you beta-test this astonishing add-on (calling it a script does not justice neither to the power potential of it nor to the insane amount of functions available).

As for the octave range issue you highlight, I'm no coder but I can think out loud if that's of any help :

Let's add a bass note to your CMaj example, a C/F.
Could it be solved with a lazy "post-processing-inversion" approach ?
Something like :
- C/F = C + extra tone = 0,4,5,7
- Reascale = 100034500000
- Then transpose one octave lower the extra note, in this case, the fourth/eleventh ?
Lorbakounet is offline   Reply With Quote
Old 03-04-2019, 05:56 AM   #85
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

I'm just realizing this approach would remove the slash tone from the upper structure if it was solely transposed - meaning a C/G would result in g-c-e instead of g-c-e-g.
The tone should be both duplicated AND transposed below.
That's a bit of a hassle... But maybe it's not necessary, in that I suppose the main usage of a chord track function is to remap notes on the fly while (re)harmonizing a track, so having a note doubled up is more a formal thing than a useful thing.
Lorbakounet is offline   Reply With Quote
Old 03-04-2019, 10:20 AM   #86
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Just tested the updated "ReaTrak-create-midi-chords-from-region-chord-name", and it works ! Thanks a lot Muso.

However, another issue came up (I can't say if it was there with the former version of the script). With a dm7b5 chord, the root note became the 7th (C) and was transposed several occtaves below. A Cm69 also made some trouble with an alien tone in root position (a C# in our case) Have a look :

Lorbakounet is offline   Reply With Quote
Old 03-04-2019, 02:06 PM   #87
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Try this:
http://reatrak.com/downloads/ReaTrak...chord-name.zip
Also added ignore region with @ as prefix.


Last edited by MusoBob; 03-04-2019 at 03:16 PM.
MusoBob is offline   Reply With Quote
Old 03-04-2019, 04:35 PM   #88
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Thanks Muso, another problem solved.
Since I'm now your de-facto beta-tester, allow me to report some other tone mapping issues
I'll try to do the same for the other midi-related functions at least.

I tried some complex chords, and more than 80% went fine.
In the gif below you'll notice issues with C13b9, C13#5#11, Cmaj7add13, C7sus#5#9 respectively. Also This is not an extensive test.

Lorbakounet is offline   Reply With Quote
Old 03-04-2019, 05:42 PM   #89
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

While I'm at it, you've been pretty extensive in your chord database, going as far as referencing ultra exotic chords, C13susb9#11 or the like !

The only addition I can think of would be the quartal chord.

This one as you may know is simply 3 stacked fourths (a quartal C would be c-f-Bb). I feel its inherent simplicity makes it a more often used chord than ultra-complex structures. Well, at least in Jazz and probably contemporary music. It's sometimes notated as Q4 or simply 4 (a quartal F# would be F#Q4 or F#4).
It's not to be confused with the "so what" chord which is just an inversion of a min11 chord, which means it's already there in reatrack !
A sibling chord would be the Q5, which is, you've already guessed, a stack of 3 fifhts.


Other than that, I've been testing Half of Reatrack midi actions and so far so good !
It only raised one question:
is there a reason why Transpose Chord Selection and Transpose MIDI Chord Region aren't merged ? Especially since there is an "Ignore Region" function in case one wants to leave some notes untouched ?
Lorbakounet is offline   Reply With Quote
Old 03-04-2019, 08:31 PM   #90
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Thanks for your help it's much appreciated.

"Transpose Chord Selection and Transpose MIDI Chord Region"
One should be for audio and the other midi, is that you mean ?
and I will have to check those 2 as they may need the ignore @ region bit ?

EDIT: yes know what you mean now, It's all coming back to me, I just thought if you
had more midi tracks it's best to do them manually, and transpose Reaper regions manually ???
Maybe have a global Transpose ?

Yea I added Biab chords also as you can import Biab songs into ReaTrak.

Edit this > Script: ReaTrak create midi chords from region chord name.lua
You can add or correct any you like and I will update it,
just copy a line then insert it under and edit it to add a new chord,
note1 is already set as the chord root so it's just note2 and up you need to add.

This is where the chord list start in the script
Code:
  if string.find(",Maj,M,", ","..chord..",", 1, true) then note2=4  note3=7 end      
  if string.find(",m,min,", ","..chord..",", 1, true) then note2=3  note3=7 end      
  if string.find(",dim,m-5,mb5,m(b5),0,", ","..chord..",", 1, true)      then note2=3  note3=6 end   
  if string.find(",aug,+,+5,(#5),", ","..chord..",", 1, true) then note2=4  note3=8 end   
  if string.find(",-5,(b5),", ","..chord..",", 1, true) then note2=4  note3=6 end   
  if string.find(",sus2,", ","..chord..",", 1, true) then note2=2  note3=7 end   
  if string.find(",sus4,sus,(sus4),", ","..chord..",", 1, true)      then note2=5  note3=7 end   
  if string.find(",5,", ","..chord..",", 1, true) then note2=7 end   
  if string.find(",5add7,5/7,", ","..chord..",", 1, true) then note2=7  note3=10 end   
  if string.find(",add2,(add2),", ","..chord..",", 1, true) then note2=2  note3=4  note4=7 end   
  if string.find(",add4,(add4),", ","..chord..",", 1, true) then note2=4  note3=5  note4=7 end   
  if string.find(",madd4,m(add4),", ","..chord..",", 1, true) then note2=3  note3=5  note4=7 end   
  if string.find(",11,", ","..chord..",", 1, true) then note2=4  note3=7  note4=10  note5=14  note6=17 end  
  if string.find(",11sus4,", ","..chord..",", 1, true) then note2=5  note3=7  note4=10  note5=14  note6=17 end  
  if string.find(",m11,min11,-11,", ","..chord..",", 1, true) then note2=3  note3=7  note4=10  note5=14  note6=17 end  
  if string.find(",Maj11,maj11,M11,Maj7(add11),M7(add11),", ","..chord..",", 1, true)    then note2=4  note3=7  note4=11  note5=14  note6=17 end     
  if string.find(",mMaj11,minmaj11,mM11,", ","..chord..",", 1, true)      then note2=3  note3=7  note4=11  note5=14  note6=17 end  
  if string.find(",aug11,9+11,9aug11,", ","..chord..",", 1, true)      then note2=4  note3=7  note4=10  note5=14  note6=18 end 

.....
 .....
 ..... 

too many to add all here

Last edited by MusoBob; 03-04-2019 at 08:47 PM.
MusoBob is offline   Reply With Quote
Old 03-04-2019, 08:55 PM   #91
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

If you don't mind you can check out/add the chords in
Script: ReaTrak snap midi takes to chords.lua

Code:
if string.find(",Maj,M,", ","..chordtype..",", 1, true) then notenums = "0,4,7" end              
if string.find(",m,min,", ","..chordtype..",", 1, true) then notenums = "0,3,7" end            
if string.find(",dim,m-5,mb5,m(b5),0,", ","..chordtype..",", 1, true) then notenums = "0,3,6" end                
if string.find(",aug,+,+5,(#5),", ","..chordtype..",", 1, true) then notenums = "0,4,8" end                
if string.find(",-5,(b5),", ","..chordtype..",", 1, true) then notenums = "0,4,6" end                
if string.find(",sus2,", ","..chordtype..",", 1, true) then notenums = "0,2,7" end                
if string.find(",sus4,sus,(sus4),", ","..chordtype..",", 1, true) then notenums = "0,5,7" end                
if string.find(",5,", ","..chordtype..",", 1, true) then notenums = "0,7" end                  
if string.find(",5add7,5/7,", ","..chordtype..",", 1, true) then notenums = "0,7,10" end               
if string.find(",add2,(add2),", ","..chordtype..",", 1, true) then notenums = "0,2,4,7" end              
if string.find(",add4,(add4),", ","..chordtype..",", 1, true) then notenums = "0,4,5,7" end              
if string.find(",madd4,m(add4),", ","..chordtype..",", 1, true) then notenums = "0,3,5,7" end              
if string.find(",11,", ","..chordtype..",", 1, true) then notenums = "0,4,7,10,14,17" end       
if string.find(",11sus4,", ","..chordtype..",", 1, true) then notenums = "0,5,7,10,14,17" end  



.......
MusoBob is offline   Reply With Quote
Old 03-05-2019, 01:45 AM   #92
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Great !
I'll add some and fix the 13b9 and others if any.
Are those the only 2 lua files where chords are defined ?
Also, I know it's a beta and all but wouldn't it be more efficient if there was a global call to a definition file (the equivalent of a "include chords.h" if it was programmed in C - yeah, I did some coding 20 years ago ).

Also, if I add chords in those 2 lua files, are they going to appear in the GUI chord section ?
Lorbakounet is offline   Reply With Quote
Old 03-05-2019, 03:47 AM   #93
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

I think that's it just those 2 will have a look tomorrow.

In the chord scale tab I got up to Dorian I just need to add the rest.
Same in the Circle of Fifths there's still some to be added, use ReaTrak Circle of Fifths Setup.lua. (don't worry too much about them unless you are keen)


In the ReaTrak gui.lua they would need to be added to the functions & buttons.
This is the function for 69 chord and below the Functions in the script are the Buttons for that group (same with all groups)

Code:
function btn_click_69()
    chord_type = "69"
    chord_input ()
      end

5 is tab, 16 is x pos, 130 is y pos, 85 length, 20 height of button
Code:
GUI.New("chord_Maj69",      "Button",           5, 16+x5, 130+y5, 85, 20, "69", btn_click_69)
MusoBob is offline   Reply With Quote
Old 03-05-2019, 04:22 AM   #94
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Yes I thought about a common chord db.
I still need to add all the chord aliases to the ReaTrak move and match.lua

but it's just for matching the pre recorded audio instruments tracks with the chord region names.
Also need to work out substitutions so if the chord the user enters is not available in the source tracks it will substitute one.
MusoBob is offline   Reply With Quote
Old 03-05-2019, 04:28 AM   #95
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Thanks a lot Muso, I'll try to check this. I'm already "fixing" some chords in the lua files, although I realize the former issue I raised with the 4th instead of the 5th in the 13b9 chord might not be an error per-se but a choice of yours, as the fifth was also there, I just didn't notice it.

But, and that's a big but, we may get to the point of a debate

Indeed you chose to add the fourth in all chords with a 13 extension, which is perfectly consistent with the fact that you also added the ninth, and of course, the seventh.

But although it's consistent and somewhat "standard" with minor chords, the 4th is considered in many musical theories (especially jazz and other contemporary theories) an avoid-note in major chords unless stipulated otherwise, and a no-go in dominant chords (if the 4th is present, then it's viewed as a sus chord, because even with the fifth in the stack, it's going to have a "sus-like" open-sound).

The same more or less applies to major chords where the 4th/11th also subtly changes the function of the chord because of this openness which sounds like a "musical question mark", it brings uncertainty as to the real character of the chord (even if the major 3rd is obviously the main contributor to the characterization of the chord, the 4th kinda conflicts with it).

But, that's my musical background and I clearly may have a strong bias, so what I say is certainly not to be taken as a gospel.
Also, this choice of yours has an advantage in that it's a convenient way to treat a chord/region as a chord-scale system, providing the script with more notes to process while reharmonizing/remapping musical material.

So, I'm just gonna focus on fixing the missing tones in the script and upload it for you and the world and make a customized lua with avoided 4th for me and myself
Lorbakounet is offline   Reply With Quote
Old 03-05-2019, 03:54 PM   #96
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Hi Musobob,

Attached to this post, you'll find my first small contribution to Reatrak.
It's mainly a few fixes for some chord tones (changes made within both lua scripts you indicated), plus an updated GUI lua file with two extra chords.
What I did :

  • 7b5b13 - fixed missing m7
  • 7#9#11b13 - fixed missing #11
  • 7#11 - fixed missing m7
  • 9susb5 - fixed wrong extra tones (13,11)
  • 9susb5b13 - corrected string from "(…)sus5" to "(…)susb5"
  • 9sus#11 - fixed missing #11
  • 9susb5#9 - b5 was #5, fixed missing #9
  • 9sus#5#11 - fixed missing tones (all except the fifth)
  • 5 and 5/7 - Added octave doubled above
  • maug - fixed missing #5 and m7
  • quartal - Created Stacked Fourth Chord (quartal)
  • sowhat - Created The "So What" Chord (3 stacked fourth + a major third)
  • Those last two chords are referenced in the GUI (I've added buttons and related functions)

Now for something completely different, another bug report.
When writing a midi chord track from regions made with "New Chord at Cursor" function, every other chord is void/blank. It doesn't happen when regions are created using "New chord in selection" function, which is the function I've always used until this evening. See below for this strange output :

Attached Files
File Type: zip ReaTrak-Lorbakounet-small-ajustments.zip (29.5 KB, 219 views)

Last edited by Lorbakounet; 03-05-2019 at 04:00 PM.
Lorbakounet is offline   Reply With Quote
Old 03-05-2019, 05:39 PM   #97
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Thanks for that ! will update and upload.

I think this may be the issue:
My region area was bigger so I could see what was happening,
the regions were overlapping when New Chord at Cursor was used so i added

Script: ReaTrak Snap all regions to grid.eel on the end

Custom: Reatrak insert one measure region
Time selection: Set start point
Move edit cursor forward one measure
Time selection: Set end point
Markers: Insert region from time selection
Time selection: Remove time selection
Move edit cursor back one measure
ReaTrak Snap all regions to grid.eel


just drag the top of the first track down to make the region lanes height bigger and you will see what it's doing.
You might be able to make a better action without having to snap
but for now this works thanks to X-Raym for the snap all regions to grid.




...
MusoBob is offline   Reply With Quote
Old 03-07-2019, 09:08 AM   #98
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 753
Default

Hi, Musobob.
I remember when you first introduced this toolset.
And I was glad to see it, but also overwhelmed by the amount of buttons in a toolbar.
I felt that I'd let this mature some and hopefully, Reaper or a fellow scripter would provide a more ergonomic interface for it. Looking at Lorbakounet's post, which seems to be using Lokasenna's GUI library, as well as his continued testing, makes me feel confident that this toolset is going in a good direction, and maybe the workflow actually is easier to adopt as well a logically sound.

I now will download it as well and start my own testing.

Any chance that this could be added to a ReaPack?
Ozman is offline   Reply With Quote
Old 03-07-2019, 01:13 PM   #99
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

It also has a compact menu if you just want to use that, the GUI is sectioned out and easy to follow.
Yes, eventually it will make it's way to ReaPack but at the moment it's still beta and some of the scripts are a bit rough and need cleaning up.
I will upload another update soon with some added features and fixes.





Last edited by MusoBob; 03-07-2019 at 04:01 PM.
MusoBob is offline   Reply With Quote
Old 03-07-2019, 04:45 PM   #100
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

You also have Large Medium & Small buttons and the same for MIDI only panels.
You can create your own custom button menu to suit your needs.




MusoBob is offline   Reply With Quote
Old 03-07-2019, 04:49 PM   #101
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Oh yes, by the way and about icons, UI and all, just so you know, I'm also working on a set of more conventional icons for reatrak. There's so many functions it's probably gonna take a while, but well, that's something at least

Lorbakounet is offline   Reply With Quote
Old 03-08-2019, 02:53 AM   #102
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Thanks !
I was using a web button maker and joined them with Irfanview > Image > Create panorama image..
but I just found a Simple Button Maker for Reaper https://forum.cockos.com/showthread.php?t=120529 for Win Lin Mac

you can use text, graphics or text and graphics, just drag n drop the normal, mouse over and mouse down images in size it up and save.
MusoBob is offline   Reply With Quote
Old 03-08-2019, 05:46 AM   #103
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Thanks for the community software link Musobob. I've made custome actions in Photoshop but this utility might improve my workflow, will check !
Lorbakounet is offline   Reply With Quote
Old 03-08-2019, 02:49 PM   #104
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Also here are the section hex colors if you need them, you can use an online HEX to RGB converter

E41A27 = R: 228 G: 26 B: 39


Code:
  --Color code table Windows                 R  G  B
  anywhere_color = 19340004 -----------------E4 1A 27 the color to signify use anywhere 0x01271AE4
  count_in_color = 29393151 -----------------FF 80 C0
  intro_post_fill_color = 28184951 ----------77 11 AE
  intro_color = 31987359 --------------------9F 16 E8
  intro_fill_color = 32342199 ---------------B7 80 ED
  verse_post_fill_color = 28190481 ----------11 27 AE
  verse_color = 32208439 --------------------37 76 EB
  verse_fill_color = 32620145 ---------------71 BE F1
  verse_ending_color = 32886935 -------------97 D0 FE
  bridge_post_fill_color = 18115022 ---------CE 69 14
  bridge_color = 19957226 -------------------EA 85 30
  bridge_fill_color = 23373039 --------------EF A4 64
  pre_chorus_post_fill_color = 18133966 -----CE B3 14
  pre_chorus_color = 19976426 ---------------EA D0 30
  pre_chorus_fill_color = 26732532 ----------F4 E7 97
  chorus_post_fill_color = 19362827 ---------0B 74 27
  chorus_color = 20688401 -------------------11 AE 3B
  chorus_fill_color = 24898896 --------------50 ED 7B
  chorus_ending_color = 28769950 ------------9E FE B6
  drum_riff_color = 17897331 ----------------73 17 11
  hold_color = 29343679 ---------------------BF BF BF
  shot_color = 25132927 ---------------------7F 7F 7F
  rest_color = 16777216 ---------------------00 00 00

  --Color code table if NOT Windows (ie MacOS or Linux)
  if os_type ~= "Win32" and os_type ~= "Win64" then
    --color code table Mac                          R  G  B
    anywhere_color = 31726119 ---------------------E4 1A 27 the color to signify use anywhere 0x01271AE4
    count_in_color = 33521856 ---------------------FF 80 C0
    intro_post_fill_color = 24580526 --------------77 11 AE
    intro_color = 27203304 ------------------------9F 16 E8
    intro_fill_color = 28803309 -------------------B7 80 ED
    verse_post_fill_color = 17901486 --------------11 27 AE
    verse_color = 20412139 ------------------------37 76 EB
    verse_fill_color = 24231665 -------------------71 BE F1
    verse_ending_color = 26726654 -----------------97 D0 FE
    bridge_post_fill_color = 30304532 -------------CE 69 14
    bridge_color = 32146736 -----------------------EA 85 30
    bridge_fill_color = 32482404 ------------------EF A4 64
    pre_chorus_post_fill_color = 30323476 ---------CE B3 14
    pre_chorus_color = 32165936 -------------------EA D0 30
    pre_chorus_fill_color = 32827287 --------------F4 E7 97
    chorus_post_fill_color = 17527847 -------------0B 74 27
    chorus_color = 17935931 -----------------------11 AE 3B
    chorus_fill_color = 22080891 ------------------50 ED 7B
    chorus_ending_color = 27197110 ----------------9E FE B6
    drum_riff_color = 24319761 --------------------73 17 11
    hold_color = 29343679 -------------------------BF BF BF
    shot_color = 25132927 -------------------------7F 7F 7F
    rest_color = 16777216 -------------------------00 00 00
MusoBob is offline   Reply With Quote
Old 03-08-2019, 04:13 PM   #105
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

If anyone needs to translate buttons Button Shop 4 is free
https://www.softpedia.com/get/Intern...ker-Aqua.shtml
It will create the three state buttons or icons, check "Use Image Button" to use icon only.
You can add new images or icons to
User\Documents\Button Shop 4
just drag n drop the normal, mouse over and mouse down images in size it up and save in Simple Button Maker for Reaper https://forum.cockos.com/showthread.php?t=120529

MusoBob is offline   Reply With Quote
Old 03-08-2019, 09:43 PM   #106
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

ReaTrak Studio beta test ReaTrak_beta.37.zip
See manual install guide on first post
or quick guide here EZ Install Guide
Right click Save Link\Target As
ReaTrak_beta.37.ReaperConfigZip

Will implement tempo mapping soon so you can ReaTrak instruments and drums to a tempo map.

beta 37
Fixed adding extra chords on the end > ReaTrak insert musicxml chords in selected midi track.lua
ReaTrak set item bpm to fit tempo map.lua (added but no button)
Fixed New Chord at Cusor snaps to grid Custom: Reatrak insert one measure region
Lorbakounet fixed and added to ReaTrak create midi chords from region chord name.lua
ReaTrak snap midi takes to chords.lua ReaTrak gui.lua :
  • 7b5b13 - fixed missing m7
  • 7#9#11b13 - fixed missing #11
  • 7#11 - fixed missing m7
  • 9susb5 - fixed wrong extra tones (13,11)
  • 9susb5b13 - corrected string from "(…)sus5" to "(…)susb5"
  • 9sus#11 - fixed missing #11
  • 9susb5#9 - b5 was #5, fixed missing #9
  • 9sus#5#11 - fixed missing tones (all except the fifth)
  • 5 and 5/7 - Added octave doubled above
  • maug - fixed missing #5 and m7
  • quartal - Created Stacked Fourth Chord (quartal)
  • sowhat - Created The "So What" Chord (3 stacked fourth + a major third)
  • Those last two chords are referenced in the GUI (I've added buttons and related functions)
MusoBob is offline   Reply With Quote
Old 03-09-2019, 03:26 AM   #107
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Thanks for the update Musobob as well as for the links to the various buttons editors.
I'll try them out but will stick to a conventional button size so that in the end, Reaktrak blends itself within reaper (it's not an injunction to do so, it's just what I'm willing to do on my side).

A question for you, it seems to me chords and scales are generated in a procedural manner in Lokasenna's theory helper lua add-on, have you thought about this instead of manually populate the various scales (which amounts to an overwhelming effort, but also, perhaps, unnecessary)?
Lorbakounet is offline   Reply With Quote
Old 03-09-2019, 04:03 PM   #108
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Yea, I just thought that Button Shop would be good if anyone needs to translate to another language.
I asked them in the French forum if they think ReaTrak should be translated in the buttons, GUI and mini menu.

I was also looking at
Reaper Guitar Midi Tool
Reaper ChordGun
with Lokasenna's theory helper do you mean modify that to enter the region at the same time ?
The Midi Chord Track function was mainly to drive a virtual instrument that has chord input like MusicLab's RealGuitars, Kontakt Akkord,
Sunburst Electric and Session Acoustics, JS Midi Strum and lots of other that use chord input.
I was trying to get around to modifying JS MIDI Strum and JS MegaBaby to work as one so users can create strum/picking patterns and upload to share.
The midi chord track can also be imported into EZkeys to give EZkeys the chords then you can replace it with any midi phrases.
MusoBob is offline   Reply With Quote
Old 03-09-2019, 04:16 PM   #109
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Hey musobob, didn't know you were fench native speaker, fallait le dire plus tôt
So whenever I have specific questions, I'd PM you in french from now on
Lorbakounet is offline   Reply With Quote
Old 03-09-2019, 06:49 PM   #110
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Yes my French is very good, good as Google Translate can do
MusoBob is offline   Reply With Quote
Old 03-10-2019, 07:55 AM   #111
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

Hi all, just finished a standard 32x32 icons set for ReaTrak Midi functions.

I focused more specifically on the edit functions, so, 90% of the midi edit chords "worflow" is covered.

I didn't make icons for the arrangement/intro/verse etc. Those functions are still accessible through the Reatrak GUI, which I also made an icon of, and this conveniently serves me as a "wild card" for my laziness Once again, at least that's something !

So, as far as Midi chords workflow is concerned, users can have at their disposal a small toolbar for their recurrent operations and a large one (through the GUI) for more advanced or more explicit functions.

I'll try to make another set for the audio part of reatrak once I get used to it.

The icon set as well as the MenuReaperSet is attached to this post. Hope this will be useful to some !



Edit : Updated GIF and attached zip with some fixed icons.
Attached Files
File Type: zip toolbar_icons-V2.zip (68.0 KB, 206 views)

Last edited by Lorbakounet; 03-10-2019 at 02:18 PM.
Lorbakounet is offline   Reply With Quote
Old 03-10-2019, 09:11 AM   #112
Lokasenna
Human being with feelings
 
Lokasenna's Avatar
 
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
Default

Quote:
Originally Posted by Lorbakounet View Post
A question for you, it seems to me chords and scales are generated in a procedural manner in Lokasenna's theory helper lua add-on, have you thought about this instead of manually populate the various scales (which amounts to an overwhelming effort, but also, perhaps, unnecessary)?
To clarify, Theory Helper has a very small set of chords hardcoded:

Code:
local chords_arr = { 
	{
		-- Intervals
		A_min2 =	{0, 1},
		B_maj2 =	{0, 2},
		C_min3 =	{0, 3},
		D_maj3 =	{0, 4},
		E_P4 =		{0, 5},
		F_dim5 =	{0, 6},
		G_P5 =		{0, 7},
		H_min6 =	{0, 8},
		I_maj6 =	{0, 9},
		J_min7 =	{0, 10},
		K_maj7 =	{0, 11},
		L_oct =		{0, 12},
	},
	{
		-- Basic
		A_maj =		{0, 4, 7},
		B_maj7 =	{0, 4, 7, 11},
		C_min =		{0, 3, 7},
		D_min7 =	{0, 3, 7, 10},
		E__7 =		{0, 4, 7, 10},
		F_dim =		{0, 3, 6},
		G_m7b5 =	{0, 3, 6, 10},
		
	},
	{
		-- More
		A_maj = 	{0, 4, 7},
		B_maj7 = 	{0, 4, 7, 11},
		C_min =		{0, 3, 7},
		D_min7 =	{0, 3, 7, 10},
		E__7 =		{0, 4, 7, 10},		
		F_dim =		{0, 3, 6},
		G_dim7 =	{0, 3, 6, 9},		
		H_m7b5 = 	{0, 3, 6, 10},		
		I_aug = 	{0, 4, 8},		
		J_sus2 =	{0, 2, 7},
		K_sus4 =	{0, 5, 7},		
		L_sus9 =	{0, 7, 14},
		M_add9 = 	{0, 4, 7, 14},
	},
}
The scales are read from the current .ReaScale loaded in Reaper's MIDI editor. ReaScale files can have chords too, so they could probably be parsed from there as well.
__________________
I'm no longer using Reaper or working on scripts for it. Sorry. :(
Default 5.0 Nitpicky Edition / GUI library for Lua scripts / Theory Helper / Radial Menu / Donate
Lokasenna is offline   Reply With Quote
Old 03-10-2019, 09:23 AM   #113
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 133
Default

No actually I was referring to a part of one the scales functions within reatrack where there's a database of scales and modes which needs to be manually populated, whatever the root is.
Something like C lydian = C, D, E, F# etc. D lydian = D, E, F#, G# etc. which can be discouraging from a scripter point of view since it could be automated with the proper transformation algorithm I presume. But I'm on the phone currently, I'll find the code extract when I'm on my workstation to further clarify myself.

Edit :
If you take a look at 'reatrack gui.lua', there's a chord/scale database which needs to be completed. But since there's so many scales and modes in the first place, we'd better prepare for more exotic scale/chords system, so I was wondering how to find the proper formula to write a code which automatically outputs every 3 and 4 tones chords per degree with a single reascale input (via defining generic intervals for scales and chords as you did and then apply it to deduct each degree 3 and 4 tones chord ?) , rather than cooking them by hand. Here's an actual snippet, you'll l understand better


Quote:


--Chord Input
--local number = GUI.Val("key_choice")

CMajor = {"C", "Dm", "Em", "F", "G", "Am", "Bdim", "CMaj7", "Dm7", "Em7", "FMaj7", "G7", "Am7", "Bm7b5"}
CsMajor = {"C#", "Ebm", "Fm", "F#", "G#", "A#m", "Cdim", "C#Maj7", "D#m7", "Fm7", "F#Maj7", "G#7", "A#m7", "Cm7b5"}
DbMajor = {"Db", " Ebm", " Fm", " Gb", "Ab", "Bbm", "Cdim", "DbMaj7", "Ebm7", "Fm7", "GbMaj7", "Ab7", " Bbm7", "Cm7b5"}
DMajor = {"D",



Last edited by Lorbakounet; 03-10-2019 at 02:21 PM.
Lorbakounet is offline   Reply With Quote
Old 03-10-2019, 06:59 PM   #114
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Thanks for the icon set, they are very good at visually representing the function.
With the Chord Scales I was never good at mathematical algorithms, that's why I use a lot of "if thens" lol
I got the Chord Scales from RapidComposer


MusoBob is offline   Reply With Quote
Old 03-10-2019, 08:54 PM   #115
Lokasenna
Human being with feelings
 
Lokasenna's Avatar
 
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
Default

I may have asked this before, ages ago - is there a reason you have the scales hardcoded in like that rather than parsing a ReaScale file?
__________________
I'm no longer using Reaper or working on scripts for it. Sorry. :(
Default 5.0 Nitpicky Edition / GUI library for Lua scripts / Theory Helper / Radial Menu / Donate
Lokasenna is offline   Reply With Quote
Old 03-10-2019, 09:55 PM   #116
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Yes, I have a deer with no eyes, I would rather pay you to do it as I seem to have to relearn it all every time I go to do something.
I go back and look at a script I made and think WTF who did this, I don't remember that ! lol
It's all your fault as I bought your How To Reascript Guides that got me into it all ! lol
Maybe some more omega-3, ginkgo biloba, caffeine ??
MusoBob is offline   Reply With Quote
Old 03-13-2019, 08:39 AM   #117
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 753
Default

Yes, please have it read from the chosen reascale.
This way, there would be no need to define scales in multiple places, and I've always use the ZD Ultimate scale set. This with Theory Helper would be a God-send for writing in Reaper. I dream of that day, that 3rd party tools like (Rapidcomposer) will not be necessary, all the harmonizing of tracks can be done right in our own MIDI Editor, and updates to audio and midi can be applied to fit chord changes. I am super grateful for the work you're doing here.
Ozman is offline   Reply With Quote
Old 03-13-2019, 11:43 AM   #118
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

I will have to get my head around what you need.
The chord scales tab in the GUI was to give you chords on a particular scale to choose from when entering a progression
same as the RapidComposer screen shot above.
If you can give a scenario what you would like to be able to do, step by step.
With ARA2 if you could access the melodyne notes as you can the Reaper midi notes then you could snap the audio to the chord track.

I just have a feeling that Reaper 6 will have a chord track and all this will have to be modified ??


MusoBob is offline   Reply With Quote
Old 03-15-2019, 04:28 PM   #119
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

MPL has created a great Region Chord window.
If you would like to suggest any improvements or features
https://forum.cockos.com/showthread.php?p=2108170#3



MusoBob is offline   Reply With Quote
Old 03-16-2019, 01:35 AM   #120
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
Default

I can understand how disappointed you must be that so few of us are having a go with this. A TON of work.
Ashamed to admit that I was completely put off by the sheer number of little boxes with actions in them that came up in your original pictures, but its hard to see how you could achieve what you are without them. FWIW you have my respect and support, at least morally!
Well done.
__________________
Ici on parles Franglais
ivansc is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:39 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.