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/Jack.pm  view on Meta::CPAN

# ------- Jack port connect routines -------
package Audio::Nama;
use v5.36;
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 1.586 second using v1.01-cache-2.11-cpan-98e64b0badf )