- stemroller/: PySide6/QML desktop app and player for separating music into stems - android/: Plex music player that plays per-stem mixes, with Android Auto support, a graphic + parametric (Equalizer APO-style) EQ, and offline downloads - server/: stemserve (serves stems to the app) and stemd (separates the library on the server's GPU, with "Stem Now" priority requests) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
1.8 KiB
QML
58 lines
1.8 KiB
QML
import QtQuick
|
|
|
|
// Aero glass for chrome. Shows the window's cached, pre-blurred backdrop
|
|
// (refreshed only on resize), so nothing is blurred per frame.
|
|
Item {
|
|
id: root
|
|
property real offsetX: 0
|
|
property real offsetY: 0
|
|
property int blur: 16
|
|
property real topLeftRadius: 0
|
|
property real topRightRadius: 0
|
|
property real bottomLeftRadius: 0
|
|
property real bottomRightRadius: 0
|
|
property bool gloss: true
|
|
property bool innerBorder: true
|
|
clip: true
|
|
|
|
readonly property var win: Window.window
|
|
|
|
Image {
|
|
x: -root.offsetX
|
|
y: -root.offsetY
|
|
width: root.win ? root.win.width : 0
|
|
height: root.win ? root.win.height : 0
|
|
source: root.win ? "image://fx/glass/" + root.win.fxW + "x" + root.win.fxH + "/" + root.win.radius + "/" + root.blur : ""
|
|
asynchronous: true
|
|
retainWhileLoading: true
|
|
cache: true
|
|
smooth: true
|
|
}
|
|
|
|
// Aero gloss: top highlight band
|
|
Rectangle {
|
|
visible: root.gloss
|
|
anchors { left: parent.left; right: parent.right; top: parent.top }
|
|
height: Math.min(parent.height * 0.5, 30)
|
|
topLeftRadius: root.topLeftRadius
|
|
topRightRadius: root.topRightRadius
|
|
gradient: Gradient {
|
|
GradientStop { position: 0; color: Qt.rgba(1, 1, 1, 0.07) }
|
|
GradientStop { position: 1; color: Qt.rgba(1, 1, 1, 0.0) }
|
|
}
|
|
}
|
|
|
|
// 1px inner white border at 8%
|
|
Rectangle {
|
|
visible: root.innerBorder
|
|
anchors.fill: parent
|
|
color: "transparent"
|
|
border.color: Theme.outline
|
|
border.width: 1
|
|
topLeftRadius: root.topLeftRadius
|
|
topRightRadius: root.topRightRadius
|
|
bottomLeftRadius: root.bottomLeftRadius
|
|
bottomRightRadius: root.bottomRightRadius
|
|
}
|
|
}
|