소스 검색

added stereo support (well, still mono output but accepts stereo files)

dds
Matt Bradshaw 7 년 전
부모
커밋
adc533f9ca
2개의 변경된 파일13개의 추가작업 그리고 9개의 파일을 삭제
  1. +0
    -6
      extras/wav2sketch/.gitignore
  2. +13
    -3
      extras/wav2sketch/wav2sketch.js

+ 0
- 6
extras/wav2sketch/.gitignore 파일 보기

AudioSampleKickULAW.cpp
AudioSampleKickULAW.h
AudioSampleKickPCM.cpp
AudioSampleKickPCM.h
AudioSampleKick.cpp
AudioSampleKick.h

+ 13
- 3
extras/wav2sketch/wav2sketch.js 파일 보기

/* /*
TODO TODO
multiple files
stereo
non-44100 sample rates non-44100 sample rates
u-law encoding
*/ */


var audioFileChooser = document.getElementById('audioFileChooser'); var audioFileChooser = document.getElementById('audioFileChooser');
function processFile(file, fileName) { function processFile(file, fileName) {
var context = new OfflineAudioContext(1,10*44100,44100); var context = new OfflineAudioContext(1,10*44100,44100);
context.decodeAudioData(file, function(buffer) { context.decodeAudioData(file, function(buffer) {
var monoData = buffer.getChannelData(0); // start with mono, do stereo later
var monoData = [];
if(buffer.numberOfChannels == 1) {
monoData = buffer.getChannelData(1);
} else if(buffer.numberOfChannels == 2) {
var leftData = buffer.getChannelData(0);
var rightData = buffer.getChannelData(1);
for(var i=0;i<buffer.length;i++) {
monoData[i] = (leftData[i] + rightData[i]) / 2;
}
} else {
alert("ONLY MONO AND STEREO FILES ARE SUPPORTED");
}
var outputData = []; var outputData = [];
for(var i=0;i<monoData.length;i+=2) { for(var i=0;i<monoData.length;i+=2) {
var a = floatToUnsignedInt16(monoData[i]); var a = floatToUnsignedInt16(monoData[i]);

Loading…
취소
저장