|
|
|
@ -8,6 +8,8 @@ AdvpStyleTemplate {
|
|
|
|
|
readonly property var audioData: new Array(128) |
|
|
|
|
|
|
|
|
|
//configs |
|
|
|
|
readonly property int fps: configs["Refresh Rate"] |
|
|
|
|
readonly property real timer_interval: 1000/configs["Refresh Rate"] |
|
|
|
|
readonly property real bassAmRatio: configs["Bass AM"]/100 |
|
|
|
|
readonly property real altoAmRatio: configs["Alto AM"]/100 |
|
|
|
|
readonly property real trebleAmRatio: configs["Treble AM"]/100 |
|
|
|
@ -80,40 +82,51 @@ AdvpStyleTemplate {
|
|
|
|
|
audioData[i] = data[i] * amplitude; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
let trebleAm = 0; |
|
|
|
|
let altoAm = 0; |
|
|
|
|
let bassAm = 0; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(let i=0; i<6.4; i++) { |
|
|
|
|
bassAm += audioData[i]; |
|
|
|
|
} |
|
|
|
|
for(let i=7; i<19.2; i++) { |
|
|
|
|
altoAm += audioData[i]; |
|
|
|
|
} |
|
|
|
|
for(let i=20; i<64; i++) { |
|
|
|
|
trebleAm += audioData[i]; |
|
|
|
|
} |
|
|
|
|
Timer { |
|
|
|
|
id: animation |
|
|
|
|
interval: timer_interval |
|
|
|
|
repeat: true |
|
|
|
|
triggeredOnStart: false |
|
|
|
|
onTriggered: { |
|
|
|
|
let trebleAm = 0; |
|
|
|
|
let altoAm = 0; |
|
|
|
|
let bassAm = 0; |
|
|
|
|
|
|
|
|
|
for(let i=0; i<6.4; i++) { |
|
|
|
|
bassAm += audioData[i]; |
|
|
|
|
} |
|
|
|
|
for(let i=7; i<19.2; i++) { |
|
|
|
|
altoAm += audioData[i]; |
|
|
|
|
} |
|
|
|
|
for(let i=20; i<64; i++) { |
|
|
|
|
trebleAm += audioData[i]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
trebleAm = trebleAm / 38.4; |
|
|
|
|
altoAm = altoAm / 19.2; |
|
|
|
|
bassAm = bassAm / 6.4; |
|
|
|
|
trebleAm = trebleAm / 38.4; |
|
|
|
|
altoAm = altoAm / 19.2; |
|
|
|
|
bassAm = bassAm / 6.4; |
|
|
|
|
|
|
|
|
|
_phase = (_phase+speed)%(Math.PI*64); |
|
|
|
|
_phase = (_phase+speed*(30 / fps))%(Math.PI*64); |
|
|
|
|
|
|
|
|
|
context.clearRect(0, 0, width+32, height+32); |
|
|
|
|
context.clearRect(0, 0, width+32, height+32); |
|
|
|
|
|
|
|
|
|
drawLine(_delta*trebleAmRatio*trebleAm, trebleColor, 1.5, _phase, false); |
|
|
|
|
drawLine(_delta*bassAmRatio*bassAm, bassColor, 1.5, _phase+0.8, false); |
|
|
|
|
drawLine(_delta*altoAmRatio*altoAm, altoColor, 2, _phase+0.4, true); |
|
|
|
|
context.beginPath(); |
|
|
|
|
context.stroke(); |
|
|
|
|
requestPaint(); |
|
|
|
|
drawLine(_delta*trebleAmRatio*trebleAm, trebleColor, 1.5, _phase, false); |
|
|
|
|
drawLine(_delta*bassAmRatio*bassAm, bassColor, 1.5, _phase+0.8, false); |
|
|
|
|
drawLine(_delta*altoAmRatio*altoAm, altoColor, 2, _phase+0.4, true); |
|
|
|
|
context.beginPath(); |
|
|
|
|
context.stroke(); |
|
|
|
|
requestPaint(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onCompleted: { |
|
|
|
|
for (let i = 0; i < 128; i++) { |
|
|
|
|
audioData[i] = 0; |
|
|
|
|
} |
|
|
|
|
animation.start(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onVersionUpdated: { |
|
|
|
@ -122,7 +135,8 @@ AdvpStyleTemplate {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
defaultValues: { |
|
|
|
|
"Version": "1.0.0", |
|
|
|
|
"Version": "1.0.1", |
|
|
|
|
"Refresh Rate": 30, |
|
|
|
|
"Bass Color": "#dc143c", |
|
|
|
|
"Alto Color": "#f8f8ff", |
|
|
|
|
"Treble Color": "#4169e1", |
|
|
|
@ -140,6 +154,16 @@ AdvpStyleTemplate {
|
|
|
|
|
preference: AdvpPreference { |
|
|
|
|
version: defaultValues["Version"] |
|
|
|
|
|
|
|
|
|
P.SliderPreference { |
|
|
|
|
name: "Refresh Rate" |
|
|
|
|
label: qsTr("Refresh Rate") |
|
|
|
|
from: 20 |
|
|
|
|
to: 60 |
|
|
|
|
stepSize: 1 |
|
|
|
|
defaultValue: defaultValues["Refresh Rate"] |
|
|
|
|
displayValue: value + " fps" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
P.ColorPreference { |
|
|
|
|
name: "Bass Color" |
|
|
|
|
label: qsTr("Bass Line Color") |
|
|
|
|