Audio-Nama

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

		'Text::Diff'  => 0,
		'Text::Format'  => 0,
		'Text::Template' => 0,
		'Tickit::Async' => 0,
		'Tickit::Widget::Static' => 0,
		'Tickit::Widget::Entry' => 0,
		'Tickit::Widget::ScrollBox' => 0,
		'Tickit::Widget::VBox' => 0,
		'Tickit::Widget::Entry::Plugin::Completion' => 0,
		'Time::HiRes'  => 0,
		'Try::Tiny'  => 0,
		'YAML::Tiny'  => 0,
      'perl' => '5.036', 
   },
   test_requires => {
	  'Test2::Bundle::More' => 0,
   },
   license => 'perl',
   create_license => 0,
   create_readme  => 0,
);

META.json  view on Meta::CPAN

            "Text::Diff" : "0",
            "Text::Format" : "0",
            "Text::Template" : "0",
            "Tickit::Async" : "0",
            "Tickit::Widget::Entry" : "0",
            "Tickit::Widget::Entry::Plugin::Completion" : "0",
            "Tickit::Widget::ScrollBox" : "0",
            "Tickit::Widget::Static" : "0",
            "Tickit::Widget::VBox" : "0",
            "Time::HiRes" : "0",
            "Try::Tiny" : "0",
            "YAML::Tiny" : "0",
            "autodie" : "0",
            "perl" : "5.036"
         }
      },
      "test" : {
         "requires" : {
            "Test2::Bundle::More" : "0"
         }
      }

META.yml  view on Meta::CPAN

  Text::Diff: '0'
  Text::Format: '0'
  Text::Template: '0'
  Tickit::Async: '0'
  Tickit::Widget::Entry: '0'
  Tickit::Widget::Entry::Plugin::Completion: '0'
  Tickit::Widget::ScrollBox: '0'
  Tickit::Widget::Static: '0'
  Tickit::Widget::VBox: '0'
  Time::HiRes: '0'
  Try::Tiny: '0'
  YAML::Tiny: '0'
  autodie: '0'
  perl: '5.036'
resources:
  license: http://dev.perl.org/licenses/
version: '1.600'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'

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

use Term::ReadLine;
use Text::Diff;
use Text::Format;
use Tickit;
use Tickit::Async;
use Tickit::Console;
use Tickit::Widgets qw(Static Entry ScrollBox VBox);
use Tickit::Widget::Entry::Plugin::History;
use Tickit::Widget::Entry::Plugin::Completion;
use Tie::Simple;
use Try::Tiny;
use Path::Tiny;
# use File::HomeDir;# Assign.pm
# use File::Slurp;  # several
# use List::Util;   # Fade.pm
# use List::MoreUtils; # Effects.pm
# use Time::HiRes; # automatically detected
# use Tk;           # loaded conditionally

########## Nama modules ###########
#

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

# -------- CacheTrack ------
package Audio::Nama;
use v5.36;
use Storable 'dclone';
use Try::Tiny;
use Audio::Nama::Globals qw(:all);
use Audio::Nama::Util qw(timer start_event stop_event);

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

# track
# additional_time
# processing_time
# original_version

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

package Audio::Nama::IO;
use v5.36;
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;

sub initialize { %by_name = () }

# we will use the following to map from graph node names
# to IO class names

our %io_class = qw(
	null_in					Audio::Nama::IO::from_null
	null_out				Audio::Nama::IO::to_null
	soundcard_in 			Audio::Nama::IO::from_soundcard

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

	 'Audio::Nama::TrackComment',
	 'Audio::Nama::TrackEffect',
	 'Audio::Nama::TrackLatency',
	 'Audio::Nama::TrackWaveform',
	 'Audio::Nama::EffectNickname',
	 'Audio::Nama::BusUtil';
use Audio::Nama::Globals qw(:all);
use Audio::Nama::Log qw(logpkg logsub);
use Audio::Nama::Effect  qw(fxn);
use List::MoreUtils qw(first_index);
use Try::Tiny;
use v5.36;
our $VERSION = 1.0;
use Carp qw(carp cluck croak);
use File::Copy qw(copy);
use File::Slurp;
use Memoize qw(memoize unmemoize);
no warnings qw(uninitialized redefine);

use Audio::Nama::Util qw(freq input_node dest_type dest_string join_path);
use Audio::Nama::Assign qw(json_out);

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

package Audio::Nama::TrackEffect;
use v5.36;
our $VERSION = 1.0;
use Role::Tiny;
use Audio::Nama::Effect qw(fxn);
use Audio::Nama::Globals qw($project);
use Try::Tiny;
use List::MoreUtils qw(first_index);

# current operator and current parameter for the track
sub op { $project->{current_op}->{$_[0]->name} //= $_[0]->{ops}->[-1] }

sub param { $project->{current_param}->{$_[0]->op} //= 1 }

sub stepsize {
	$project->{current_stepsize}->{$_[0]->op}->[$_[0]->param] //= 0.01 
	# TODO use hint if available

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

package Audio::Nama::TrackWaveform;
use Audio::Nama::Globals qw($project $config $gui %ti);
use v5.36;
our $VERSION = 1.0;
use Role::Tiny;
use Try::Tiny;

sub waveform {
	my $self = shift;
	Audio::Nama::Waveform->new( 	project => $self->project, 
						wav     => $self->current_wav,
						start   => $self->region_start_time,
						end     => $self->region_end_time,
						track	=> $self,
	);
}

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

package Audio::Nama::Waveform;
use Audio::Nama::Globals qw($project $config $gui %ti);
use Audio::Nama::Util qw(join_path);
use v5.36;
our $VERSION = 1.0;
use Try::Tiny;
use vars qw(%by_name);
use Audio::Nama::Object qw(wav track project start end);

# * objects of this class represent a waveform display 
# * each object is associated with an audio file
# * object will find or generate PNG for the audio
# * will display waveform
#    + if shift, correctly position PNG
#    + if region, trim the PNG existing for the track



( run in 0.377 second using v1.01-cache-2.11-cpan-05444aca049 )