No internet connection
  1. Home
  2. How to

The 'Jordanized' Playlist Auditioner

By Jordan Pascual @Jordan_Pascual
    2024-04-05 19:06:55.822Z

    Alright! This is the big one for me. I need help on this super personalized version of what I call a 'playlist auditioner'. I have had 'versions' of this that currently utilize BOTH Soundflow and Keyboard Maestro, but finally, I am ready to make this one integrated script (hopefully).

    The premise is this:
    I want there to be a way for me to 'audition' playlists in the playlist editor with EXTREME automation. I currently have it set up for either 3/4 buttons to be pressed, and hooked up to a stream deck as well.

    The idea is to play a 'phrase' on Loop Playback, then pressing ONE button, (Either BCK or FWD (I use the two characters [ and ] on the keyboard, right above return/enter). This will EITHER 1. Add it to the playlist, and 'mark' the take, or 2.Find the next 'Solo' button, and rinse and repeat.

    Currently, Keyboard Maestro is using the 'search image' function to find the yellow 'S' (as well as some parameter functions to move the page up or down depending on it's positioning).

    @raphaelsepulveda has really helped me understand the functionality of some key elements of SoundFlow/ProTools design, so I'm sure he'll have some great ideas to clean this script up.

    Below, I will put my step by step process, as well as a video explaining visually what I am thinking.

    • 3 replies
    1. Jordan Pascual @Jordan_Pascual
        2024-04-05 19:10:36.851Z

        STEPS:

        1. Select phrase, Press Yellow S, and press Play (Loop) (user input)
        2. When Pressing ], It will find the Next ’S’, and simulate mouse movement.
        3. KeyMaestro than activates a keycommand in SoundFlow ’shift+command+backslash’
        4. Soundflow should then ask “Did You Like the Take” - THREE options:

        END ALL: Ends Script (Maybe even Pauses Playback?)

        “Nah/Keep Listening” (Proceed to Step 7)

        “YES”…

        5a. If yes, then it should ‘divide’ the selection (using the keystroke ‘b’)
        5b. Then it should ‘mark’ part of the take (backslash Keyboard Maestro) (What this does is listed below**)
        5c. Add that selection to playlist (ctrl+alt+v)
        6. Provide a dialog saying ’Playlist Added’

        1. Continue Script Repeated, until END ALL is inputed? (Loop the Script)

        **For ‘marking’ the take, Keyboard Maestro will ‘move’ the mouse about ‘-15’ from current mouse position, capture current mouse position, click and drag ‘-9’, press ‘B’ (for blade), and then return it to previous mouse captured position. Works without SF, but could be integrated.

        Note: I have a failsafe in Keyboard Maestro that if it can’t ‘find’ the ‘Yellow’S’ or certain variables, it will use the character as normal (this is so it doesn’t screw up when typing regularly outside of PT) I ALSO have a variable that simulates scrolling the page down, so that the playlists always stay visually in the center(ish) of the screen!

        1. Jordan Pascual @Jordan_Pascual
            2024-04-05 19:15:12.612Z

            Current Script with Keyboard Maestro is as follows...

            THEN, it goes into SF which executes this (not finished)

            sf.keyboard.press({
                keys: "semicolon",
            });
            
            const userChoice = sf.interaction.displayDialog({
                title: "Playlist Auditioner",
                prompt: "Do You Like This Take, Jordan?",
                buttons: ["END ME!", "Nah...", "Yes, I did!"],
                defaultButton: "Yes, I did!",
                cancelButton: "END ME!",
            
            
            sf.keyboard.press({
                keys: "b",
            });
            
            sf.wait({
                intervalMs: 200,
            });
            
            
            sf.keyboard.press({
                keys: "ctrl+alt+v",
            });
            sf.wait({
                intervalMs: 200,
            });
            
            sf.keyboard.press({
                keys: "backslash",
            });
            
            sf.wait({
                intervalMs: 2000,
            });
            
            

            THEN the final 'backslash' command executes ANOTHER Keyboard Maestro Command, that does this...

            1. Jordan Pascual @Jordan_Pascual
                2024-04-05 19:17:49.681Z

                Finally, a video demonstrating my weirdness :)