Audio-Nama
view release on metacpan or search on metacpan
lib/Audio/Nama.pm view on Meta::CPAN
vol: _vol value {
$Audio::Nama::this_track->vol or
Audio::Nama::throw(( $Audio::Nama::this_track->name . ": no volume control available")), return;
Audio::Nama::modify_effect(
$Audio::Nama::this_track->vol,
1,
undef,
$item{value});
1;
}
vol: _vol sign(?) value {
$Audio::Nama::this_track->vol or
Audio::Nama::throw( $Audio::Nama::this_track->name . ": no volume control available"), return;
Audio::Nama::modify_effect(
$Audio::Nama::this_track->vol,
1,
$item{'sign(?)'}->[0],
$item{value});
1;
}
vol: _vol { Audio::Nama::pager( $Audio::Nama::this_track->vol_level); 1}
mute: _mute { $Audio::Nama::this_track->mute; 1}
unmute: _unmute { $Audio::Nama::this_track->unmute; 1}
solo: _solo ident(s) {
Audio::Nama::solo(@{$item{'ident(s)'}}); 1
}
solo: _solo { Audio::Nama::solo($Audio::Nama::this_track->name); 1}
all: _all { Audio::Nama::all() ; 1}
nosolo: _nosolo { Audio::Nama::nosolo() ; 1}
unity: _unity { Audio::Nama::unity($Audio::Nama::this_track); 1}
pan: _pan panval {
Audio::Nama::update_effect( $Audio::Nama::this_track->pan, 0, $item{panval});
1;}
pan: _pan sign panval {
Audio::Nama::modify_effect( $Audio::Nama::this_track->pan, 1, $item{sign}, $item{panval} );
1;}
panval: float
| dd
pan: _pan { Audio::Nama::pager( $Audio::Nama::this_track->pan_level); 1}
pan_right: _pan_right { Audio::Nama::pan_set($Audio::Nama::this_track, 100 ); 1}
pan_left: _pan_left { Audio::Nama::pan_set($Audio::Nama::this_track, 0 ); 1}
pan_center: _pan_center { Audio::Nama::pan_set($Audio::Nama::this_track, 50 ); 1}
pan_back: _pan_back { Audio::Nama::pan_back($Audio::Nama::this_track); 1;}
remove_mark: _remove_mark dd {
my @marks = Audio::Nama::Mark::all();
$marks[$item{dd}]->remove if defined $marks[$item{dd}];
1;}
remove_mark: _remove_mark ident {
my $mark = $Audio::Nama::Mark::by_name{$item{ident}};
$mark->remove if defined $mark;
1;}
remove_mark: _remove_mark {
return unless (ref $Audio::Nama::this_mark) =~ /Mark/;
$Audio::Nama::this_mark->remove;
1;}
add_mark: _add_mark ident { Audio::Nama::drop_mark $item{ident}; 1}
add_mark: _add_mark { Audio::Nama::drop_mark(); 1}
next_mark: _next_mark { Audio::Nama::next_mark(); 1}
previous_mark: _previous_mark { Audio::Nama::previous_mark(); 1}
loop: _loop someval(s) {
my @new_endpoints = @{ $item{"someval(s)"}};
$Audio::Nama::mode->{loop_enable} = 1;
@{$Audio::Nama::setup->{loop_endpoints}} = (@new_endpoints, @{$Audio::Nama::setup->{loop_endpoints}});
@{$Audio::Nama::setup->{loop_endpoints}} = @{$Audio::Nama::setup->{loop_endpoints}}[0,1];
1;}
noloop: _noloop { $Audio::Nama::mode->{loop_enable} = 0; 1}
name_mark: _name_mark ident {$Audio::Nama::this_mark->set_name( $item{ident}); 1}
list_marks: _list_marks {
my $i = 0;
my @lines = map{ my $pre = $_->{time} == $Audio::Nama::this_mark->{time} ? q(*) : q();
$pre . join " ", $i++, sprintf("%.1f", $_->{time}), $_->name, "\n"
} @Audio::Nama::Mark::all;
my $start = my $end = "undefined";
push @lines, "now at ". sprintf("%.1f\n", Audio::Nama::ecasound_iam("getpos"));
Audio::Nama::pager(@lines);
1;}
to_mark: _to_mark dd {
my @marks = Audio::Nama::Mark::all();
$marks[$item{dd}]->jump_here;
1;}
to_mark: _to_mark ident {
my $mark = $Audio::Nama::Mark::by_name{$item{ident}};
$mark->jump_here if defined $mark;
1;}
modify_mark: _modify_mark sign value {
my $newtime = eval($Audio::Nama::this_mark->{time} . $item{sign} . $item{value});
Audio::Nama::modify_mark($Audio::Nama::this_mark, $newtime); 1
}
modify_mark: _modify_mark value {
Audio::Nama::modify_mark($Audio::Nama::this_mark, $item{value} ); 1
}
remove_effect: _remove_effect remove_target(s) {
Audio::Nama::mute();
map{
my $id = $_;
my ($use) = grep{ $id eq $Audio::Nama::this_track->$_ } qw(vol pan fader);
if($use){
Audio::Nama::throw("Effect $id is used as $use by track",$Audio::Nama::this_track->name,
".\nSee 'remove_fader_effect to remove it'\n")
}
else {
my $FX = Audio::Nama::fxn($id);
Audio::Nama::pager_newline("removing effect ".$FX->nameline);
$FX->_remove_effect();
}
} grep { $_ } map{ split ' ', $_} @{ $item{"remove_target(s)"}} ;
Audio::Nama::sleeper(0.5);
Audio::Nama::unmute();
1;}
add_controller: _add_controller parent effect value(s?) {
my $code = $item{effect};
my $parent = $item{parent};
my $parent_o = Audio::Nama::fxn($parent);
print "parent: ", $parent_o, " chain: ", $parent_o->chain;
my $values = $item{"value(s?)"};
my $id = Audio::Nama::add_effect({
parent => $parent,
chain => $parent_o->chain,
type => $code,
params => $values,
});
if($id)
{
my $iname = Audio::Nama::fxn($id)->fxname;
( run in 0.693 second using v1.01-cache-2.11-cpan-5735350b133 )