diff --git a/Presets/Ordinal_Scale_UI_bottom/settings.xml b/Presets/Ordinal_Scale_UI_bottom/settings.xml index d30c10c..5840d33 100644 --- a/Presets/Ordinal_Scale_UI_bottom/settings.xml +++ b/Presets/Ordinal_Scale_UI_bottom/settings.xml @@ -1,5 +1,5 @@ "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}} + {"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}} \ No newline at end of file diff --git a/bin/ADVServer.exe b/bin/ADVServer.exe index f45d459..5370740 100644 Binary files a/bin/ADVServer.exe and b/bin/ADVServer.exe differ diff --git a/qml/Common.qml b/qml/Common.qml index dc83255..2b47692 100644 --- a/qml/Common.qml +++ b/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)) diff --git a/styles/Preset_Ordinal_Scale_UI_bottom/Style.qml b/styles/Preset_Ordinal_Scale_UI_bottom/Style.qml index 946c0a5..320c490 100644 --- a/styles/Preset_Ordinal_Scale_UI_bottom/Style.qml +++ b/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")