Audio-Nama
view release on metacpan or search on metacpan
lib/Audio/Nama/Bus.pm view on Meta::CPAN
target => $_,
group => $name,
width => 2,
hide => 1,
)
} $bn{Main}->tracks;
}
sub update_submix {
my $name = shift;
add_submix( $name,
$bn{$name}->send_id),
"dummy",
}
sub remove_submix_helper_tracks {
my $name = shift;
#say "got name: $name";
my @submixes = submixes();
#say "got submixes:", Dumper \@submixes;
lib/Audio/Nama/CacheTrack.pm view on Meta::CPAN
my $name = $args->{track}->name;
my @files = grep{/$name/} new_files_were_recorded();
if (@files ){
update_cache_map($args);
caching_cleanup($args);
} else { throw("track cache operation failed!") }
undef $setup->{cache_track_args};
}
sub update_cache_map {
logsub((caller(0))[3]);
my $args = shift;
logpkg(__FILE__,__LINE__,'debug', "updating track cache_map");
logpkg(__FILE__,__LINE__,'debug', "current track cache entries:",
sub {
join "\n","cache map",
map{($_->dump)} Audio::Nama::EffectChain::find(track_cache => 1)
});
my $track = $args->{track};
lib/Audio/Nama/EcasoundRun.pm view on Meta::CPAN
schedule_wraparound()
if $mode->{loop_enable}
and defined $start
and defined $end
and ! Audio::Nama::ChainSetup::really_recording();
update_clock_display();
}
sub update_clock_display {
$ui->clock_config(-text => current_position());
}
sub schedule_wraparound {
return unless $mode->{loop_enable};
my $here = $this_engine->ecasound_iam("getpos");
my $start = Audio::Nama::Mark::loop_start();
my $end = Audio::Nama::Mark::loop_end();
my $diff = $end - $here;
logpkg(__FILE__,__LINE__,'debug', "here: $here, start: $start, end: $end, diff: $diff");
lib/Audio/Nama/Effect.pm view on Meta::CPAN
while( fxn($fx->{id_counter})){ $fx->{id_counter}++};
$fx->{id_counter}
}
## synchronize Ecasound chain operator parameters
# with Nama effect parameter
sub update_ecasound_effect {
local $config->{category} = 'ECI_FX';
# update the parameters of the Ecasound chain operator
# referred to by a Nama operator_id
#logsub((caller(0))[3]);
return unless $this_engine->valid_setup;
#my $es = ecasound_iam("engine-status");
#logpkg(__FILE__,__LINE__,'debug', "engine is $es");
lib/Audio/Nama/Effect.pm view on Meta::CPAN
logpkg(__FILE__,__LINE__,'debug', "operator $id: track $chain, index: $i, offset: ". $FX->offset . " param $param, value $val");
$this_engine->current_chain_operator($i);
$this_engine->current_chain_operator_parameter($param);
$this_engine->ecasound_iam("copp-set $val");
}
}
# set both Nama effect and Ecasound chain operator
# parameters
sub update_effect {
my ($id, $param, $val) = @_;
return if ! defined fxn($id);
fxn($id)->params->[$param] = $val;
update_ecasound_effect( @_ );
}
sub sync_effect_parameters {
logsub((caller(0))[3]);
local $config->{category} = 'ECI_FX';
lib/Audio/Nama/Graphical.pm view on Meta::CPAN
}],
);
$ui->track_gui( $tn{Main}->n, @rw_items );
$ui->track_gui( $tn{Mixdown}->n);
#$ui->group_gui('Main');
}
sub update_version_button {
my $ui = shift;
my ($n, $v) = @_;
carp ("no version provided \n") if ! $v;
my $w = $gui->{tracks}->{$n}->{version};
$w->radiobutton(
-label => $v,
-value => $v,
-command =>
sub { $gui->{tracks}->{$n}->{version}->configure(-text=>$v)
unless $ti{$n}->rec }
lib/Audio/Nama/Graphical.pm view on Meta::CPAN
sub destroy_marker {
my $ui = shift;
my $pos = shift;
$gui->{marks}->{$pos}->destroy;
}
sub setup_playback_indicator {
my $ui = shift;
$project->{events}->{update_playback_position_display} = AE::timer(0, 0.1, \&update_indicator);
}
sub update_indicator {
$gui->{wwcanvas}->delete('playback-indicator');
my $pos = Audio::Nama::ecasound_iam("getpos");
my $xpos = int( $pos * $config->{waveform_pixels_per_second} );
$gui->{wwcanvas}->createLine(
$xpos,0,
$xpos,$config->{waveform_canvas_y},
-fill => 'red',
-width => 1,
-tags => 'playback-indicator'
);
lib/Audio/Nama/Jack.pm view on Meta::CPAN
# ------- Jack port connect routines -------
package Audio::Nama;
use Modern::Perl '2020';
use File::Slurp;
no warnings 'uninitialized';
# general functions
sub update_jack_client_list {
state $warn_count;
#logsub((caller(0))[3]);
# cache current JACK status
# skip if Ecasound is busy
return if $this_engine->started();
if( $jack->{jackd_running} = process_is_running('jackd') ){
# reset our clients data
$jack->{clients} = {};
lib/Audio/Nama/Text.pm view on Meta::CPAN
sub transport_gui {}
sub group_gui {}
sub track_gui {}
sub preview_button {}
sub create_master_and_mix_tracks {}
sub time_gui {}
sub refresh {}
sub refresh_group {}
sub refresh_track {}
sub flash_ready {}
sub update_master_version_button {}
sub update_version_button {}
sub paint_button {}
sub project_label_configure{}
sub length_display{}
sub clock_display {}
sub clock_config {}
sub manifest {}
sub global_version_buttons {}
sub destroy_widgets {}
sub destroy_marker {}
sub restore_time_marks {}
( run in 0.503 second using v1.01-cache-2.11-cpan-49f99fa48dc )