Audio-Nama

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Git::Repository" : "0",
            "Graph" : "0",
            "IO::Select" : "0",
            "IO::Socket" : "0",
            "IPC::Open3" : "0",
            "IPC::System::Simple" : "0",
            "JSON::XS" : "0",
            "List::MoreUtils" : "0",
            "List::Util" : "0",
            "Log::Log4perl" : "0",
            "Modern::Perl" : "0",
            "Module::Load::Conditional" : "0",
            "Parse::RecDescent" : "0",
            "Role::Tiny" : "0",
            "SUPER" : "0",
            "Term::ReadLine::Gnu" : "0",
            "Test2::Bundle::More" : "0",
            "Text::Diff" : "0",
            "Text::Format" : "0",
            "Text::Template" : "0",
            "Time::HiRes" : "0",

META.yml  view on Meta::CPAN

  Git::Repository: '0'
  Graph: '0'
  IO::Select: '0'
  IO::Socket: '0'
  IPC::Open3: '0'
  IPC::System::Simple: '0'
  JSON::XS: '0'
  List::MoreUtils: '0'
  List::Util: '0'
  Log::Log4perl: '0'
  Modern::Perl: '0'
  Module::Load::Conditional: '0'
  Parse::RecDescent: '0'
  Role::Tiny: '0'
  SUPER: '0'
  Term::ReadLine::Gnu: '0'
  Test2::Bundle::More: '0'
  Text::Diff: '0'
  Text::Format: '0'
  Text::Template: '0'
  Time::HiRes: '0'

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

package Audio::Nama;
use vars qw($VERSION);
$VERSION = "1.307";
use Modern::Perl '2020';
#use Carp::Always;
no warnings qw(uninitialized syntax);

########## External dependencies ##########

use Carp qw(carp cluck confess croak);
use Cwd;
use Data::Section::Simple qw(get_data_section);
use File::Find::Rule;
use File::Path;

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

# ---------------------- Bunch -----------------
#
# operate on a list of tracks 

package Audio::Nama;
use Modern::Perl '2020';

sub is_bunch {
	my $name = shift;
	$bn{$name} or $project->{bunch}->{$name}
}

