mirror of
https://github.com/onyx-and-iris/nvda-voicemeeter.git
synced 2024-11-21 17:40:48 +00:00
documentation changes
python version upper limit increased to support 3.11
This commit is contained in:
parent
7ab7c30e80
commit
047577265c
45
README.md
45
README.md
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
A remote control app for [Voicemeeter][voicemeeter], designed to be used with the [NVDA screen reader][nvda].
|
A remote control app for [Voicemeeter][voicemeeter], designed to be used with the [NVDA screen reader][nvda].
|
||||||
|
|
||||||
This is still an early release but it should be usable.
|
For an outline of this projects goals see the [SPECIFICATION][spec].
|
||||||
|
|
||||||
<img src="./img/settings.png" width=350 alt="Image of Voicemeeter NVDA app settings tab">
|
<img src="./img/settings.png" width=350 alt="Image of Voicemeeter NVDA app settings tab">
|
||||||
|
|
||||||
@ -18,11 +18,31 @@ This is still an early release but it should be usable.
|
|||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
First clone the source files from this repository
|
#### `From Source`
|
||||||
|
|
||||||
`git clone https://github.com/onyx-and-iris/nvda-voicemeeter.git`
|
First clone the source files from this repository and install the dependencies.
|
||||||
|
|
||||||
Then download the [Controller Client][controller_client] and place the files into the directory `controllerClient`.
|
```
|
||||||
|
git clone https://github.com/onyx-and-iris/nvda-voicemeeter.git
|
||||||
|
cd nvda-voicemeeter
|
||||||
|
pip install .
|
||||||
|
```
|
||||||
|
|
||||||
|
Then download the [Controller Client][controller_client] and place the dll files into the directory `controllerClient`.
|
||||||
|
|
||||||
|
Your directory structure should look like this:
|
||||||
|
|
||||||
|
├── `controllerClient/`
|
||||||
|
|
||||||
|
├── `x64/`
|
||||||
|
|
||||||
|
├── nvdaControllerClient64.dll
|
||||||
|
|
||||||
|
├── `x86/`
|
||||||
|
|
||||||
|
├── nvdaControllerClient32.dll
|
||||||
|
|
||||||
|
#### `From Releases`
|
||||||
|
|
||||||
If you want to get started quickly and easily I have uploaded some compiled versions of the app in the [Releases][releases] section.
|
If you want to get started quickly and easily I have uploaded some compiled versions of the app in the [Releases][releases] section.
|
||||||
|
|
||||||
@ -52,24 +72,38 @@ May be one of the following:
|
|||||||
|
|
||||||
### Use
|
### Use
|
||||||
|
|
||||||
The app presents four tabs `Settings`, `Physical Strip`, `Virtual Strip` and `Buses`. Navigate between the tabs with `Control + TAB` and `Control + SHIFT + TAB`.
|
#### `Tabs`
|
||||||
|
|
||||||
|
The app presents four tabs `Settings`, `Physical Strip`, `Virtual Strip` and `Buses`. Navigate between the tabs with `Control + TAB` and `Control + SHIFT + TAB` or once focused on any tab, `Left` and `Right` arrow keys.
|
||||||
|
|
||||||
All controls within the tabs may be navigated between using `TAB`.
|
All controls within the tabs may be navigated between using `TAB`.
|
||||||
|
|
||||||
|
#### `Settings`
|
||||||
|
|
||||||
The following controls offer context menus accessed by pressing `SPACE` or `ENTER`:
|
The following controls offer context menus accessed by pressing `SPACE` or `ENTER`:
|
||||||
|
|
||||||
- Hardware In
|
- Hardware In
|
||||||
- Hardware Out
|
- Hardware Out
|
||||||
- Patch Composite
|
- Patch Composite
|
||||||
|
|
||||||
|
Press `ESCAPE` to exit any context menu.
|
||||||
|
|
||||||
All other buttons can be triggered by pressing `SPACE` or `ENTER`.
|
All other buttons can be triggered by pressing `SPACE` or `ENTER`.
|
||||||
|
|
||||||
To adjust Patch Asio Inputs to Strips and Patch Insert values use `UP` and `DOWN` arrows when in focus.
|
To adjust Patch Asio Inputs to Strips and Patch Insert values use `UP` and `DOWN` arrows when in focus.
|
||||||
|
|
||||||
|
To access Advanced Settings you may press the Advanced Settings button or use `Control + A` when in the `Settings` tab.
|
||||||
|
|
||||||
|
#### `Strip/Bus`
|
||||||
|
|
||||||
To rename a strip/bus channel navigate to the relevant tab, then press `F2`. This will open a popup window where you can set the channel index (with a spinbox) and set the new label using a text input box.
|
To rename a strip/bus channel navigate to the relevant tab, then press `F2`. This will open a popup window where you can set the channel index (with a spinbox) and set the new label using a text input box.
|
||||||
|
|
||||||
Pressing the `OK` button with an empty text input will clear the label. In this case the label will be read as a default value for that channel. For example, if the leftmost Strip label were cleared, the screen reader will now read `Hardware Input 1`.
|
Pressing the `OK` button with an empty text input will clear the label. In this case the label will be read as a default value for that channel. For example, if the leftmost Strip label were cleared, the screen reader will now read `Hardware Input 1`.
|
||||||
|
|
||||||
Pressing `Cancel` will close the popup window with no affect on the label.
|
Pressing `Cancel` will close the popup window with no affect on the label.
|
||||||
|
|
||||||
|
#### `Menu`
|
||||||
|
|
||||||
A single menu item `Voicemeeter` can be opened using `Alt` and then `v`. The menu allows you to:
|
A single menu item `Voicemeeter` can be opened using `Alt` and then `v`. The menu allows you to:
|
||||||
|
|
||||||
- Restart Voicemeeter audio engine
|
- Restart Voicemeeter audio engine
|
||||||
@ -94,6 +128,7 @@ If you have any questions/suggestions feel free to raise an issue or open a new
|
|||||||
|
|
||||||
[PySimpleGUI](https://github.com/PySimpleGUI) team for creating an awesome GUI framework.
|
[PySimpleGUI](https://github.com/PySimpleGUI) team for creating an awesome GUI framework.
|
||||||
|
|
||||||
|
[spec]: ./SPECIFICATION.md
|
||||||
[voicemeeter]: https://voicemeeter.com/
|
[voicemeeter]: https://voicemeeter.com/
|
||||||
[nvda]: https://www.nvaccess.org/
|
[nvda]: https://www.nvaccess.org/
|
||||||
[controller_client]: https://github.com/nvaccess/nvda/tree/master/extras/controllerClient
|
[controller_client]: https://github.com/nvaccess/nvda/tree/master/extras/controllerClient
|
||||||
|
30
SPECIFICATION.md
Normal file
30
SPECIFICATION.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Software Specification
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
A remote control utility for Voicemeeter designed to be used with the NVDA screen reader.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
#### Functional Goals
|
||||||
|
|
||||||
|
- Parameter updates caused by user input should be read back to the user via the screen reader.
|
||||||
|
- When focusing a control the current value for that control should be read back to the user.
|
||||||
|
- The application should scale correctly according to each kind of Voicemeeter (basic, banana, potato). This means the following:
|
||||||
|
- Correct number of strips/buses.
|
||||||
|
- Correct number of bus assignments for each strip.
|
||||||
|
- Where certain controls are valid for one kind they may not be for another.
|
||||||
|
- Where possible set limits on data entry and keep controls appropriate for the type of parameter.
|
||||||
|
|
||||||
|
#### Accessibility Goals
|
||||||
|
|
||||||
|
- Every control must be usable with a keyboard.
|
||||||
|
- Navigation around the application must be doable with a keyboard.
|
||||||
|
- Should use standard Windows controls only.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
- May not cover 100% of the Voicemeeter GUI, for example the many EQ parameters.
|
||||||
|
- Only designed to work with the NVDA screen reader. Other screen readers not supported.
|
||||||
|
- Only the main Voicemeeter GUI supported by this application. No support for Matrix or other Voicemeeter products.
|
||||||
|
- Runs on Python version 3.10 or greater.
|
2
pdm.lock
2
pdm.lock
@ -6,7 +6,7 @@ groups = ["default", "build", "lint", "test"]
|
|||||||
cross_platform = true
|
cross_platform = true
|
||||||
static_urls = false
|
static_urls = false
|
||||||
lock_version = "4.3"
|
lock_version = "4.3"
|
||||||
content_hash = "sha256:9051151ac4ac0edefdfaf52faa91dbff89d8bbc942a6ffa61b6ec6fee502aa8a"
|
content_hash = "sha256:ba53368b628b713c9cf4eb54e6f5c5c4af207c8e247d473417e4c2a4b47f645d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "altgraph"
|
name = "altgraph"
|
||||||
|
@ -10,7 +10,7 @@ dependencies = [
|
|||||||
"pyparsing>=3.1.1",
|
"pyparsing>=3.1.1",
|
||||||
"voicemeeter-api>=2.4.9",
|
"voicemeeter-api>=2.4.9",
|
||||||
]
|
]
|
||||||
requires-python = ">=3.10,<3.11"
|
requires-python = ">=3.10,<3.12"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
[project.license]
|
[project.license]
|
||||||
|
Loading…
Reference in New Issue
Block a user