mirror of
https://github.com/onyx-and-iris/voicemeeter-compact.git
synced 2026-03-29 13:09:10 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5258671a79 | |||
| 2185748435 | |||
| d82afc1973 | |||
| 6be32dcd32 | |||
| abb55d5090 | |||
| 3271a52f15 | |||
| eb2ce5360f | |||
| 45dbcae804 | |||
| 4fab6d9ad9 | |||
| fee3fa199b |
133
.github/workflows/release.yml
vendored
133
.github/workflows/release.yml
vendored
@ -77,20 +77,79 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: poetry install --with build
|
|
||||||
shell: bash
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# Install project dependencies
|
||||||
|
poetry install --with build
|
||||||
|
|
||||||
|
# Verify PyInstaller is available
|
||||||
|
echo "Verifying PyInstaller installation..."
|
||||||
|
poetry show pyinstaller
|
||||||
|
|
||||||
|
- name: Get Poetry executable path
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
poetryPath=$(which poetry)
|
||||||
|
echo "Poetry path: $poetryPath"
|
||||||
|
echo "POETRY_BIN=$poetryPath" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Build artifacts with dynamic taskfile
|
- name: Build artifacts with dynamic taskfile
|
||||||
run: task --taskfile Taskfile.dynamic.yml build-all
|
run: task --taskfile Taskfile.dynamic.yml build-all
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
POETRY_BIN: /c/Users/runneradmin/.local/bin/poetry
|
POETRY_BIN: ${{ env.POETRY_BIN }}
|
||||||
|
|
||||||
- name: Create release archives
|
- name: Create release archives
|
||||||
run: task --taskfile Taskfile.dynamic.yml compress-all
|
run: task --taskfile Taskfile.dynamic.yml compress-all
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
POETRY_BIN: /c/Users/runneradmin/.local/bin/poetry
|
POETRY_BIN: ${{ env.POETRY_BIN }}
|
||||||
|
|
||||||
|
- name: Verify build outputs
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
Write-Host "Verifying build outputs..."
|
||||||
|
|
||||||
|
$expectedFiles = @(
|
||||||
|
"dist/sunvalley-basic.zip",
|
||||||
|
"dist/sunvalley-banana.zip",
|
||||||
|
"dist/sunvalley-potato.zip",
|
||||||
|
"dist/forest-dark-basic.zip",
|
||||||
|
"dist/forest-dark-banana.zip",
|
||||||
|
"dist/forest-dark-potato.zip",
|
||||||
|
"dist/forest-light-basic.zip",
|
||||||
|
"dist/forest-light-banana.zip",
|
||||||
|
"dist/forest-light-potato.zip",
|
||||||
|
"dist/azure-dark-basic.zip",
|
||||||
|
"dist/azure-dark-banana.zip",
|
||||||
|
"dist/azure-dark-potato.zip",
|
||||||
|
"dist/azure-light-basic.zip",
|
||||||
|
"dist/azure-light-banana.zip",
|
||||||
|
"dist/azure-light-potato.zip"
|
||||||
|
)
|
||||||
|
|
||||||
|
$missingFiles = @()
|
||||||
|
$foundFiles = @()
|
||||||
|
|
||||||
|
foreach ($file in $expectedFiles) {
|
||||||
|
if (Test-Path $file) {
|
||||||
|
$size = [math]::Round((Get-Item $file).Length / 1MB, 2)
|
||||||
|
$foundFiles += "$file ($size MB)"
|
||||||
|
} else {
|
||||||
|
$missingFiles += $file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Found files:"
|
||||||
|
$foundFiles | ForEach-Object { Write-Host " $_" }
|
||||||
|
|
||||||
|
if ($missingFiles.Count -gt 0) {
|
||||||
|
Write-Host -ForegroundColor Red "Missing files:"
|
||||||
|
$missingFiles | ForEach-Object { Write-Host " $_" }
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host -ForegroundColor Green "All expected files found!"
|
||||||
|
|
||||||
# Sunvalley theme variants
|
# Sunvalley theme variants
|
||||||
- name: Upload build artifacts - Sunvalley Basic
|
- name: Upload build artifacts - Sunvalley Basic
|
||||||
@ -187,6 +246,31 @@ jobs:
|
|||||||
name: azure-light-potato
|
name: azure-light-potato
|
||||||
path: dist/azure-light-potato.zip
|
path: dist/azure-light-potato.zip
|
||||||
|
|
||||||
|
- name: Build Summary
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
Write-Host -ForegroundColor Green "Build completed successfully!"
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Built artifacts (15 theme variants):"
|
||||||
|
Write-Host " Sunvalley Theme:"
|
||||||
|
Write-Host " - voicemeeter-compact-sunvalley-basic.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-sunvalley-banana.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-sunvalley-potato.zip"
|
||||||
|
Write-Host " Forest Theme:"
|
||||||
|
Write-Host " - voicemeeter-compact-forest-dark-basic.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-forest-dark-banana.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-forest-dark-potato.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-forest-light-basic.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-forest-light-banana.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-forest-light-potato.zip"
|
||||||
|
Write-Host " Azure Theme:"
|
||||||
|
Write-Host " - voicemeeter-compact-azure-dark-basic.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-azure-dark-banana.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-azure-dark-potato.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-azure-light-basic.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-azure-light-banana.zip"
|
||||||
|
Write-Host " - voicemeeter-compact-azure-light-potato.zip"
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
needs: build
|
needs: build
|
||||||
@ -204,7 +288,48 @@ jobs:
|
|||||||
- name: Create Release
|
- name: Create Release
|
||||||
run: |
|
run: |
|
||||||
TAG_NAME=${GITHUB_REF#refs/tags/}
|
TAG_NAME=${GITHUB_REF#refs/tags/}
|
||||||
gh release create $TAG_NAME --title "Release $TAG_NAME" --generate-notes
|
gh release create $TAG_NAME \
|
||||||
|
--title "Voicemeeter Compact $TAG_NAME" \
|
||||||
|
--notes "## Voicemeeter Compact Release $TAG_NAME
|
||||||
|
|
||||||
|
### Theme Variants
|
||||||
|
Choose your preferred theme and Voicemeeter version:
|
||||||
|
|
||||||
|
**Sunvalley Theme**
|
||||||
|
- **sunvalley-basic.zip** - For Voicemeeter Basic
|
||||||
|
- **sunvalley-banana.zip** - For Voicemeeter Banana
|
||||||
|
- **sunvalley-potato.zip** - For Voicemeeter Potato
|
||||||
|
|
||||||
|
**Forest Theme**
|
||||||
|
- **forest-dark-basic.zip** - Dark theme for Voicemeeter Basic
|
||||||
|
- **forest-dark-banana.zip** - Dark theme for Voicemeeter Banana
|
||||||
|
- **forest-dark-potato.zip** - Dark theme for Voicemeeter Potato
|
||||||
|
- **forest-light-basic.zip** - Light theme for Voicemeeter Basic
|
||||||
|
- **forest-light-banana.zip** - Light theme for Voicemeeter Banana
|
||||||
|
- **forest-light-potato.zip** - Light theme for Voicemeeter Potato
|
||||||
|
|
||||||
|
**Azure Theme**
|
||||||
|
- **azure-dark-basic.zip** - Dark theme for Voicemeeter Basic
|
||||||
|
- **azure-dark-banana.zip** - Dark theme for Voicemeeter Banana
|
||||||
|
- **azure-dark-potato.zip** - Dark theme for Voicemeeter Potato
|
||||||
|
- **azure-light-basic.zip** - Light theme for Voicemeeter Basic
|
||||||
|
- **azure-light-banana.zip** - Light theme for Voicemeeter Banana
|
||||||
|
- **azure-light-potato.zip** - Light theme for Voicemeeter Potato
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
- Windows 10/11
|
||||||
|
- Voicemeeter (Basic/Banana/Potato) installed
|
||||||
|
- Python 3.10+ (if running from source)
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
1. Download the zip file matching your Voicemeeter version and preferred theme
|
||||||
|
2. Extract and run the executable - no installation required
|
||||||
|
3. The application will automatically detect your Voicemeeter installation
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
- Built with PyInstaller for standalone execution
|
||||||
|
- Each variant is scaled for its specific Voicemeeter version
|
||||||
|
- Themes provide different visual styles while maintaining full functionality"
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
13
.pre-commit-config.yaml
Normal file
13
.pre-commit-config.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v2.3.0
|
||||||
|
hooks:
|
||||||
|
- id: check-yaml
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: trailing-whitespace
|
||||||
|
|
||||||
|
- repo: https://github.com/python-poetry/poetry
|
||||||
|
rev: '2.3.2'
|
||||||
|
hooks:
|
||||||
|
- id: poetry-check
|
||||||
|
- id: poetry-lock
|
||||||
21
CHANGELOG.md
21
CHANGELOG.md
@ -9,6 +9,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
- [ ]
|
- [ ]
|
||||||
|
|
||||||
|
## [1.10.0] - 2026-03-26
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Automated builds for Releases. This is much preferred over manual releases because users can be sure the files are built directly from the source code.
|
||||||
|
- Azure theme added to Releases.
|
||||||
|
- vban.toml files can now use key `host` intead of `ip`.
|
||||||
|
- `ip` is still usable for backwards compatibility.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Attempting a VBAN connection now uses a PING/PONG handshake to verify connection, this makes connections more reliable.
|
||||||
|
- Navigation frame is disabled by default. You can easily enable it from the menu or with an app.toml config.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Comp, Gate sliders now receive feedback when changes are made on the Voicemeeter GUI.
|
||||||
|
- Bus CONFIG mode button rotates through the correct modes for Basic Kind.
|
||||||
|
- Bus CONFIG mono now rotates through *off, on, stereo reverse*.
|
||||||
|
- Bus CONFIG mode/mono buttons are now a fixed width.
|
||||||
|
|
||||||
## [1.9.8] - 2025-01-22
|
## [1.9.8] - 2025-01-22
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@ -1,7 +1,15 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
# Dynamic build system - no spec files needed!
|
# Dynamic build system - no spec files needed!
|
||||||
# Usage: task build THEMES="azure forest" or task build-all
|
# Examples:
|
||||||
|
# - task -t Taskfile.dynamic.yml build THEMES="azure forest"
|
||||||
|
# - task -t Taskfile.dynamic.yml build-all
|
||||||
|
# THEMES can be specified as a space-separated list or "all" to build everything.
|
||||||
|
#
|
||||||
|
# Compression tasks are also dynamic and can be used like:
|
||||||
|
# Usage examples:
|
||||||
|
# - task -t Taskfile.dynamic.yml compress THEME=azure
|
||||||
|
# - task -t Taskfile.dynamic.yml compress-all
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
THEMES: '{{.THEMES | default "all"}}'
|
THEMES: '{{.THEMES | default "all"}}'
|
||||||
|
|||||||
2
poetry.lock
generated
2
poetry.lock
generated
@ -223,7 +223,7 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vban-cmd"
|
name = "vban-cmd"
|
||||||
version = "2.10.2"
|
version = "2.10.3"
|
||||||
description = "Python interface for the VBAN RT Packet Service (Sendtext)"
|
description = "Python interface for the VBAN RT Packet Service (Sendtext)"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.10"
|
python-versions = ">=3.10"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user