{
my %set_stat = ( 
				 (map{ $_ => 'rw' } qw(rec play mon off) ), 
				 map{ $_ => 'rec_status' } qw(REC PLAY MON OFF )

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

# ------------  Bus --------------------
{
package Audio::Nama::Bus;
use Modern::Perl '2020'; use Carp; 
use Audio::Nama::Log qw(logsub logpkg);
use Audio::Nama::Globals qw(:trackrw $setup); 
our @ISA = qw( Audio::Nama::Object );

# share the following variables with subclasses

our $VERSION = 1.0;
our (%by_name);
use Audio::Nama::Object qw(
					name

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

# -------- CacheTrack ------
package Audio::Nama;
use Modern::Perl '2020';
use Storable 'dclone';
use Try::Tiny;
use Audio::Nama::Globals qw(:all);

# The $args hashref passed among the subroutines in this file
# has these fields:

# track
# additional_time
# processing_time

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

# ---------- ChainSetup-----------

package Audio::Nama::ChainSetup;
use Audio::Nama::Globals qw($file $config $jack $setup %tn %bn %en $mode :trackrw $this_engine);
use Audio::Nama::Log qw(logsub logpkg);
use Modern::Perl '2020';
our $VERSION = 1.0;
use Data::Dumper::Concise;
use Storable qw(dclone);
use Audio::Nama::Util qw(signal_format input_node output_node);
use Audio::Nama::Assign qw(json_out);
no warnings 'uninitialized';

our (

	$g,  # routing graph object - 

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


# To create a new config var:
#
# add the mapping, e.g. "$mix_to_disk_format $config->{mix_to_disk_format}"
# (without quotes) to file var_config

# these subs are in the main namespace

package Audio::Nama;

use Modern::Perl '2020';
no warnings 'uninitialized';

use Audio::Nama::Globals qw(:all);

# exclusive to this module
our ( 
	%subst,			# substitutions		
);

## configuration file

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

# ---------------- User Customization ---------------

package Audio::Nama;
use Modern::Perl '2020';

sub setup_user_customization {
	my $filename = $file->user_customization();

	# effect aliases from .namarc
	for( keys %{$config->{alias}->{effect}} )
	{ my $longform = $config->{alias}->{effect}->{$_};
		 if(effect_index($longform))
			{
				$fx_cache->{partial_label_to_full}->{$_} =

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

# ----------- Ecasound cleanup (post-recording) -----------
package Audio::Nama::EcasoundCleanup;
use Role::Tiny;
use Modern::Perl '2020';
our $VERSION = 1.0;
sub cleanup {
	my $self = shift;
	Audio::Nama::rec_cleanup();
}


package Audio::Nama;
use Modern::Perl '2020';
use Cwd;
use File::Spec::Functions qw(splitpath);
use Audio::Nama::Globals qw(:all);

sub rec_cleanup {  
	logsub((caller(0))[3]);
	logpkg(__FILE__,__LINE__,'debug',"transport still running, can't cleanup"), return if $this_engine->running;
	if( my (@files) = new_files_were_recorded() )
	{
		if( my @rec_tracks = Audio::Nama::ChainSetup::engine_wav_out_tracks() )

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

package Audio::Nama::EcasoundRun;
use Role::Tiny;
use Modern::Perl '2020';
our $VERSION = 1.0;
use Audio::Nama::Globals qw(:all);
use Audio::Nama::Log qw(logpkg logsub);
sub start { 
	package Audio::Nama;
	my $self = shift; 

	$self->valid_setup
		or throw("\nAudio engine is not configured. Cannot start.\n"),return;

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

# ------------- Effect-Chain and -Profile routines --------
# Effect Chains
#
# we have two type of effect chains
# + global effect chains - usually user defined, available to all projects
# + system generated effect chains, per project

{
package Audio::Nama::EffectChain;
use Modern::Perl '2020';
use Data::Dumper::Concise;
use Carp;
use Exporter qw(import);
use Storable qw(dclone);
use Audio::Nama::Effect  qw(fxn append_effect);
use Audio::Nama::Log qw(logpkg logsub);
use Audio::Nama::Assign qw(json_out);

use Audio::Nama::Globals qw($fx_cache %tn $fx);

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

package Audio::Nama::EffectNickname;
use Modern::Perl '2020';
our $VERSION = 1.0;
use Role::Tiny;

sub effect_nickname_count {
	my ($track, $nick) = @_;
	my $count = 0;
	for my $FX ($track->user_ops_o){ $count++ if $FX->name =~ /^$nick\d*$/ }
	$count
}
sub unique_surname {

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

## -------------- Effects registry ---------------

package Audio::Nama;
use Modern::Perl '2020';
use Audio::Nama::Util qw(round);
no warnings 'uninitialized';

## register data about LADSPA plugins, and Ecasound effects and
#  presets (names, ids, parameters, hints) 

sub prepare_static_effects_data{
	my $source = shift; 
	
	logsub((caller(0))[3]);

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

{
package Audio::Nama::Engine;
our $VERSION = 1.0;
use Modern::Perl '2020';
use Carp;
our @ISA;
our %by_name;
our @ports = (57000..57050);
our %port = (
	fof => 57201,
	bus => 57202,
);
use Audio::Nama::Globals qw(:all);
use Role::Tiny::With;

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

# ----------- Fade ------------
package Audio::Nama::Fade;
use Modern::Perl '2020';
use List::Util qw(min);
our $VERSION = 1.0;
use Carp;
use warnings;
no warnings qw(uninitialized);
our @ISA;
our($n, %by_index);
use Audio::Nama::Globals qw(:singletons %tn @fade_data); 
use Audio::Nama::Log qw(logsub logpkg);
use Audio::Nama::Effect  qw(remove_effect add_effect update_effect);

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

# ---------- Git Support ----------
package Audio::Nama;
use Modern::Perl '2020';
sub git { 
	return if is_test_script();
	$config->{use_git} or warn("@_: git command, but git is not enabled.
You may want to set use_git: 1 in .namarc"), return;
	logpkg(__FILE__,__LINE__,'debug',"VCS command: git @_"); 
	$project->{repo}->run(@_) 
}
sub repo_git_dir { join_path(project_dir(),'.git') }
sub init_repo_obj { $project->{repo} = Git::Repository->new( work_tree => project_dir() ) }
sub create_repo { Git::Repository->run( init => project_dir() )}

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

package Audio::Nama::Globals;
use Modern::Perl '2020';
our $VERSION = 1.0;

# set aliases for common indices
*bn = \%Audio::Nama::Bus::by_name;
*tn = \%Audio::Nama::Track::by_name;
*ti = \%Audio::Nama::Track::by_index;
*mn = \%Audio::Nama::Mark::by_name;
*en = \%Audio::Nama::Engine::by_name;
*fi = \%Audio::Nama::Effect::by_id;

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

# --------------------- Command Grammar ----------------------

package Audio::Nama;
use Audio::Nama::Effect  qw(:all);
use Modern::Perl '2020';

sub setup_grammar {

	### COMMAND LINE PARSER 

	logsub((caller(0))[3]);

	$text->{commands_yml} = get_data_section("commands_yml");
	$text->{commands_yml} = quote_yaml_scalars($text->{commands_yml});
	$text->{commands} = yaml_in( $text->{commands_yml}) ;

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;

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

# ------------ Graphical User Interface ------------

package Audio::Nama::Graphical;  ## gui routines
use Modern::Perl '2020'; use Carp;
our $VERSION = 1.071;
use Audio::Nama::Globals qw($term $prompt);

use Module::Load::Conditional qw(can_load);
use Audio::Nama::Assign qw(:all);
use Audio::Nama::Util qw(colonize);
no warnings 'uninitialized';

our @ISA = 'Audio::Nama';      ## default to root namespace, e.g.  Refresh_subs, Graphical_subs
						# actually this doesn't seem like a

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

# -------------------- Help ----------------------

package Audio::Nama;
use Modern::Perl '2020';

{
no warnings 'uninitialized';
sub helpline {
	my $cmd = shift;
	my $out = "Command: $cmd\n";
	$out .=  "Shortcuts: $text->{commands}->{$cmd}->{short}\n"
			if $text->{commands}->{$cmd}->{short};	
	$out .=  "Category: $text->{commands}->{$cmd}->{type}\n";
	my $what = munge_help($text->{commands}->{$cmd}->{what});

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

#      + override by graph node (higher priority)
#      + override by graph edge (highest priority)
# 2. (sub)class methods called as $object->method_name
#      + defined as _method_name (access via AUTOLOAD, overrideable by constructor)
#      + defined as method_name  (not overrideable)
# 3. AUTOLOAD
#      + any other method calls are passed to the the associated track
#      + illegal track method call generate an exception

package Audio::Nama::IO;
use Modern::Perl '2020';
use Carp;
use Data::Dumper::Concise;
our $VERSION = 1.0;

# provide following vars to all packages
our ($config, $jack, %tn);
our (%by_name); # index for $by_name{trackname}->{input} = $object
use Audio::Nama::Globals qw($config $jack %tn $setup :trackrw);
use Try::Tiny;

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

( run in 1.814 second using v1.00-cache-2.02-grep-82fe00e-cpan-d29e8ade9f55 )