Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Historique des versions

## V.2026 (2026.3) — 2026-08-10

- Lit directement les vrais noms, unités et types des paramètres exposés par les plug-ins VST3 installés, dans un processus isolé par plug-in.
- Ajoute **Récupérer tous les vrais noms** pour traiter en une fois tous les types présents dans le projet analysé et enregistrer leurs profils locaux avec sauvegarde des versions précédentes.
- Refuse automatiquement tout inventaire dont le nombre de paramètres diffère du projet LiveProfessor afin d'empêcher les décalages de labels.
- Conserve l'interception Companion/OSC comme solution de secours pour les formats anciens et les plug-ins qui n'exposent pas directement un inventaire compatible.
- Intercepte en continu les vrais noms envoyés par LiveProfessor au contrôleur actif au lieu de les effacer au début de la capture.
- Réutilise instantanément les libellés déjà visibles sur le contrôleur et conserve leur ordre exact dans la Controller Map enregistrée.
- Attend et relance la demande jusqu’à 30 secondes lorsque LiveProfessor tarde à envoyer son inventaire, sans bloquer l’interface.
- Clarifie en français et en anglais le changement temporaire de plug-in qui déclenche l’émission des noms par LiveProfessor.

## V.2026 (2026.2) — 2026-08-10

- Réunit le logiciel et sa bibliothèque publique versionnée dans le même dépôt GitHub.
Expand Down
36 changes: 20 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,33 @@
</p>

<p align="center">
<a href="https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.2"><img alt="Version V.2026.2" src="https://img.shields.io/badge/version-V.2026.2-0b9fc6"></a>
<a href="https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.3"><img alt="Version V.2026.3" src="https://img.shields.io/badge/version-V.2026.3-0b9fc6"></a>
<img alt="Windows 10 et 11 x64" src="https://img.shields.io/badge/Windows-10%20%7C%2011%20x64-1674d1">
<img alt="Français et anglais" src="https://img.shields.io/badge/interface-FR%20%7C%20EN-445064">
</p>

## Dernière version (accès rapide)

**Version stable : [Controller Studio V.2026.2](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.2)**<br>
**Version stable : [Controller Studio V.2026.3](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.3)**<br>
Téléchargement direct :

