main.js | |
---|---|
requirejs.config({
baseUrl: 'js',
shim: {
'jquery': { exports: '$' },
'jquery.ui': ['jquery'],
'underscore': { exports: '_' }
},
paths: {
'jquery': 'lib/jquery-2.0.2.min',
'jquery.ui': 'lib/jquery-ui-1.10.3.min',
'underscore': 'lib/underscore'
}
});
| |
This module is the entry point of the app. It initializes all user interface components, initializes the audio system and loads the audio clips. |
|
require(
['ui-audio', 'ui-displays', 'ui-presets', 'audio', 'filter', 'presets'],
function(uiAudio, uiDisplays, uiPresets, audio, filter, presets) {
| |
Prevent the user from selecting text. |
document.onselectstart = function() { return false; };
|
Initialize to a filter that does nothing. |
filter.compute({ zeros: [], poles: [] });
|
Initialize the user interface. |
uiAudio.setup();
uiDisplays.setup();
uiPresets.setup(uiDisplays.repaint);
|
Callback function for the script processor. It applies the |
function process(e) {
var leftIn = e.inputBuffer.getChannelData(0);
var rightIn = e.inputBuffer.getChannelData(1);
var leftOut = e.outputBuffer.getChannelData(0);
var rightOut = e.outputBuffer.getChannelData(1);
for (var i = 0; i < leftIn.length; i++) {
var out = filter.process(leftIn[i], rightIn[i]);
leftOut[i] = out.left;
rightOut[i] = out.right;
}
}
var audioFiles = [
'audio/funkyguitar.mp3',
'audio/saxophone.mp3',
'audio/jazzpiano.mp3',
'audio/ocean.mp3',
'audio/breaks.mp3',
'audio/hiphopbeat.mp3',
'audio/drumnbass.mp3',
'audio/psytrance.mp3'
];
audio.init(process);
_.each(audioFiles, function(audioFile) {
audio.loadAudio(audioFile);
});
});
|