WAVE Item Examples

From STX Wiki
Jump to navigation Jump to search
Wave Item
INTRODUCTION NEW SET ATTRIBUTES MESSAGES EXAMPLES

The following example displays a wave's samples in a list box.

[macro wave_item_table_data_example]
    //
    // ask user to select a soundfile from disk
    //
    #sf := butil 'FileDialog open ; Select a soundfile'
    if '$#sf' == '' exit
    //
    // load the soundfile in STx
    //
    load soundfile '$#sf' /Read
    if '$rc' > 0 em $rc ; LOAD SOUNDFILE failed ($emsg)
    readvar csfh #srate #nch #nsamples #code #type #mode
    //
    // create a wave item addressing the soundfile
    //
    #wave := new wave * 1_$#nsamples
    if '$#wave[?]' != 'wave' em -1 ; wave creation failed ($emsg)
    //
    // create table to receive wave data
    //
    #table := new table * /Parameter $#nch num
    //
    // play the contents of the soundfile
    //
    $#wave copy $#table /Write
    //
    // display wave contents in table
    //
    showitem $#table
    //
    // use message box to prevent script from ending
    //
    um 'Do you want to exit?'
    //
    // clean up
    //
    delete $#wave $#table
exit