Audio-Nama
view release on metacpan or search on metacpan
lib/Audio/Nama/Track.pm view on Meta::CPAN
# ---------- Track -----------
#
package Audio::Nama;
{
package Audio::Nama::Track;
use Role::Tiny::With;
with 'Audio::Nama::Wav',
'Audio::Nama::WavModify',
'Audio::Nama::TrackRegion',
'Audio::Nama::TrackIO',
'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);
use vars qw($n %by_name @by_index %track_names %by_index);
use Audio::Nama::Object qw(
class
is_mix_track
n
name
group
rw
version
midi_versions
width
ops
vol
pan
fader
latency_op
offset
old_vol_level
old_pan_level
playat
region_start
region_end
modifiers
looping
hide
source_id
source_type
last_source
send_id
send_type
target
project
forbid_user_ops
engine_group
current_edit
);
# Note that ->vol return the effect_id
# ->old_volume_level is the level saved before muting
# ->old_pan_level is the level saved before pan full right/left
# commands
initialize();
### class subroutines
sub initialize {
$n = 0; # incrementing numeric key
%by_index = (); # return ref to Track by numeric key
( run in 1.930 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )