Audio-Nama
view release on metacpan or search on metacpan
lib/Audio/Nama.pm view on Meta::CPAN
}
offset_run_off: _offset_run_off {
Audio::Nama::pager( "no run offset.");
Audio::Nama::disable_offset_run_mode();
}
view_waveform: _view_waveform {
my $viewer = 'mhwaveedit';
if( `which $viewer` =~ m/\S/){
my $cmd = join " ",
$viewer,
"--driver",
$Audio::Nama::jack->{jackd_running} ? "jack" : "alsa",
$Audio::Nama::this_track->full_path,
"&";
system($cmd)
}
else { Audio::Nama::throw("Mhwaveedit not found. No waveform viewer is available.") }
}
edit_waveform: _edit_waveform {
if ( `which audacity` =~ m/\S/ ){
my $cmd = join " ",
'audacity',
$Audio::Nama::this_track->full_path,
"&";
my $old_pwd = Audio::Nama::getcwd();
chdir Audio::Nama::this_wav_dir();
system($cmd);
chdir $old_pwd;
}
else { Audio::Nama::throw("Audacity not found. No waveform editor available.") }
1;
}
rerecord: _rerecord {
Audio::Nama::pager(
scalar @{$Audio::Nama::setup->{_last_rec_tracks}}
? "Toggling previous recording tracks to REC"
: "No tracks in REC list. Skipping."
);
map{ $_->set(rw => Audio::Nama::REC) } @{$Audio::Nama::setup->{_last_rec_tracks}};
Audio::Nama::restore_preview_mode();
1;
}
show_track_latency: _show_track_latency {
my $node = $Audio::Nama::setup->{latency}->{track}->{$Audio::Nama::this_track->name};
Audio::Nama::pager( Audio::Nama::json_out($node)) if $node;
1;
}
show_latency_all: _show_latency_all {
Audio::Nama::pager( Audio::Nama::json_out($Audio::Nama::setup->{latency})) if $Audio::Nama::setup->{latency};
1;
}
analyze_level: _analyze_level { Audio::Nama::check_level($Audio::Nama::this_track);1 }
something: /\S.+/
git: _git something {
my @result = map{ $_ .= "\n" } $Audio::Nama::project->{repo}->run( split " ", $item{something});
Audio::Nama::pager(@result);
1;
}
edit_rec_setup_hook: _edit_rec_setup_hook {
system("$ENV{EDITOR} ".$Audio::Nama::this_track->rec_setup_script() );
chmod 0755, $Audio::Nama::this_track->rec_setup_script();
1
}
edit_rec_cleanup_hook: _edit_rec_cleanup_hook {
system("$ENV{EDITOR} ".$Audio::Nama::this_track->rec_cleanup_script() );
chmod 0755, $Audio::Nama::this_track->rec_cleanup_script();
1
}
remove_fader_effect: _remove_fader_effect fader_role {
Audio::Nama::remove_fader_effect($Audio::Nama::this_track, $item{fader_role});
1
}
fader_role: 'vol'|'pan'|'fader'
select_sequence: _select_sequence existing_sequence_name {
$Audio::Nama::this_sequence = $Audio::Nama::bn{$item{existing_sequence_name}}
}
existing_sequence_name: ident {
my $buslike = $Audio::Nama::bn{$item{ident}};
$return = $item{ident} if (ref $buslike) =~ /Sequence/
}
convert_to_sequence: _convert_to_sequence {
my $sequence_name = $Audio::Nama::this_track->name;
Audio::Nama::nama_cmd("nsq $sequence_name");
$Audio::Nama::this_sequence->new_clip($Audio::Nama::this_track);
1
}
merge_sequence: _merge_sequence { cache_track($Audio::Nama::tn{$Audio::Nama::this_sequence->name}); 1 }
new_sequence: _new_sequence new_sequence_name track_identifier(s?) {
Audio::Nama::new_sequence( name => $item{new_sequence_name},
tracks => $item{'track_identifier(s?)'} || []
);
1
}
new_sequence_name: ident { $return =
$Audio::Nama::bn{$item{ident}}
? do { Audio::Nama::pager("$item{ident}: name already in use\n"), undef}
: $item{ident}
}
track_identifier: tid {
my $tid = $Audio::Nama::tn{$item{tid}} || $Audio::Nama::ti{$item{tid}} ;
if ($tid) { $tid }
else
{ Audio::Nama::throw("$item{tid}: track name or index not found.\n");
undef
}
}
tid: ident
list_sequences: _list_sequences {
Audio::Nama::pager( map {Audio::Nama::json_out($_->as_hash)}
grep {$_->{class} =~ /Sequence/} Audio::Nama::Bus::all() ); 1
}
show_sequence: _show_sequence { Audio::Nama::pager($Audio::Nama::this_sequence->list_output) }
append_to_sequence: _append_to_sequence track_identifier(s?) {
my $seq = $Audio::Nama::this_sequence;
my $items = $item{'track_identifier(s?)'} || [$Audio::Nama::this_track];
map { my $clip = $seq->new_clip($_); $seq->append_item($clip) } @$items;
1;
}
insert_in_sequence: _insert_in_sequence position track_identifier(s) {
my $seq = $Audio::Nama::this_sequence;
my $items = $item{'track_identifier(s)'};
my $position = $item{position};
for ( reverse map{ $seq->new_clip($_) } @$items ){ $seq->insert_item($_,$position) }
}
remove_from_sequence: _remove_from_sequence position(s) {
my $seq = $Audio::Nama::this_sequence;
( run in 0.551 second using v1.01-cache-2.11-cpan-f56aa216473 )