Browse Source

- 修复无音频数据时"序列之争底部UI"暂停bug

- "序列之争底部UI"新增"刷新率"选项
- 修复频谱数据残留的问题
master
mashiros 1 year ago
parent
commit
ee7b87bdc9
  1. 2
      Presets/Ordinal_Scale_UI_bottom/settings.xml
  2. BIN
      bin/ADVServer.exe
  3. 4
      qml/Common.qml
  4. 72
      styles/Preset_Ordinal_Scale_UI_bottom/Style.qml

2
Presets/Ordinal_Scale_UI_bottom/settings.xml

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<map>
<value name="current_style">"nvg://advp.widget.mashiros.top/advp-style-preset/ordinal_scale_ui_bottom"</value>
<value name="nvg://advp.widget.mashiros.top/advp-style-preset/ordinal_scale_ui_bottom">{"Bass Color":"#dc143c","Alto Color":"#f8f8ff","Treble Color":"#4169e1","Bass AM":100,"Alto AM":150,"Treble AM":200,"Static AM":25,"Speed":20,"Data Settings":{"Auto Normalizing":true,"Amplitude":10}}</value>
<value name="nvg://advp.widget.mashiros.top/advp-style-preset/ordinal_scale_ui_bottom">{"Refresh Rate":30,"Bass Color":"#dc143c","Alto Color":"#f8f8ff","Treble Color":"#4169e1","Bass AM":100,"Alto AM":150,"Treble AM":200,"Static AM":25,"Speed":20,"Data Settings":{"Auto Normalizing":true,"Amplitude":10}}</value>
</map>

BIN
bin/ADVServer.exe

Binary file not shown.

4
qml/Common.qml

@ -198,8 +198,8 @@ Item {
}
}
function parse_resource(resource_list, sort) {
if (sort)
function parse_resource(resource_list, preset) {
if (preset)
resource_list.sort(function (x, y) {
let preset_order = ["/advp-style-preset/line", "/advp-style-preset/gradient_line", "/advp-style-preset/waves", "/advp-style-preset/circle", "/advp-style-preset/solidcircle", "/advp-style-preset/ordinal_scale_ui_bottom"];
if (preset_order.indexOf(x.location) < preset_order.indexOf(y.location))

72
styles/Preset_Ordinal_Scale_UI_bottom/Style.qml

@ -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")

Loading…
Cancel
Save