- 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>
47 lines
1.4 KiB
QML
47 lines
1.4 KiB
QML
import QtQuick
|
|
import QtQuick.Controls.Basic
|
|
|
|
Slider {
|
|
id: s
|
|
property color tone: Theme.primary
|
|
implicitHeight: 24
|
|
hoverEnabled: true
|
|
background: Rectangle {
|
|
x: s.leftPadding
|
|
y: s.topPadding + s.availableHeight / 2 - height / 2
|
|
width: s.availableWidth
|
|
height: 4
|
|
radius: 2
|
|
color: Qt.rgba(1, 1, 1, 0.10)
|
|
Rectangle {
|
|
width: s.visualPosition * parent.width
|
|
height: parent.height
|
|
radius: 2
|
|
gradient: Gradient {
|
|
orientation: Gradient.Horizontal
|
|
GradientStop { position: 0; color: Theme.alpha(s.tone, 0.7) }
|
|
GradientStop { position: 1; color: s.tone }
|
|
}
|
|
}
|
|
}
|
|
handle: Item {
|
|
x: s.leftPadding + s.visualPosition * (s.availableWidth - width)
|
|
y: s.topPadding + s.availableHeight / 2 - height / 2
|
|
width: 14
|
|
height: 14
|
|
Glow { radius: 7; sigma: 4; color: s.tone; opacity: s.hovered || s.pressed ? 0.6 : 0 }
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
radius: 7
|
|
color: s.pressed ? Qt.lighter(s.tone, 1.2) : s.tone
|
|
border.color: Qt.lighter(s.tone, 1.4)
|
|
Rectangle { // gloss
|
|
anchors { left: parent.left; right: parent.right; top: parent.top; margins: 2 }
|
|
height: 5
|
|
radius: 3
|
|
color: Qt.rgba(1, 1, 1, 0.45)
|
|
}
|
|
}
|
|
}
|
|
}
|