Avid Carbon Channel Settings with Soundflow?
Hello Genius Folk,
I am running 3x Avid Carbons in my setup and when i bop around between tracking and mixing sessions I need to have a quick way of making all the channels on the Carbon go back to Line Level with no gain added.
This is achievable currently by...get this....needing to create dummy tracks for every channel on the carbon and then setting them all to the correct settings. what a PITA.
I am guessing that Soundflow (maybe via SDK?) has remote capability to control the Carbon Pres?
In Pro Tools if I go to Views>Mix Window Views>Mic Preamps this is where all the controls pop up.
I guess there could be a script that made that view active, and set all the channels to Line level, no added gain, and unlinked all pairs. The problem with this method is it only works for tracks that correspond to channels on the carbon. I could end up with carbon channels still set to mic level...this is especially problematic as I start using hardware inserts and i get no signal back (cause something is stuck on mic instead of line...)
Any help or knowledge would be appreciated
Love
Philip
- Mitch Willard @Mitch_Willard
Try this.
This will select all tracks with mic pres that are visible in your session and then toggle them between 'Mic' and 'Line'.
If they switch to Line, it will then drop the line level to the lowest setting - '+3db'
sf.ui.proTools.invalidate().appActivate(); const micPresView = sf.ui.proTools.getMenuItem('View', 'Edit Window Views', 'Mic Preamps') const visibleTracks = sf.ui.proTools.visibleTrackNames const tracksWithPreAmps = [] if (!micPresView.isMenuChecked) { micPresView.elementClick(); } visibleTracks.forEach(track => { let preampBtn = sf.ui.proTools.trackGetByName({ name: track }).track.groups.whoseTitle.is("Mic Pre").first.buttons.whoseTitle.is("Preamp Window button").first.exists if (preampBtn) { tracksWithPreAmps.push(track) } }); var firstTrack = sf.ui.proTools.trackGetByName({ name: tracksWithPreAmps[0] }).track firstTrack.trackScrollToView(); firstTrack.trackSelect(); sf.ui.proTools.trackSelectByName({ names: tracksWithPreAmps, deselectOthers: true }); sf.wait({ intervalMs: 200 }); const micPre = sf.ui.proTools.invalidate().selectedTrack.groups.whoseTitle.is("Mic Pre").first let preampValue = micPre.buttons.whoseTitle.is("Preamp Window button").first.value.invalidate().value if (preampValue === 'Mic') { var micLine = 'Line' } else if (preampValue === 'Line') { var micLine = 'Mic' } micPre.buttons.whoseTitle.is("Input Type selector").first.popupMenuSelect({ menuPath: [micLine], isShift: true, isOption: true, }); sf.wait({ intervalMs: 200 }); if (micLine === 'Line') { var slider = micPre.popupButtons.first sf.mouse.simulateDrag({ startPosition: { "x": (slider.frame.x), "y": (slider.frame.y) }, endPosition: { "x": (slider.frame.x), "y": (slider.frame.y + 100) }, isShift: true, isOption: true }); };
- EEli Crews @Eli_Crews
Mitch, this is cool, what's the way to always make all selected tracks go to line level, and not toggle? Excuse my ineptness with JS. Thanks!
Mitch Willard @Mitch_Willard
Hi @Eli_Crews
I'm not near my system with the carbon, but this should do the trick.
sf.ui.proTools.invalidate().appActivate(); const micPresView = sf.ui.proTools.getMenuItem('View', 'Edit Window Views', 'Mic Preamps') const visibleTracks = sf.ui.proTools.visibleTrackNames const tracksWithPreAmps = [] if (!micPresView.isMenuChecked) { micPresView.elementClick(); } visibleTracks.forEach(track => { let preampBtn = sf.ui.proTools.trackGetByName({ name: track }).track.groups.whoseTitle.is("Mic Pre").first.buttons.whoseTitle.is("Preamp Window button").first.exists if (preampBtn) { tracksWithPreAmps.push(track) } }); var firstTrack = sf.ui.proTools.trackGetByName({ name: tracksWithPreAmps[0] }).track firstTrack.trackScrollToView(); firstTrack.trackSelect(); sf.ui.proTools.trackSelectByName({ names: tracksWithPreAmps, deselectOthers: true }); sf.wait({ intervalMs: 200 }); const micPre = sf.ui.proTools.invalidate().selectedTrack.groups.whoseTitle.is("Mic Pre").first micPre.buttons.whoseTitle.is("Input Type selector").first.popupMenuSelect({ menuPath: ['Line'], isShift: true, isOption: true, }); sf.wait({ intervalMs: 200 }); var slider = micPre.popupButtons.first sf.mouse.simulateDrag({ startPosition: { "x": (slider.frame.x), "y": (slider.frame.y) }, endPosition: { "x": (slider.frame.x), "y": (slider.frame.y + 100) }, isShift: true, isOption: true });
- EEli Crews @Eli_Crews
That works, thank you!! Now to figure out how to set a script to tell Hardware Setup to put all of the devices into "bypass"/unity mode, and be at +4... I wish you could save hardware setup presets, I'll ask Avid about implementing that, but in the meantime if you have any suggestions...