';
}
var x = new PKAudioFXModal({
id: filter_id,
title:'Graphic EQ',
clss: num_of_bands === 20 ? 'pk_dens' : '',
custom_pres:custom_presets.Get (filter_id),
ondestroy: function ( q ) {
app.ui.InteractionHandler.on = false;
app.ui.KeyHandler.removeCallback (modal_esc_key);
},
preview: function ( q ) {
var ranges = q.el_body.getElementsByTagName('input');
var len = ranges.length;
app.fireEvent ('RequestActionFX_PREVIEW_PARAMEQ', getvalue (ranges));
},
buttons: [
{
title:'Apply EQ',
clss:'pk_modal_a_accpt',
callback: function( q ) {
var ranges = q.el_body.getElementsByTagName('input');
app.fireEvent ('RequestActionFX_PARAMEQ', getvalue (ranges));
q.Destroy ();
}
}
],
presets:presets,
body:'
' +
bands_str+
'
',
//'Volume Graph',
setup:function( q ) {
var ranges = q.el_body.getElementsByTagName('input');
var len = ranges.length;
//var graph_btn = q.el_body.getElementsByTagName ('a')[0];
//graph_btn.onclick = function () {
// auto = new PKAudioEditor._deps.FxAUT (PKAudioEditor, q, function ( obj, range ) {
// obj.type = range.getAttribute ('data-type');
// obj.freq = range.getAttribute ('data-freq')/1;
// obj.q = band_q;
// });
//};
for (var i = 0; i < len; ++i) {
var range = ranges[i];
range.oninput = function() {
var span = this.parentNode.getElementsByTagName('span')[0];
span.innerHTML = ((this.value) >> 0) + ' db';
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', getvalue (ranges));
};
}
app.fireEvent ('RequestPause');
app.ui.InteractionHandler.checkAndSet (modal_name);
app.ui.KeyHandler.addCallback (modal_esc_key, function ( e ) {
if (!app.ui.InteractionHandler.check (modal_name)) return ;
q.Destroy ();
}, [27]);
}
}, app);
x.Show();
});
app.listenFor ('RequestActionFXUI_HardLimiter', function () {
app.fireEvent ('RequestSelect', 1);
var x = new PKAudioFXModal({
title: 'Hard Limiting',
ondestroy: function( q ) {
app.ui.InteractionHandler.on = false;
app.ui.KeyHandler.removeCallback ('modalTemp');
},
buttons:[
{
title:'Hard Limiting',
clss:'pk_modal_a_accpt',
callback: function( q ) {
app.fireEvent ('RequestActionFX_HardLimit', q.updateFilter (q));
q.Destroy ();
}
}
],
preview: function ( q ) {
app.fireEvent ('RequestActionFX_PREVIEW_HardLimit', q.updateFilter ( q ));
},
body:
'
'+
'
' +
'
'+
''+
'99%
'+
'
'+
''+
'Ratio 0%
'+
'
'+
''+
'10 ms
',
updateFilter : function ( q ) {
var val = [q.el_body.getElementsByClassName('pk_check')[0].checked];
var ranges = q.el_body.getElementsByClassName('pk_horiz');
for (var i = 0; i < ranges.length; ++i)
{
var range = ranges [ i ];
val.push (range.value / 1);
}
return (val);
},
setup:function( q ) {
var ranges = q.el_body.getElementsByClassName('pk_horiz');
ranges[0].oninput = function() {
var span = this.parentNode.getElementsByTagName('span')[0];
span.innerHTML = (((this.value/1)*100) >> 0) + '%';
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', q.updateFilter (q));
};
ranges[1].oninput = function() {
var span = this.parentNode.getElementsByTagName('span')[0];
span.innerHTML = 'Ratio ' + (((this.value/1)*100) >> 0) + '%';
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', q.updateFilter (q));
};
ranges[2].oninput = function() {
var span = this.parentNode.getElementsByTagName('span')[0];
span.innerHTML = (this.value/1) + 'ms';
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', q.updateFilter (q));
};
app.fireEvent ('RequestPause');
app.ui.InteractionHandler.checkAndSet ('modal');
app.ui.KeyHandler.addCallback ('modalTemp', function ( e ) {
q.Destroy ();
}, [27]);
}
}, app);x.Show();
});
app.listenFor ('RequestActionFXUI_Delay', function () {
app.fireEvent ('RequestSelect', 1);
var filter_id = 'delay';
var auto = null;
var getvalue = function ( q ) {
var ret;
var value = [];
if (auto) {
value = auto.GetValue ();
} else {
var inputs = q.el_body.getElementsByTagName('input');
value[0] = {val:inputs[0].value / 1};
value[1] = {val:inputs[1].value / 1};
value[2] = {val:inputs[2].value / 1};
}
ret = {
delay: value[0],
feedback: value[1],
mix: value[2]
};
return (ret);
};
var x = new PKAudioFXModal({
id : filter_id,
title : 'Apply Delay to selected range',
clss : 'pk_bigger',
ondestroy: function ( q ) {
app.ui.InteractionHandler.on = false;
app.ui.KeyHandler.removeCallback (modal_esc_key);
},
presets:[
{name:'Classic',val:'0.3,0.4,0.4'},
{name:'Spacey',val:'3.0,0.6,0.3'}
],
custom_pres:custom_presets.Get (filter_id),
preview: function ( q ) {
var val = getvalue (q);
app.fireEvent ('RequestActionFX_PREVIEW_DELAY', val);
},
buttons: [
{
title:'Apply',
clss:'pk_modal_a_accpt',
callback: function( q ) {
var val = getvalue (q);
app.fireEvent ('RequestActionFX_DELAY', val);
q.Destroy ();
}
}
],
body:'
' +
''+
'0.28
'+
'
' +
''+
'0.5
'+
'
' +
''+
'0.4
',
//'Volume Graph',
setup:function( q ) {
var inputs = q.el_body.getElementsByTagName ('input');
for (var i = 0; i < inputs.length; ++i)
{
inputs[i].oninput = function () {
var span = this.parentNode.getElementsByTagName ('span')[0];
span.innerHTML = (this.value/1).toFixed (3);
updateFilter ();
};
}
//var graph_btn = q.el_body.getElementsByTagName ('a')[0];
//graph_btn.onclick = function () {
// auto = new PKAudioEditor._deps.FxAUT (app, q);
//};
function updateFilter() {
var val = getvalue (q);
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', val);
}
app.fireEvent ('RequestPause');
app.ui.InteractionHandler.checkAndSet (modal_name);
app.ui.KeyHandler.addCallback (modal_esc_key, function ( e ) {
if (!app.ui.InteractionHandler.check (modal_name)) return ;
q.Destroy ();
}, [27]);
// ---
}
}, app);
x.Show();
});
app.listenFor ('RequestActionFXUI_Distortion', function () {
app.fireEvent ('RequestSelect', 1);
var filter_id = 'dist';
var auto = null;
var getvalue = function ( q ) {
var value;
if (auto) {
value = auto.GetValue ();
} else {
var input = q.el_body.getElementsByTagName('input')[0];
value = [{val: input.value / 1}];
}
return (value);
};
var x = new PKAudioFXModal({
id : filter_id,
title : 'Apply Distortion to selected range',
clss : 'pk_bigger',
ondestroy: function ( q ) {
app.ui.InteractionHandler.on = false;
app.ui.KeyHandler.removeCallback (modal_esc_key);
},
preview: function ( q ) {
var val = getvalue (q);
app.fireEvent ('RequestActionFX_PREVIEW_DISTORT', val);
},
buttons: [
{
title:'Apply',
clss:'pk_modal_a_accpt',
callback: function( q ) {
var val = getvalue (q);
app.fireEvent ('RequestActionFX_DISTORT', val);
q.Destroy ();
}
}
],
body:'
' +
''+
'0.5
',
// 'Volume Graph',
setup:function( q ) {
var inputs = q.el_body.getElementsByTagName ('input');
for (var i = 0; i < inputs.length; ++i)
{
inputs[i].oninput = function () {
var span = this.parentNode.getElementsByTagName ('span')[0];
span.innerHTML = (this.value/1).toFixed (2);
updateFilter ();
};
}
//var graph_btn = q.el_body.getElementsByTagName ('a')[0];
//graph_btn.onclick = function () {
// auto = new PKAudioEditor._deps.FxAUT (app, q);
//};
function updateFilter() {
var val = getvalue (q);
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', val);
}
app.fireEvent ('RequestPause');
app.ui.InteractionHandler.checkAndSet (modal_name);
app.ui.KeyHandler.addCallback (modal_esc_key, function ( e ) {
if (!app.ui.InteractionHandler.check (modal_name)) return ;
q.Destroy ();
}, [27]);
// ---
}
}, app);
x.Show();
});
app.listenFor ('RequestActionFXUI_Reverb', function () {
app.fireEvent ('RequestSelect', 1);
var filter_id = 'reverb';
var x = new PKAudioFXModal({
id : filter_id,
title : 'Apply Reverb to selected range',
clss : 'pk_bigger',
ondestroy: function ( q ) {
app.ui.InteractionHandler.on = false;
app.ui.KeyHandler.removeCallback (modal_esc_key);
},
presets:[
{name:'Classic',val:'0.3,0.4,0.4'},
{name:'Spacey',val:'3.0,0.6,0.3'}
],
custom_pres:custom_presets.Get (filter_id),
preview: function ( q ) {
var inputs = q.el_body.getElementsByTagName('input');
var val = {
time: inputs[0].value/1,
decay: inputs[1].value/1,
mix: inputs[2].value/1
};
app.fireEvent ('RequestActionFX_PREVIEW_REVERB', val);
},
buttons: [
{
title:'Apply',
clss:'pk_modal_a_accpt',
callback: function( q ) {
var inputs = q.el_body.getElementsByTagName('input');
var val = {
time: inputs[0].value/1,
decay: inputs[1].value/1,
mix: inputs[2].value/1
};
app.fireEvent ('RequestActionFX_REVERB', val);
q.Destroy ();
}
}
],
body:'
' +
''+
'0.3
'+
'
' +
''+
'0.05
'+
'
' +
''+
'0.6
',
setup:function( q ) {
var inputs = q.el_body.getElementsByTagName ('input');
for (var i = 0; i < inputs.length; ++i)
{
inputs[i].oninput = function () {
var span = this.parentNode.getElementsByTagName ('span')[0];
span.innerHTML = (this.value/1).toFixed (3);
updateFilter ();
};
}
function updateFilter() {
var inputs = q.el_body.getElementsByTagName('input');
var val = {
time: inputs[0].value/1,
decay: inputs[1].value/1,
mix: inputs[2].value/1
};
app.fireEvent ('RequestActionFX_UPDATE_PREVIEW', val);
}
app.fireEvent ('RequestPause');
app.ui.InteractionHandler.checkAndSet (modal_name);
app.ui.KeyHandler.addCallback (modal_esc_key, function ( e ) {
if (!app.ui.InteractionHandler.check (modal_name)) return ;
q.Destroy ();
}, [27]);
// ---
}
}, app);
x.Show();
});
// -----
var current_tags = null;
app.listenFor ('RequestActionID3', function (flag, new_tags) {
if (flag) {
current_tags = new_tags;
return ;
}
var modal_id = '_id3';
var render_tags = function ( el, tags ) {
var str = '
';
str += '
Artist' + (tags.artist || '-') + '
';
str += '
Title' + (tags.title || '-') + '
';
str += '
Album' + (tags.album || '-') + '
';
str += '
Year' + (tags.year || '-') + '
';
str += '
Genre' + (tags.genre || '-') + '
';
str += '
Comment' + ((tags.comment||{}).text || '-') + '
';
str += '
Track' + (tags.track || '-') + '
';
str += '
Lyrics' + ((tags.lyrics||{}).lyrics || '-') + '
';
if ('picture' in tags)
{
var image = tags.picture;
var base64str = '';
for (var i = 0; i < image.data.length; ++i) {
base64str += String.fromCharCode (image.data[i]);
}
str += '