mirror of
https://github.com/musix-org/musix-oss
synced 2025-06-17 13:56:01 +00:00
Modules
This commit is contained in:
76
node_modules/node-opus/test/old/app.js
generated
vendored
Normal file
76
node_modules/node-opus/test/old/app.js
generated
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
var opus = require('../../');
|
||||
var fs = require('fs');
|
||||
|
||||
//
|
||||
// Generate a sin tone.
|
||||
//
|
||||
var freq = 123;
|
||||
var time = 5;
|
||||
var rate = 48000;
|
||||
|
||||
// Allocate a buffer for the tone. We use 16-bit samples.
|
||||
var samples = rate*time;
|
||||
var length = samples*2;
|
||||
var b = Buffer.alloc(length);
|
||||
|
||||
// Generate the tone.
|
||||
for( var i = 0; i < rate*time; i++ ) {
|
||||
var value = Math.round( Math.sin( 2*Math.PI*i*freq/rate ) * Math.pow( 2, 14 ) );
|
||||
b.writeInt16LE( value, i*2 );
|
||||
}
|
||||
|
||||
//
|
||||
// Create the encoder.
|
||||
//
|
||||
|
||||
// Use 20ms frames.
|
||||
var frame_size = rate * 0.02;
|
||||
var encoder = new opus.OpusEncoder( rate );
|
||||
|
||||
// Open the output streams.
|
||||
var output = fs.createWriteStream( 'out.opus' );
|
||||
var input_raw = fs.createWriteStream( 'in.pcm' );
|
||||
var output_raw = fs.createWriteStream( 'out.pcm' );
|
||||
|
||||
var read = 0;
|
||||
while( b.length > 0 ) {
|
||||
var size = Math.min( b.length, frame_size );
|
||||
|
||||
// If the input buffer is smaller than the frame_size, copy it into a new 0-padded buffer.
|
||||
if( size < frame_size ) {
|
||||
var temp = Buffer.alloc( frame_size );
|
||||
temp.fill(0);
|
||||
b.copy( temp );
|
||||
b = temp;
|
||||
}
|
||||
|
||||
// We encode frame_size 16-bit samples. This requires a frame_size*2 buffer of bytes.
|
||||
var bufferSize = frame_size * 2;
|
||||
var toEncode = b.slice(0, bufferSize);
|
||||
console.log( frame_size );
|
||||
|
||||
// Encode and decode.
|
||||
var encoded = encoder.encode( toEncode );
|
||||
var decoded = encoder.decode( encoded );
|
||||
|
||||
// Write the results in the output files.
|
||||
input_raw.write( toEncode );
|
||||
output.write( encoded );
|
||||
output_raw.write( decoded );
|
||||
|
||||
// Move the buffer forward by the buffer size.
|
||||
b = b.slice( bufferSize );
|
||||
}
|
||||
|
||||
output.end();
|
||||
input_raw.end();
|
||||
output_raw.end();
|
||||
|
||||
console.log( 'Wrote following files.' );
|
||||
console.log( 'in.pcm : Input PCM signal' );
|
||||
console.log( 'out.opus : OPUS encoded input signal' );
|
||||
console.log( 'out.pcm : Decoded PCM signal' );
|
||||
|
22
node_modules/node-opus/test/old/decode-file.js
generated
vendored
Normal file
22
node_modules/node-opus/test/old/decode-file.js
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
var ogg = require( 'ogg' );
|
||||
var opus = require( '../../' );
|
||||
|
||||
var oggDecoder = new ogg.Decoder();
|
||||
|
||||
oggDecoder.on( 'stream', function( stream ) {
|
||||
|
||||
var opusDecoder = new opus.Decoder();
|
||||
opusDecoder.on( 'format', function( format ) {
|
||||
opusDecoder.pipe( process.stdout );
|
||||
});
|
||||
opusDecoder.on( 'error', function( err ) {
|
||||
console.log( err );
|
||||
});
|
||||
|
||||
stream.pipe( opusDecoder );
|
||||
});
|
||||
|
||||
process.stdin.pipe( oggDecoder );
|
||||
|
||||
|
12
node_modules/node-opus/test/old/encode-file.js
generated
vendored
Normal file
12
node_modules/node-opus/test/old/encode-file.js
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
var ogg = require( 'ogg' );
|
||||
var opus = require( '../../' );
|
||||
|
||||
var oggEncoder = new ogg.Encoder();
|
||||
var opusEncoder = new opus.Encoder();
|
||||
|
||||
process.stdin.pipe( opusEncoder );
|
||||
opusEncoder.pipe( oggEncoder.stream() );
|
||||
oggEncoder.pipe( process.stdout );
|
||||
|
||||
|
Reference in New Issue
Block a user