- [Installer Controller Studio pour Windows x64 (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor-Setup-v2026.2.exe)
- [Version portable Windows x64 (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor.exe)
- [Notice complète en français (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor-Notice-FR.pdf)
- [Full English manual (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor-Manual-EN.pdf)
- [Sommes de contrôle SHA-256](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/SHA256SUMS.txt)
- [Installer Controller Studio pour Windows x64 (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor-Setup-v2026.3.exe)
- [Version portable Windows x64 (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor.exe)
- [Notice complète en français (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor-Notice-FR.pdf)
- [Full English manual (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor-Manual-EN.pdf)
- [Sommes de contrôle SHA-256](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/SHA256SUMS.txt)

[Lire cette présentation en anglais](README_EN.md)

> **Version publique V.2026.2 pour Windows.** Controller Studio travaille sur une copie AutoMap et conserve le projet `.rack2` source intact.
> **Version publique V.2026.3 pour Windows.** Controller Studio travaille sur une copie AutoMap et conserve le projet `.rack2` source intact.

## À quoi sert Controller Studio ?

Controller Studio transforme un contrôleur MIDI en surface de contrôle organisée pour les plug-ins de LiveProfessor. Dans la même application, vous pouvez choisir ou créer un contrôleur, produire son fichier LiveProfessor, analyser les plug-ins d’un projet et fabriquer une copie AutoMap prête à tester.

| Contrôle Live | Banque de contrôleurs | Plugin Studio | AutoMap |
|---|---|---|---|
| Pilote EC4 temps réel, banques, push, Shift, labels, valeurs et reconnexion | Profils prêts à exporter et éditeur de contrôleur | Vrais noms reçus de LiveProfessor, priorités et sélection paramètre par paramètre | Choix des plug-ins et instances, UniBank ou FullBank, copie `.rack2` validée |
| Pilote EC4 temps réel, banques, push, Shift, labels, valeurs et reconnexion | Profils prêts à exporter et éditeur de contrôleur | Vrais noms lus dans les plug-ins installés, récupération globale, priorités et cases individuelles | Choix des plug-ins et instances, UniBank ou FullBank, copie `.rack2` validée |

L’interface existe en français et en anglais, se réduit dans la zone de notification et place le journal temps réel dans une fenêtre séparée.

Expand All @@ -50,21 +50,25 @@ Controller Studio relit la copie générée avant de la proposer. Les affectatio

## Plugin Studio

Le fichier `.rack2` conserve l’ordre et les identifiants des paramètres, mais pas toujours leurs libellés humains. Plugin Studio complète ces informations avec les noms renvoyés par le contrôleur Companion de LiveProfessor.
Le fichier `.rack2` conserve l’ordre et les identifiants des paramètres, mais pas toujours leurs libellés humains. Plugin Studio retrouve ces informations directement dans les plug-ins VST3 installés, chacun dans un processus isolé. Le résultat n’est accepté que si son nombre de paramètres correspond exactement au projet LiveProfessor.

Après l’analyse du projet, **Récupérer tous les vrais noms** traite tous ses types de plug-ins en une seule opération, crée ou met à jour les profils locaux et sauvegarde automatiquement les versions précédentes.

Pour un plug-in donné :

1. sélectionnez son instance dans LiveProfessor ;
2. rappelez la map **SiLeMI/O AutoMap - NomDuPlugin** dans la barre supérieure — pas la map Dynamic ;
3. cliquez sur **Récupérer automatiquement les vrais noms** ;
4. utilisez **Tout cocher**, **Tout décocher** ou les cases individuelles ;
5. ajustez si nécessaire le libellé court, le type, le rôle ou la priorité, puis enregistrez le profil local.
1. ouvrez le profil du plug-in puis cliquez sur **Récupérer automatiquement les vrais noms** ;
2. utilisez **Tout cocher**, **Tout décocher** ou les cases individuelles ;
3. ajustez si nécessaire le libellé court, le type, le rôle ou la priorité, puis enregistrez le profil local.

Si un ancien format ou un plug-in particulier ne fournit pas directement un inventaire compatible, Controller Studio propose automatiquement le retour Companion/OSC de LiveProfessor comme seconde méthode.

La relation entre l’emplacement de la Controller Map et l’identifiant interne du paramètre est conservée afin d’éviter qu’un bon réglage reçoive le label d’un autre.

VST est une marque déposée de Steinberg Media Technologies GmbH. Les mentions tierces figurent dans [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).

## Banque de contrôleurs intégrée

V.2026.2 fournit dix profils déclaratifs prêts à exporter :
V.2026.3 fournit dix profils déclaratifs prêts à exporter :

- Faderfox EC4, PC4, UC4 et PC12 ;
- Behringer X-Touch Compact, X-Touch Mini et X-Touch One ;
Expand Down
36 changes: 20 additions & 16 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,33 @@
</p>

<p align="center">
<a href="https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.2"><img alt="Version V.2026.2" src="https://img.shields.io/badge/version-V.2026.2-0b9fc6"></a>
<a href="https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.3"><img alt="Version V.2026.3" src="https://img.shields.io/badge/version-V.2026.3-0b9fc6"></a>
<img alt="Windows 10 and 11 x64" src="https://img.shields.io/badge/Windows-10%20%7C%2011%20x64-1674d1">
<img alt="French and English" src="https://img.shields.io/badge/interface-FR%20%7C%20EN-445064">
</p>

## Latest version (quick access)

**Stable release: [Controller Studio V.2026.2](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.2)**<br>
**Stable release: [Controller Studio V.2026.3](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/tag/v2026.3)**<br>
Direct downloads:

- [Controller Studio installer for Windows x64 (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor-Setup-v2026.2.exe)
- [Portable Windows x64 version (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor.exe)
- [Full English manual (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor-Manual-EN.pdf)
- [Notice complète en français (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/Controller-Studio-for-LiveProfessor-Notice-FR.pdf)
- [SHA-256 checksums](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.2/SHA256SUMS.txt)
- [Controller Studio installer for Windows x64 (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor-Setup-v2026.3.exe)
- [Portable Windows x64 version (.exe)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor.exe)
- [Full English manual (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor-Manual-EN.pdf)
- [Notice complète en français (.pdf)](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/Controller-Studio-for-LiveProfessor-Notice-FR.pdf)
- [SHA-256 checksums](https://github.com/Mamat79/Controller-Studio-for-LiveProfessor/releases/download/v2026.3/SHA256SUMS.txt)

[Lire cette présentation en français](README.md)

> **Public V.2026.2 Windows release.** Controller Studio always works on a new AutoMap copy and keeps the source `.rack2` project untouched.
> **Public V.2026.3 Windows release.** Controller Studio always works on a new AutoMap copy and keeps the source `.rack2` project untouched.

## What does Controller Studio do?

Controller Studio turns a MIDI controller into an organized control surface for LiveProfessor plug-ins. In one application, you can select or build a controller, create its LiveProfessor file, analyze project plug-ins and produce an AutoMap copy ready for testing.

| Live control | Controller bank | Plugin Studio | AutoMap |
|---|---|---|---|
| Real-time EC4 driver, banks, push, Shift, labels, values and reconnection | Ready-to-export profiles and a controller editor | Names received from LiveProfessor, priorities and parameter-by-parameter selection | Plug-in and instance selection, UniBank or FullBank, validated `.rack2` copy |
| Real-time EC4 driver, banks, push, Shift, labels, values and reconnection | Ready-to-export profiles and a controller editor | Real names read from installed plug-ins, batch retrieval, priorities and individual checkboxes | Plug-in and instance selection, UniBank or FullBank, validated `.rack2` copy |

The interface is available in French and English, minimizes to the notification area and keeps the real-time log in a separate window.

Expand All @@ -50,21 +50,25 @@ Controller Studio reloads the generated copy before presenting it. Existing manu

## Plugin Studio

A `.rack2` file stores parameter order and identifiers, but not always their human-readable labels. Plugin Studio completes that data with names returned by the LiveProfessor Companion controller.
A `.rack2` file stores parameter order and identifiers, but not always their human-readable labels. Plugin Studio retrieves that data directly from installed VST3 plug-ins, each in an isolated process. A result is accepted only when its parameter count exactly matches the LiveProfessor project.

After project analysis, **Retrieve all real names** processes every plug-in type in one operation, creates or updates local profiles, and automatically backs up previous versions.

For one plug-in:

1. select its instance in LiveProfessor;
2. recall **SiLeMI/O AutoMap - PluginName** from the top bar — not the Dynamic map;
3. click **Automatically retrieve real names**;
4. use **Select all**, **Select none** or the individual checkboxes;
5. adjust the short label, kind, technical role or priority if needed, then save the local profile.
1. open the plug-in profile and click **Automatically retrieve real names**;
2. use **Select all**, **Select none** or the individual checkboxes;
3. adjust the short label, kind, technical role or priority if needed, then save the local profile.

If an older format or a particular plug-in does not provide a directly compatible inventory, Controller Studio automatically offers LiveProfessor Companion/OSC feedback as a second method.

The link between each Controller Map slot and the internal parameter identifier is preserved, preventing a correct control from receiving another parameter’s label.

VST is a registered trademark of Steinberg Media Technologies GmbH. Third-party notices are listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).

## Built-in controller bank

V.2026.2 includes ten declarative profiles ready to export:
V.2026.3 includes ten declarative profiles ready to export:

- Faderfox EC4, PC4, UC4 and PC12;
- Behringer X-Touch Compact, X-Touch Mini and X-Touch One;
Expand Down
31 changes: 31 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Third-party notices

Controller Studio contains a minimal interoperability implementation based on
the public VST 3 plug-in interfaces published by Steinberg Media Technologies
GmbH. It does not include or redistribute any third-party plug-in.

VST is a registered trademark of Steinberg Media Technologies GmbH.

## VST 3 interfaces

MIT License

Copyright (c) 2025, Steinberg Media Technologies GmbH

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
5 changes: 3 additions & 2 deletions packaging/windows/SiLeMIO-Controller-Studio.iss
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define MyAppName "Controller Studio for LiveProfessor"
#define MyAppVersion "2026.2"
#define MyAppVersion "2026.3"
#define MyAppPublisher "Mamat"
#define MyAppExeName "Controller-Studio-for-LiveProfessor.exe"
#define MyShortcutName "Controller Studio for LiveProfessor"
Expand All @@ -23,7 +23,7 @@ ArchitecturesAllowed=x64compatible
PrivilegesRequired=lowest
UsedUserAreasWarning=no
UninstallDisplayIcon={app}\{#MyAppExeName}
VersionInfoVersion=2026.2.0.0
VersionInfoVersion=2026.3.0.0
VersionInfoCompany={#MyAppPublisher}
VersionInfoDescription={#MyAppName} installer
VersionInfoProductName={#MyAppName}
Expand All @@ -42,6 +42,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{

[Files]
Source: "{#ProjectRoot}\dist\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#ProjectRoot}\THIRD_PARTY_NOTICES.md"; DestDir: "{app}"; Flags: ignoreversion

[InstallDelete]
Type: files; Name: "{app}\Uninstall-SiLeMIO-Controller-Studio.ps1"
Expand Down
2 changes: 1 addition & 1 deletion packaging/windows/build_setup.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ $ErrorActionPreference = 'Stop'
$projectRoot = (Resolve-Path (Join-Path $PSScriptRoot '..\..')).Path
$application = Join-Path $projectRoot 'dist\Controller-Studio-for-LiveProfessor.exe'
$setupScript = Join-Path $PSScriptRoot 'SiLeMIO-Controller-Studio.iss'
$setup = Join-Path $projectRoot 'dist\Controller-Studio-for-LiveProfessor-Setup-v2026.2.exe'
$setup = Join-Path $projectRoot 'dist\Controller-Studio-for-LiveProfessor-Setup-v2026.3.exe'
$checksum = "$setup.sha256"

if ($RebuildApplication -or -not (Test-Path -LiteralPath $application -PathType Leaf)) {
Expand Down
4 changes: 4 additions & 0 deletions packaging/windows/gui_entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ def packaged_smoke_test() -> int:
if __name__ == "__main__":
if "--smoke-test" in sys.argv[1:]:
raise SystemExit(packaged_smoke_test())
if "--vst3-scan-worker" in sys.argv[1:]:
from silemio_control_hub.vst3_scanner import worker_main

raise SystemExit(worker_main(sys.argv[1:]))
from silemio_control_hub.desktop import main

raise SystemExit(main())
2 changes: 1 addition & 1 deletion packaging/windows/install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ $uninstallKey = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\SiLeM
$hostExe = (Get-Process -Id $PID).Path
$null = New-Item -Path $uninstallKey -Force
Set-ItemProperty -Path $uninstallKey -Name DisplayName -Value 'Controller Studio for LiveProfessor'
Set-ItemProperty -Path $uninstallKey -Name DisplayVersion -Value '2026.2'
Set-ItemProperty -Path $uninstallKey -Name DisplayVersion -Value '2026.3'
Set-ItemProperty -Path $uninstallKey -Name Publisher -Value 'Mamat'
Set-ItemProperty -Path $uninstallKey -Name InstallLocation -Value $InstallRoot
Set-ItemProperty -Path $uninstallKey -Name DisplayIcon -Value $targetExe
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "silemio-control-hub"
version = "2026.2"
version = "2026.3"
description = "Controller Studio for LiveProfessor by SiLeMI/O"
requires-python = ">=3.11"
dependencies = [
Expand Down
Loading
Loading