Track color conversion table
By Tristan Hoogland @Tristan
Hello,
Thought I'd share this as it was annoying to set up. I noticed when getting the track color from protools it comes back as hex color syntax, but when selecting or defining a color it's done in rows/columns with corresponding light/med/dark and numbers. This table acts as a conversion table. My use case (forgive the janky code I whipped up in a hurry) was I wanted to select all my track folders and create them the same color as the tracks/first track within the folder.
Hope it helps someone
const colorConversionTable = [
// Light Colors
{ color: "#ff2c00fc", colorNumber: 1, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff5600fc", colorNumber: 2, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff8800fc", colorNumber: 3, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbf00fc", colorNumber: 4, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbe00c0", colorNumber: 5, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbd0088", colorNumber: 6, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbd0054", colorNumber: 7, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbc000d", colorNumber: 8, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbd1e0d", colorNumber: 9, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbd520e", colorNumber: 10, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffbe8911", colorNumber: 11, colorBrightness: "Light", colorType: "Color" },
{ color: "#ffc0c514", colorNumber: 12, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff89c511", colorNumber: 13, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff57c610", colorNumber: 14, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff2ec60f", colorNumber: 15, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff1cc60e", colorNumber: 16, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff1ec654", colorNumber: 17, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff20c488", colorNumber: 18, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff23c3c1", colorNumber: 19, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff27c1fd", colorNumber: 20, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff2184fc", colorNumber: 21, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff1c4afc", colorNumber: 22, colorBrightness: "Light", colorType: "Color" },
{ color: "#ff1900fc", colorNumber: 23, colorBrightness: "Light", colorType: "Color" },
// Medium Colors
{ color: "#ff1e00a3", colorNumber: 1, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff3700a3", colorNumber: 2, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff5500a3", colorNumber: 3, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7400a4", colorNumber: 4, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7c0089", colorNumber: 5, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7b0066", colorNumber: 6, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7a0046", colorNumber: 7, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7a000b", colorNumber: 8, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7a120b", colorNumber: 9, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7a310c", colorNumber: 10, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff7b510d", colorNumber: 11, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff898010", colorNumber: 12, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff66800e", colorNumber: 13, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff48800d", colorNumber: 14, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff2d800c", colorNumber: 15, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff18800c", colorNumber: 16, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff158033", colorNumber: 17, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff167f51", colorNumber: 18, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff1a8c7e", colorNumber: 19, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff1d8da4", colorNumber: 20, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff1969a4", colorNumber: 21, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff1646a3", colorNumber: 22, colorBrightness: "Medium", colorType: "Color" },
{ color: "#ff1423a3", colorNumber: 23, colorBrightness: "Medium", colorType: "Color" },
// Dark Colors
{ color: "#ff14005f", colorNumber: 1, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff21005f", colorNumber: 2, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff31005f", colorNumber: 3, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff41005f", colorNumber: 4, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff4b0057", colorNumber: 5, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff470042", colorNumber: 6, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff470031", colorNumber: 7, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff47000b", colorNumber: 8, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff470c0b", colorNumber: 9, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff471c0b", colorNumber: 10, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff472c0c", colorNumber: 11, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff574d0f", colorNumber: 12, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff424a0c", colorNumber: 13, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff324a0c", colorNumber: 14, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff234a0c", colorNumber: 15, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff154b0b", colorNumber: 16, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff0f4a1d", colorNumber: 17, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff0f4a2c", colorNumber: 18, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff14594c", colorNumber: 19, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff16595f", colorNumber: 20, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff14475f", colorNumber: 21, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff13355f", colorNumber: 22, colorBrightness: "Dark", colorType: "Color" },
{ color: "#ff11225f", colorNumber: 23, colorBrightness: "Dark", colorType: "Color" },
];
sf.ui.proTools.appActivate();
// Refresh the track list and map their details
const tracks = sf.app.proTools.tracks.invalidate().allItems;
const selectedTracks = sf.ui.proTools.selectedTrackNames;
sf.ui.proTools.selectedTrack.titleButton.mouseClickElement({ isControl: true, isShift: true });
// Temp wait
sf.wait({ intervalMs: 200 });
// Open all folders
sf.app.proTools.setTrackOpenState({ trackNames: selectedTracks, enabled: true });
const storedFolderTracks = sf.ui.proTools.selectedTrackNames;
// Select the track by name
sf.app.proTools.selectTracksByName({ trackNames: [storedFolderTracks[0]], selectionMode: "Replace" });
// Extend edit to members
sf.ui.proTools.menuClick({
menuPath: ["Edit", "Selection", "Extend Edit Down"],
});
// Remove edit from top
sf.ui.proTools.menuClick({
menuPath: ["Edit", "Selection", "Remove Edit from Top"],
});
// Get fresh track data and CURRENT selection after the edit operations
const tracksUpdated = sf.app.proTools.tracks.invalidate().allItems;
const currentSelectedNames = sf.ui.proTools.selectedTrackNames;
const currentSelectedTrack = tracksUpdated.find(track => track.name === currentSelectedNames[0]);
const trackColor = currentSelectedTrack ? currentSelectedTrack.color : null;
sf.ui.proTools.invalidate();
// Reselect the folder tracks
sf.app.proTools.selectTracksByName({ trackNames: storedFolderTracks, selectionMode: "Replace" });
// Find matching color in conversion table
if (trackColor) {
const matchingColor = colorConversionTable.find(entry => entry.color.toLowerCase() === trackColor.toLowerCase());
if (matchingColor) {
// Apply the color using the matched values
sf.ui.proTools.colorsSelect({
colorType: matchingColor.colorType,
colorBrightness: matchingColor.colorBrightness,
colorNumber: matchingColor.colorNumber
});
} else {
log("No matching color found in conversion table");
}
}
sf.ui.proTools.invalidate();
sf.app.proTools.setTrackOpenState({ trackNames: selectedTracks, enabled: false });