Audio-Nama
view release on metacpan - search on metacpan
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 distributionview release on metacpan - search on metacpan
( run in 0.419 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )