Compare commits
5 commits
49ce43d324
...
2d55ef11b0
Author | SHA1 | Date | |
---|---|---|---|
2d55ef11b0 | |||
ab3786ef23 | |||
f19843bd46 | |||
2d43063537 | |||
223121655e |
4 changed files with 51 additions and 10 deletions
|
@ -319,6 +319,7 @@ const Audio = function(tp, record) {
|
||||||
source_Dom_Cont.append(muteDom);
|
source_Dom_Cont.append(muteDom);
|
||||||
source_Dom_Cont.append(muteDom_label);
|
source_Dom_Cont.append(muteDom_label);
|
||||||
|
|
||||||
|
const defaultRange = getDefaultRange(layer, propTitle);
|
||||||
const min_max_Dom = document.createElement('div');
|
const min_max_Dom = document.createElement('div');
|
||||||
min_max_Dom.classList.add('audio_min_max');
|
min_max_Dom.classList.add('audio_min_max');
|
||||||
const min_Cont = document.createElement('div');
|
const min_Cont = document.createElement('div');
|
||||||
|
@ -330,6 +331,7 @@ const Audio = function(tp, record) {
|
||||||
min_inputDom.type = 'number';
|
min_inputDom.type = 'number';
|
||||||
min_inputDom.name = toCssClass(`audio_min${propTitle}`);
|
min_inputDom.name = toCssClass(`audio_min${propTitle}`);
|
||||||
min_inputDom.id = toCssClass(`audio_min${propTitle}`);
|
min_inputDom.id = toCssClass(`audio_min${propTitle}`);
|
||||||
|
min_inputDom.title = `default: ${defaultRange[0]}`;
|
||||||
min_inputDom.value = `${mappingOptions.min_out}`;
|
min_inputDom.value = `${mappingOptions.min_out}`;
|
||||||
const max_Cont = document.createElement('div');
|
const max_Cont = document.createElement('div');
|
||||||
max_Cont.classList.add('audio_max_Cont');
|
max_Cont.classList.add('audio_max_Cont');
|
||||||
|
@ -340,6 +342,7 @@ const Audio = function(tp, record) {
|
||||||
max_inputDom.type = 'number';
|
max_inputDom.type = 'number';
|
||||||
max_inputDom.name = toCssClass(`audio_max${propTitle}`);
|
max_inputDom.name = toCssClass(`audio_max${propTitle}`);
|
||||||
max_inputDom.id = toCssClass(`audio_max${propTitle}`);
|
max_inputDom.id = toCssClass(`audio_max${propTitle}`);
|
||||||
|
max_inputDom.title = `default: ${defaultRange[1]}`;
|
||||||
max_inputDom.value = `${mappingOptions.max_out}`;
|
max_inputDom.value = `${mappingOptions.max_out}`;
|
||||||
const smoothing_inputDom_label = document.createElement('label');
|
const smoothing_inputDom_label = document.createElement('label');
|
||||||
smoothing_inputDom_label.for = 'audio_smoothing';
|
smoothing_inputDom_label.for = 'audio_smoothing';
|
||||||
|
@ -445,18 +448,24 @@ const Audio = function(tp, record) {
|
||||||
max_inputDom.addEventListener('change', updateMappingOptions);
|
max_inputDom.addEventListener('change', updateMappingOptions);
|
||||||
smoothing_inputDom.addEventListener('change', updateMappingOptions);
|
smoothing_inputDom.addEventListener('change', updateMappingOptions);
|
||||||
let setFrequency = false;
|
let setFrequency = false;
|
||||||
|
let wasMoved = false;
|
||||||
let freq_down = 0;
|
let freq_down = 0;
|
||||||
let freq_up = 0;
|
let freq_up = 0;
|
||||||
let xy_start;
|
let xy_start;
|
||||||
fft_Dom.addEventListener('mousedown', (e) => {
|
fft_Dom.addEventListener('mousedown', (e) => {
|
||||||
setFrequency = true;
|
setFrequency = true;
|
||||||
|
wasMoved = false;
|
||||||
const bb = fft_imgDom.getBoundingClientRect();
|
const bb = fft_imgDom.getBoundingClientRect();
|
||||||
const x = e.clientX - bb.x;
|
const x = e.clientX - bb.x;
|
||||||
const y = e.clientY - bb.y;
|
const y = e.clientY - bb.y;
|
||||||
xy_start = {x, y};
|
xy_start = {
|
||||||
|
x,
|
||||||
|
y
|
||||||
|
};
|
||||||
});
|
});
|
||||||
fft_Dom.addEventListener('mousemove', (e) => {
|
fft_Dom.addEventListener('mousemove', (e) => {
|
||||||
if (setFrequency) {
|
if (setFrequency) {
|
||||||
|
wasMoved = true;
|
||||||
const bb = fft_imgDom.getBoundingClientRect();
|
const bb = fft_imgDom.getBoundingClientRect();
|
||||||
const x_factor = config.audio.fftBandsUsed / bb.width;
|
const x_factor = config.audio.fftBandsUsed / bb.width;
|
||||||
const y_factor = 256.0 / bb.height;
|
const y_factor = 256.0 / bb.height;
|
||||||
|
@ -485,6 +494,20 @@ const Audio = function(tp, record) {
|
||||||
});
|
});
|
||||||
const unset = (e) => {
|
const unset = (e) => {
|
||||||
setFrequency = false;
|
setFrequency = false;
|
||||||
|
if (!wasMoved) {
|
||||||
|
const bb = fft_imgDom.getBoundingClientRect();
|
||||||
|
const x_factor = config.audio.fftBandsUsed / bb.width;
|
||||||
|
const y_factor = 256.0 / bb.height;
|
||||||
|
let min_x, max_x, min_y, max_y;
|
||||||
|
min_x = 0;
|
||||||
|
min_y = 0;
|
||||||
|
max_x = bb.width;
|
||||||
|
max_y = bb.height;
|
||||||
|
mappingOptions.min_freq = min_x * x_factor;
|
||||||
|
mappingOptions.max_freq = max_x * x_factor;
|
||||||
|
mappingOptions.min_in = (bb.height - max_y) * y_factor;
|
||||||
|
mappingOptions.max_in = (bb.height - min_y) * y_factor;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const unsetFromOutside = (e) => {
|
const unsetFromOutside = (e) => {
|
||||||
document.removeEventListener('mouseup', unsetFromOutside);
|
document.removeEventListener('mouseup', unsetFromOutside);
|
||||||
|
|
|
@ -115,6 +115,7 @@ const config = {
|
||||||
rolloverResetLoop: true,
|
rolloverResetLoop: true,
|
||||||
},
|
},
|
||||||
record: {
|
record: {
|
||||||
|
active: false,
|
||||||
ignoreProps: {
|
ignoreProps: {
|
||||||
artboard: ['x', 'y', 'zoom', 'pixelDensity', 'width', 'height'],
|
artboard: ['x', 'y', 'zoom', 'pixelDensity', 'width', 'height'],
|
||||||
layer: ['transformOrigin', 'fontFamily', 'text', 'mirror_x', 'mirror_y', 'mirror_xy'],
|
layer: ['transformOrigin', 'fontFamily', 'text', 'mirror_x', 'mirror_y', 'mirror_xy'],
|
||||||
|
|
|
@ -100,20 +100,37 @@ const Layer = function(tp, layerID, fontsAndAxes, autoInit = true) {
|
||||||
);
|
);
|
||||||
let axes = fontsAndAxes[selectedFontIndex].axes;
|
let axes = fontsAndAxes[selectedFontIndex].axes;
|
||||||
if (axes.length > 0) {
|
if (axes.length > 0) {
|
||||||
let variationAxes = {};
|
let variationAxes = {};
|
||||||
|
let doThese = [];
|
||||||
for (let a = 0; a < axes.length; a++) {
|
for (let a = 0; a < axes.length; a++) {
|
||||||
const sanity_minMax = axes[a].minValue < axes[a].maxValue;
|
const sanity_minMax = axes[a].minValue < axes[a].maxValue;
|
||||||
const sanity_minDefault = axes[a].minValue <= axes[a].defaultValue;
|
const sanity_minDefault = axes[a].minValue <= axes[a].defaultValue;
|
||||||
const sanity_maxDefault = axes[a].maxValue >= axes[a].defaultValue;
|
const sanity_maxDefault = axes[a].maxValue >= axes[a].defaultValue;
|
||||||
if (sanity_minMax && sanity_minDefault && sanity_maxDefault) {
|
if (sanity_minMax && sanity_minDefault && sanity_maxDefault) {
|
||||||
variationAxes[axes[a].name] = tp.core.types.number(axes[a].defaultValue, {
|
variationAxes[axes[a].name] = tp.core.types.number(axes[a].defaultValue, {
|
||||||
range: [axes[a].minValue, axes[a].maxValue],
|
range: [axes[a].minValue, axes[a].maxValue],
|
||||||
});
|
});
|
||||||
|
if (typeof audio === 'object' &&
|
||||||
|
typeof audio.getSavedMapping()[this.id()][`fontVariationAxes.${axes[a].name}`] === 'object' &&
|
||||||
|
typeof audio.getMapping()[this.id()][`fontVariationAxes.${axes[a].name}`] === 'object' &&
|
||||||
|
tp.getPanel() !== null) {
|
||||||
|
doThese.push(() => {
|
||||||
|
audio.removeAudioOptions(this, `fontVariationAxes.${axes[a].name}`);
|
||||||
|
audio.removeAudioMapping(this, `fontVariationAxes.${axes[a].name}`);
|
||||||
|
audio.getSavedMapping()[this.id()][`fontVariationAxes.${axes[a].name}`].min_out = axes[a].minValue;
|
||||||
|
audio.getSavedMapping()[this.id()][`fontVariationAxes.${axes[a].name}`].max_out = axes[a].maxValue;
|
||||||
|
audio.addAudioMapping(this, `fontVariationAxes.${axes[a].name}`);
|
||||||
|
audio.addAudioOptions(this, `fontVariationAxes.${axes[a].name}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log('js::layer::selectFont', 'this axis is insane, abort', axes[a]);
|
console.log('js::layer::selectFont', 'this axis is insane, abort', axes[a]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
props.fontVariationAxes = tp.core.types.compound(variationAxes);
|
props.fontVariationAxes = tp.core.types.compound(variationAxes);
|
||||||
|
doThese.forEach((d) => {
|
||||||
|
d();
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
delete props.fontVariationAxes;
|
delete props.fontVariationAxes;
|
||||||
}
|
}
|
||||||
|
@ -806,10 +823,12 @@ const Layer = function(tp, layerID, fontsAndAxes, autoInit = true) {
|
||||||
console.log('Layer::findInjectPanel', `cannot inject audio panel for ${this.id()} for some reason.`);
|
console.log('Layer::findInjectPanel', `cannot inject audio panel for ${this.id()} for some reason.`);
|
||||||
}
|
}
|
||||||
// should we have a record object, let's inject the buttons, etc
|
// should we have a record object, let's inject the buttons, etc
|
||||||
if (typeof record === 'object' && record.hasOwnProperty('injectPanel')) {
|
if (config.record.active) {
|
||||||
record.injectPanel(this);
|
if (typeof record === 'object' && record.hasOwnProperty('injectPanel')) {
|
||||||
} else {
|
record.injectPanel(this);
|
||||||
console.log('Layer::findInjectPanel', `cannot inject record panel for ${this.id()} for some reason.`);
|
} else {
|
||||||
|
console.log('Layer::findInjectPanel', `cannot inject record panel for ${this.id()} for some reason.`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
injectedPanel = true;
|
injectedPanel = true;
|
||||||
|
|
|
@ -627,12 +627,10 @@ const TheatrePlay = function(autoInit = false) {
|
||||||
// margin-right: 15px;
|
// margin-right: 15px;
|
||||||
// }
|
// }
|
||||||
input[type=checkbox] {
|
input[type=checkbox] {
|
||||||
position: absolute;
|
|
||||||
width: 27px;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
}
|
||||||
input[type=checkbox]:checked + label {
|
input[type=checkbox]:checked + label {
|
||||||
color: #1cba94;
|
color: #1cba94;
|
||||||
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
input[type=checkbox] + label::after{
|
input[type=checkbox] + label::after{
|
||||||
content: ' OFF';
|
content: ' OFF';
|
||||||
|
|
Loading…
Reference in a new issue