ptracks2buf
ptracks2buf(
@frequencies ## llll (required)
@magnitudes ## llll (required)
@phases ## llll (required)
@framesize 2048
@hopsize 512
@ampunit 0
@antimeunit 1
@angleunit 0
@frequnit 0
) -> llll
Converts a partial track analysis, which can be generated via the buf2ptracks
function, into a buffer.
warning
buf2ptracks
is computationally expensive and can take a long time.
Arguments
@frequencies
[llll]: Frequency bins. (required)@magnitudes
[llll]: Magnitude bins. (required)@phases
[llll]: Phases bins. (required)@framesize
[int]: Frame size. (default:2048
).@hopsize
[int]: Hop size. (default:512
).@ampunit
[int]: Amplitude unit. (default:0
).0
: Linear1
: Decibels
@antimeunit
[int]: Analysis time unit. (default:1
).0
: Milliseconds1
: Samples2
: Duration ratio3
: Milliseconds difference4
: Samples difference
@angleunit
[int]: Angle unit. (default:0
).0
: Radians1
: Degrees2
: Turns
@frequnit
[int]: Unit for frequency components in@func
. (default:0
).0
: Hertz1
: BPM2
: Midicents3
: MIDI
Output
Buffer [llll]
Usage
$buffer = importaudio('poem.wav').setkey('duration', 1500); ## input buffer
$ptracks = $buffer.buf2ptracks(@magnitudethreshold 0.001); ## extract partial tracks
## unpack frequency, magnitude, and phase tracks
$freqs = $ptracks.getkey('frequencies');
$mags = $ptracks.getkey('magnitudes');
$phases = $ptracks.getkey('phases');
## resynthesize to buffer
$resynth = ptracks2buf(
@frequencies $freqs
@magnitudes $mags
@phases $phases
);
## transcribe and render
$resynth.transcribe();
render(@play 1)