Audio-Nama
view release on metacpan or search on metacpan
'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,
);
"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"
}
}
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.778 second using v1.01-cache-2.11-cpan-05444aca049 )