mirror of
https://github.com/onyx-and-iris/vban-cli.git
synced 2026-04-19 11:53:31 +00:00
set up the skeletal structure for comp, gate, denoiser
add them as subcommand to the strip command group. for each one implement one or two subcommands.
This commit is contained in:
67
src/vban_cli/comp.py
Normal file
67
src/vban_cli/comp.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from typing import Annotated
|
||||
|
||||
from cyclopts import App, Argument, Parameter
|
||||
|
||||
from .context import Context
|
||||
from .help import CustomHelpFormatter
|
||||
|
||||
app = App(name='comp', help_formatter=CustomHelpFormatter())
|
||||
|
||||
|
||||
@app.meta.default
|
||||
def launcher(
|
||||
*tokens: Annotated[str, Parameter(show=False, allow_leading_hyphen=True)],
|
||||
index: Annotated[int, Argument()] = None,
|
||||
ctx: Annotated[Context, Parameter(show=False)] = None,
|
||||
):
|
||||
"""Control the compressor parameters."""
|
||||
additional_kwargs = {}
|
||||
command, bound, _ = app.parse_args(tokens)
|
||||
if index is not None:
|
||||
additional_kwargs['index'] = index
|
||||
if ctx is not None:
|
||||
additional_kwargs['ctx'] = ctx
|
||||
|
||||
return command(*bound.args, **bound.kwargs, **additional_kwargs)
|
||||
|
||||
|
||||
@app.command(name='knob')
|
||||
def knob(
|
||||
new_knob: Annotated[float, Argument()] = None,
|
||||
*,
|
||||
index: Annotated[int, Parameter(show=False)] = None,
|
||||
ctx: Annotated[Context, Parameter(show=False)] = None,
|
||||
):
|
||||
"""Get or set the knob of the specified compressor.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
new_knob : int, optional
|
||||
If provided, sets the knob to this value. If not provided, the current knob is printed.
|
||||
"""
|
||||
if new_knob is None:
|
||||
# See https://github.com/onyx-and-iris/vban-cli?tab=readme-ov-file#implementation-notes - 2.
|
||||
# console.out.print(ctx.client.strip[index].comp.knob)
|
||||
return
|
||||
ctx.client.strip[index].comp.knob = new_knob
|
||||
|
||||
|
||||
@app.command(name='input-gain')
|
||||
def input_gain(
|
||||
new_gain: Annotated[float, Argument()] = None,
|
||||
*,
|
||||
index: Annotated[int, Parameter(show=False)] = None,
|
||||
ctx: Annotated[Context, Parameter(show=False)] = None,
|
||||
):
|
||||
"""Get or set the input gain of the specified compressor.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
new_gain : float, optional
|
||||
If provided, sets the input gain to this value. If not provided, the current input gain is printed.
|
||||
"""
|
||||
if new_gain is None:
|
||||
# See https://github.com/onyx-and-iris/vban-cli?tab=readme-ov-file#implementation-notes - 2.
|
||||
# console.out.print(ctx.client.strip[index].comp.gainin)
|
||||
return
|
||||
ctx.client.strip[index].comp.gainin = new_gain
|
||||
Reference in New Issue
Block a user