mirror of
https://github.com/onyx-and-iris/vban-cli.git
synced 2026-03-03 05:29:11 +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:
parent
384d20dfc5
commit
817a25e9fa
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
|
||||||
46
src/vban_cli/denoiser.py
Normal file
46
src/vban_cli/denoiser.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
from typing import Annotated
|
||||||
|
|
||||||
|
from cyclopts import App, Argument, Parameter
|
||||||
|
|
||||||
|
from .context import Context
|
||||||
|
from .help import CustomHelpFormatter
|
||||||
|
|
||||||
|
app = App(name='denoiser', 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 denoiser 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 denoiser.
|
||||||
|
|
||||||
|
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].denoiser.knob)
|
||||||
|
return
|
||||||
|
ctx.client.strip[index].denoiser.knob = new_knob
|
||||||
67
src/vban_cli/gate.py
Normal file
67
src/vban_cli/gate.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='gate', 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 gate.
|
||||||
|
|
||||||
|
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].gate.knob)
|
||||||
|
return
|
||||||
|
ctx.client.strip[index].gate.knob = new_knob
|
||||||
|
|
||||||
|
|
||||||
|
@app.command(name='threshold')
|
||||||
|
def threshold(
|
||||||
|
new_threshold: Annotated[float, Argument()] = None,
|
||||||
|
*,
|
||||||
|
index: Annotated[int, Parameter(show=False)] = None,
|
||||||
|
ctx: Annotated[Context, Parameter(show=False)] = None,
|
||||||
|
):
|
||||||
|
"""Get or set the threshold of the specified gate.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
new_threshold : float, optional
|
||||||
|
If provided, sets the threshold to this value. If not provided, the current threshold is printed.
|
||||||
|
"""
|
||||||
|
if new_threshold 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].gate.threshold)
|
||||||
|
return
|
||||||
|
ctx.client.strip[index].gate.threshold = new_threshold
|
||||||
@ -2,12 +2,15 @@ from typing import Annotated, Optional
|
|||||||
|
|
||||||
from cyclopts import App, Argument, Parameter
|
from cyclopts import App, Argument, Parameter
|
||||||
|
|
||||||
from . import console, eq
|
from . import comp, console, denoiser, eq, gate
|
||||||
from .context import Context
|
from .context import Context
|
||||||
from .help import CustomHelpFormatter
|
from .help import CustomHelpFormatter
|
||||||
|
|
||||||
app = App(name='strip', help_formatter=CustomHelpFormatter())
|
app = App(name='strip', help_formatter=CustomHelpFormatter())
|
||||||
app.command(eq.app.meta, name='eq')
|
app.command(eq.app.meta, name='eq')
|
||||||
|
app.command(comp.app.meta, name='comp')
|
||||||
|
app.command(gate.app.meta, name='gate')
|
||||||
|
app.command(denoiser.app.meta, name='denoiser')
|
||||||
|
|
||||||
|
|
||||||
@app.meta.default
|
@app.meta.default
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user