script }, 2, 'new with items did add items' );
isnt( $builder->play_script->[0], $script_a[0], 'play_script[0] is not a ref to the original' );
isnt( $builder->play_script->[1], $script_a[1], 'pla
r->play_script }, 4, 'add added items' );
isnt( $builder->play_script->[0], $script_a[0], 'play_script[0] is not a ref to the original' );
isnt( $builder->play_script->[1], $script_a[1], 'pla
snt( $builder->play_script->[2], $script_a[2], 'play_script[2] is not a ref to the original' );
isnt( $builder->play_script->[3], $script_a[3], 'play_script[3] is not a ref to the original' );
tr
$tsf = try { Audio::TinySoundFont->new($sf2_file) };
isnt( $tsf, undef, 'Can create a new object' );
my $preset = $tsf->preset('');
isnt( $preset, undef, 'Can get a preset' );
}
# Scalar ref
ew( \$sf2 ) } catch { note $_ ; undef };
isnt( $tsf, undef, 'Can create a new object from scalar ref' );
my $preset = try { $tsf->preset('') };
isnt( $preset, undef, 'Can get a preset' );
}
#
e $_ ; undef };
$sf2_fh->seek( 0, 0 );
isnt( $tsf, undef, 'Can create a new object from file handle' );
my $preset = try { $tsf->preset('') };
isnt( $preset, undef, 'Can get a preset' );
}
f = Audio::TinySoundFont->new("$Bin/tiny.sf2");
isnt( $tsf, undef, 'Can create a new object' );
# By Name
{
my $preset = $tsf->preset('test');
isnt( $preset, undef, 'Can get a preset' );
is( $p
eset = $tsf->preset_index(0);
isnt( $preset, undef, 'Can get a preset' );
is( $preset->name, '', 'Name is retrieved' );
my $preset = $tsf->preset_index(1);
isnt( $preset, undef, 'Can get a pr
t;
my $tsf = Audio::TinySoundFont->new("$Bin/tiny.sf2");
isnt( $tsf, undef, 'Can create a new object' );
my $preset = $tsf->preset('');
isnt( $preset, undef, 'Can get a preset' );
my $snd = $preset
->render( seconds => 5, note => 59, vel => 0.7, volume => .3 );
isnt( $snd, undef, 'Render works' );
note( 'Length of $snd: ' . length $snd );
cmp_ok( length($snd), '>=', 2 * 44_100 * 5, 'Rendering is