Exemple #1
0
def update(_list, conn_text: TextInput, instance) -> None:
    # ping(conn_text.text)
    # is_connected(conn_text.text, 2307)
    try:
        conn = rpr.connect(conn_text.text)
        with rpr.inside_reaper():
            print(f'connected to {conn_text.text}')
    except (rpr.errors.DisabledDistAPIError, AttributeError):
        print('cannot connect to "{}"'.format(conn_text.text))
        # conn_text.background_color = (1, 0, 0)
        return
    # else:
    #     conn_text.background_color = (1, 1, 1)
    Config.set(SECTION, 'IP', conn_text.text)
    Config.write()
    print(f'SECTION, "IP" to {conn_text.text}')

    with rpr.inside_reaper():
        items_list = get_items_list()

        pr = rpr.Project()
        ts = pr.time_selection
        ts.start = 0
        ts.end = pr.length
        rpr.perform_action(40420)
        ts.end = 0

        for item in items_list:
            item_ = item.item
            pr.add_marker(item_.position + item_.length - .1, name='!1016')

        print(items_list)
        update_list(_list, items_list)
Exemple #2
0
def get_host_jack_ports(
    host: ty.Optional[str] = None
) -> ty.Tuple[ty.List[_JMidiPort], ty.List[_JMidiPort]]:
    """Return all Jack midi ports of Reaper on the specified host.

    Note
    ----
    reascript 'Levitanus: (session_management) get_system_jack_ports'
    has to be registered in action editor.

    Parameters
    ----------
    host : ty.Optional[str], optional
        'localhost' or IPV4 address

    No Longer Returned
    ------------------
    jack_in_ports: _JMidiPort
    jack_out_ports _JMidiPort

    """
    if host == 'localhost':
        host = None
    with rpr.connect(host):
        with rpr.inside_reaper():
            a_id: int = RPR.NamedCommandLookup(
                '_RSc3a0868bee74abaf333ac661af9a4a27257c37c1')
            rpr.perform_action(a_id)
            ports = prs.loads('slave_ports')
            # print(ports)
            return ports
 def __init__(
     self,
     sr: int = 22050,
     item_handlers: ty.Optional[ty.List[ItemHandler]] = None,
     split_at_ts: bool = False
 ) -> None:
     """
     Parameters
     ----------
     sr : int, optional
         Samplerate
     item_handlers : Optional[List[ItemHandler]]
         If None — any items in time selection are Used
     split_at_ts : bool, optional
         If True — items are split at time selection
     """
     if split_at_ts:
         # Item: Split item_handlers at time selection
         rpr.perform_action(40061)
     self.sr = sr
     self.pr = rpr.Project()
     self.item_handlers = self._get_items(
     ) if item_handlers is None else item_handlers
     self._audios: ty.Optional[ty.List[ty.Iterable[float]]] = None
     self._audio_mono: ty.Optional[ty.List[ty.Iterable[float]]] = None
Exemple #4
0
def render_audio(folder: str, preset_name: str, chunk) -> str:
    """Render Audio.

    Renders audio inside Reaper

    Parameters
    ----------
        folder: folder where to store audio
        preset_name: name of audio file


    Returns
    -------
    renderpath: full path to rendered audio

    """
    #open new tab
    reapy.perform_action(40859)

    #set renderpath in project file
    logging.debug('Rendering: ' + preset_name)
    renderpath = folder + "\\" + preset_name + ".mp3"
    set_output_path(renderpath)

    #set name of track,as rendering takes trackname for filename
    project = reapy.Project()
    vst_track = project.tracks[0]
    vst_track.name = preset_name

    #load preset to track 1
    project.select_all_tracks()
    rp.load(chunk)
    time.sleep(2)

    #save project so changes get updated
    project.save()

    project.select_all_tracks()

    #call render action by ID
    reapy.perform_action(42230)

    logging.debug("Finished Rendering")

    #remove VSTI to not get issues when loading next time
    vst_track.instrument.delete()
    project.save()

    #close tab
    reapy.perform_action(40860)
    return renderpath
Exemple #5
0
 def record(self):
     """Hit record button."""
     with self.make_current_project():
         reapy.perform_action(1013)
Exemple #6
0
 def close(self):
     """Close project and its correspondig tab."""
     self._filename = os.path.join(self.path, self.name)
     with self.make_current_project():
         reapy.perform_action(40860)
Exemple #7
0
def on_track(time: float, instance) -> None:
    # time = item.time
    rpr.Project().cursor_position = time
    # print(time, item.name)
    rpr.perform_action(1013)
Exemple #8
0
    scroll, layout = get_layouts()
    update_list(layout, itemlist)

    connection_grid = GridLayout(cols=2, spacing=10, size_hint_y=.5)
    upd_btn = Button(text='update')
    upd_btn.bind(on_press=lambda instance: update(layout, conn_text, instance))
    connection_grid.add_widget(conn_text)
    connection_grid.add_widget(upd_btn)
    grid.add_widget(connection_grid)

    grid.add_widget(scroll)

    transport_grid = GridLayout(cols=4, spacing=10, size_hint_y=.5)
    play_btn = Button(text='play|rec')
    play_btn.background_color = (1, 0, 0)
    play_btn.bind(on_press=lambda instance: rpr.perform_action(1013))
    transport_grid.add_widget(play_btn)
    pause_btn = Button(text='pause')
    pause_btn.bind(on_press=lambda instance: rpr.perform_action(1008))
    pause_btn.background_color = (1, 1, 0)
    transport_grid.add_widget(pause_btn)
    stop_btn = Button(text='stop')
    stop_btn.bind(on_press=lambda instance: rpr.perform_action(1016))
    transport_grid.add_widget(stop_btn)
    end_btn = Button(text='to end')
    end_btn.bind(on_press=lambda instance: to_end())
    transport_grid.add_widget(end_btn)

    grid.add_widget(transport_grid)

    runTouchApp(grid)
Exemple #9
0
 def _get_from_lua(self) -> None:
     """For profiling needs."""
     rpr.perform_action(self.get_command_id)
Exemple #10
0
 def _render_it(self) -> None:
     render_action = 42230
     rpr.perform_action(render_action)
def _select_items_in_ts(pr: rpr.Project) -> None:
    if len(pr.selected_tracks):
        rpr.perform_action(40718)  # select all items on track in ts
    else:
        rpr.perform_action(40717)  # select all items in ts