shared-utils

2.0.1 • Public • Published

shared-utils

Contains useful utilities like random number generator for ints or floats in min - max range inclusive

Available at https://github.com/scottstensland/shared-utils

synthesize an audio buffer with random noise OR sinusoidal curve

 
// ------------  populate buffer with sin curve ------------  //
 
// var SIZE_BUFFER_SOURCE = 5;
var SIZE_BUFFER_SOURCE = 256;
// var SIZE_BUFFER_SOURCE = 4096;
// var SIZE_BUFFER_SOURCE = 16384;
 
var samples_per_cycle = 64;
 
var source_obj = {}; // we populate its buffer then save to output WAV file 
var target_obj = {}; // then read back WAV file to populate this target buffer then do curve diff to confirm curves match
 
source_obj = audio_utils.pop_audio_buffer(SIZE_BUFFER_SOURCE, samples_per_cycle);
 

synthesize an audio buffer with random noise

 
var shared_utils = require("shared-utils");
var path = require('path');
 
shared_utils.set_random_seed(17); // comment out if U want fresh random sequence for each run 
                                  // otherwise random sequence repeats across subsequent runs of this script
 
var SIZE_BUFFER_SOURCE = 256;
 
var source_obj = {}; // we populate its buffer with random float values then save to output WAV file 
 
source_obj.buffer = new Float32Array(SIZE_BUFFER_SOURCE);
 
var max_index = SIZE_BUFFER_SOURCE;
 
for (var index = 0; index < max_index; index++) {
 
    source_obj.buffer[index] = shared_utils.get_random_in_range_inclusive_float(-1.0, 1.0);
 
    // console.log(index, " pop_audio_buffer ", source_obj.buffer[index]);
}
 

write typed array 32 bit float buffer (Float32Array) to output file WAV format 16 bit precision

 
var output_dir = process.argv[2] || "/tmp";
var output_format = ".wav";
var source_wave = "source_wave_shared_utils_test";
var source_wave_filename = path.join(output_dir, source_wave + output_format);
 
shared_utils.write_32_bit_float_buffer_to_16_bit_wav_file(source_obj, source_wave_filename);
 

Package Sidebar

Install

npm i shared-utils

Weekly Downloads

340

Version

2.0.1

License

none

Unpacked Size

92.9 kB

Total Files

16

Last publish

Collaborators

  • eventhorizon