Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.63 KB | None | 0 0
  1. ardour {
  2.     ["type"] = "EditorAction",
  3.     name = "Track Stain",
  4.     author = "Nikolaus Gullotta",
  5.     license = "MIT",
  6.     description = [[
  7. Color codes all tracks according to a categorical scheme. This is my personal scheme, but it is very easy to change the color codes below.
  8. ]]
  9. }
  10.  
  11. function factory (unused_params)
  12.     return function ()
  13.    
  14.         local track_table = {}
  15.         local kick_track = {}
  16.         local snare_track = {}
  17.         local hat_track = {}
  18.         local tom_track = {}
  19.         local room_track = {}
  20.         local overhead_track = {}
  21.         local vocal_track = {}
  22.         local bass_track = {}
  23.         local key_track = {}
  24.         local guitar_track = {}
  25.         local string_track = {}
  26.        
  27.         local track_count = 0
  28.         local kick_count = 0
  29.         local snare_count = 0
  30.         local hat_count = 0
  31.         local tom_count = 0
  32.         local room_count = 0
  33.         local overhead_count = 0
  34.         local vocal_count = 0
  35.         local bass_count = 0
  36.         local key_count = 0
  37.         local guitar_count = 0
  38.         local string_count = 0
  39.        
  40.         --if you wanted only what tracks you've selected:
  41.         --local selection = Editor:get_selection()
  42.         --for a_track in selection.tracks:routelist():iter() do
  43.        
  44.         for a_track in Session:get_tracks():iter() do
  45.  
  46.  
  47.             track_table[track_count] = a_track --if you wanted to color every track
  48.            
  49.             if (track_table[track_count]) then
  50.                 track_count = track_count + 1
  51.             end
  52.  
  53.             if string.find (string.lower(a_track:name()), "kick")  then
  54.                 kick_track[kick_count] = a_track
  55.             end
  56.            
  57.             if (kick_track[kick_count]) then --if something has been indexed, increment our counter to avoid duplicates
  58.                 kick_count = kick_count + 1
  59.             end
  60.  
  61.             if string.find (string.lower(a_track:name()), "snare") then
  62.                 snare_track[snare_count] = a_track
  63.             end
  64.  
  65.             if (snare_track[snare_count]) then
  66.                 snare_count = snare_count + 1
  67.             end
  68.            
  69.             if string.find (string.lower(a_track:name()), "hat") then
  70.                 hat_track[hat_count] = a_track
  71.             end
  72.  
  73.             if (hat_track[hat_count]) then
  74.                 hat_count = hat_count + 1
  75.             end
  76.            
  77.             if string.find (string.lower(a_track:name()), "tom") then
  78.                 tom_track[tom_count] = a_track
  79.             end
  80.            
  81.             if (tom_track[tom_count]) then
  82.                 tom_count = tom_count + 1
  83.             end
  84.            
  85.             if string.find (string.lower(a_track:name()), "oh") then
  86.                 overhead_track[overhead_count] = a_track
  87.             end
  88.            
  89.             if (overhead_track[overhead_count]) then
  90.                 overhead_count = overhead_count + 1
  91.             end
  92.            
  93.             if string.find (string.lower(a_track:name()), "room") then
  94.                 room_track[room_count] = a_track
  95.             end
  96.            
  97.             if (room_track[room_count]) then
  98.                 room_count = room_count + 1
  99.             end
  100.            
  101.             if string.find (string.lower(a_track:name()), "vocal") then
  102.                 vocal_track[vocal_count] = a_track
  103.             end
  104.            
  105.             if string.find (string.lower(a_track:name()), "vox") then
  106.                 vocal_track[vocal_count] = a_track
  107.             end
  108.            
  109.             if (vocal_track[vocal_count]) then
  110.                 vocal_count = vocal_count + 1
  111.             end
  112.            
  113.             if string.find (string.lower(a_track:name()), "bass") then
  114.                 bass_track[bass_count] = a_track
  115.             end
  116.            
  117.             if (bass_track[bass_count]) then
  118.                 bass_count = bass_count + 1
  119.             end
  120.            
  121.             if string.find (string.lower(a_track:name()), "keys") then
  122.                 key_track[key_count] = a_track
  123.             end
  124.            
  125.             if string.find (string.lower(a_track:name()), "piano") then
  126.                 key_track[key_count] = a_track
  127.             end
  128.            
  129.             if (key_track[key_count]) then
  130.                 key_count = key_count + 1
  131.             end
  132.            
  133.             if string.find (string.lower(a_track:name()), "guitar") then
  134.                 guitar_track[guitar_count] = a_track
  135.             end
  136.            
  137.             if string.find (string.lower(a_track:name()), "gtr") then
  138.                 guitar_track[guitar_count] = a_track
  139.             end
  140.            
  141.             if (guitar_track[guitar_count]) then
  142.                 guitar_count = guitar_count + 1
  143.             end
  144.            
  145.             if string.find (string.lower(a_track:name()), "strings") then
  146.                 string_track[string_count] = a_track
  147.             end
  148.            
  149.             if (string_track[string_count]) then
  150.                 string_count = string_count + 1
  151.             end
  152.            
  153.         end
  154.        
  155.         -- color codes are in hex
  156.         -- the last hex '00-ff' (0-255) is for alpha transparency
  157.         -- e.g ff = 255 = fully opaque
  158.         local blue = 0x368cf2ff
  159.         local green = 0x46d83aff
  160.         local purple = 0x866de3ff
  161.         local red =  0xfb1d4dff
  162.         local white = 0xffffffff
  163.         local orange = 0xff8800ff
  164.        
  165.        
  166.         for t = 0, kick_count-1 do
  167.             kick_track[t]:presentation_info_ptr ():set_color (blue)
  168.             print(kick_track[t]:name())
  169.         end
  170.        
  171.         for t = 0, snare_count-1 do
  172.             snare_track[t]:presentation_info_ptr ():set_color (blue)
  173.             print(snare_track[t]:name())
  174.         end
  175.        
  176.         for t = 0, hat_count-1 do
  177.             hat_track[t]:presentation_info_ptr ():set_color (blue)
  178.             print(hat_track[t]:name())
  179.         end
  180.        
  181.         for t = 0, tom_count-1 do
  182.             tom_track[t]:presentation_info_ptr ():set_color (blue)
  183.             print(tom_track[t]:name())
  184.         end
  185.        
  186.         for t = 0, overhead_count-1 do
  187.             overhead_track[t]:presentation_info_ptr ():set_color (blue)
  188.             print(overhead_track[t]:name())
  189.         end
  190.        
  191.         for t = 0, room_count-1 do
  192.             room_track[t]:presentation_info_ptr ():set_color (white)
  193.             print(room_track[t]:name())
  194.         end
  195.        
  196.         for t = 0, bass_count-1 do
  197.             bass_track[t]:presentation_info_ptr ():set_color (green)
  198.             print(bass_track[t]:name())
  199.         end
  200.        
  201.         for t = 0, guitar_count-1 do
  202.             guitar_track[t]:presentation_info_ptr ():set_color (purple)
  203.             print(guitar_track[t]:name())
  204.         end
  205.        
  206.         for t = 0, key_count-1 do
  207.             key_track[t]:presentation_info_ptr ():set_color (purple)
  208.             print(key_track[t]:name())
  209.         end
  210.        
  211.         for t = 0, vocal_count-1 do
  212.             vocal_track[t]:presentation_info_ptr ():set_color (red)
  213.             print(vocal_track[t]:name())
  214.         end
  215.        
  216.         for t = 0, string_count-1 do
  217.             string_track[t]:presentation_info_ptr ():set_color (purple)
  218.             print(string_track[t]:name())
  219.         end
  220.     end
  221. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement