Search code examples
javascriptnode.jsaudiocontext

Write a wav file in Node.js from an AudioBuffer


I am new in Node.js programming and I am trying to convert a m4a file to wav file.

I used audiobuffer-to-wav, and web-audio-api. This is my code:

const fs = require('fs');
const toWav = require('audiobuffer-to-wav');
const AudioContext = require('web-audio-api').AudioContext;
const audioContext = new AudioContext;

let resp = fs.readFileSync('sample.m4a');

audioContext.decodeAudioData(resp, buffer => {
  let wav = toWav(buffer);
  console.log(buffer.length);
  console.log(wav); 
});

I want to know how to save the wav variable into a file in Node.js


Solution

  • const fs = require('fs');
    const toWav = require('audiobuffer-to-wav');
    const AudioContext = require('web-audio-api').AudioContext;
    const audioContext = new AudioContext;
     let resp = fs.readFileSync('sample.m4a');
    
    var audioStack = [];
    
    var header = require('waveheader');
    
    audioContext.decodeAudioData(resp, buffer => {
        let wav = toWav(buffer); 
        var chunk = new Uint8Array(wav);
        console.log(chunk); 
        fs.appendFile('bb.wav', new Buffer(chunk), function (err) {
        });
    
    });
    

    This is my answer. Thanks Kalamarico.