Audio-Nama

 view release on metacpan or  search on metacpan

lib/Audio/Nama/Graph.pm  view on Meta::CPAN

package Audio::Nama::Graph;
use Modern::Perl '2020';
our $VERSION = 1.0;
use Carp;
use Graph;
use Audio::Nama::Util qw(input_node output_node);
use Audio::Nama::Log qw(logsub logpkg);
use Audio::Nama::Globals qw(:trackrw);
our(%reserved);
# this dispatch table also identifies labels reserved
# for signal sources and sinks.
*reserved = \%Audio::Nama::IO::io_class;

sub add_path_for_rec {

	# connect input source to file 
	
	my($g,$track) = @_;

	logsub("&add_path_for_rec: track ".$track->name);

	# Case 1: Regular track
	if( $track->source_type !~ /track|bus|loop/  and !  $track->is_mixing)
	{
		# create temporary track for rec_file chain

		# (it may be possible to avoid creating a 
		# temporary track by providing the data as 
		# graph edge attributes)

		logpkg(__FILE__,__LINE__,'debug',"rec file link for ".$track->name);
		my $name = $track->name . '_rec_file';
		my $anon = Audio::Nama::SlaveTrack->new( 
			target => $track->name,
			rw => OFF,
			group => 'Temp',
			hide => 1,
			novol => 1,
			nopan => 1,
			name => $name);

		# connect writepath: source --> temptrackname --> wav_out
		
		$g->add_path(input_node($track->source_type), $name, 'wav_out');


		$g->set_vertex_attributes($name, { 

			# set chain_id to R3 (if original track is 3) 

			chain_id => 'R'.$track->n,

			# do not perform mono-to-stereo copy,
			# (override IO class default)

			mono_to_stereo => '', 
		});

	} 
	# Case 2: Mix track
	elsif ($track->source_type =~ /bus|track/ or $track->is_mixing) 
	{

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.419 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )