Skip to content

Commit

Permalink
Restrict coefficients to -32..32 and update README
Browse files Browse the repository at this point in the history
  • Loading branch information
george-norton committed Jun 22, 2023
1 parent f15c7cf commit 1fc875d
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 15 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ Ploopy Headphones Toolbox is an application for configuring the filtering applie
![Screenshot Ploopy Headphones Toolbox.](screenshot-2.png)
![Dark mode screenshot Ploopy Headphones Toolbox.](screenshot-3.png)

To use this tool you will need to be running a firmware image build from the [headphones-toolbox branch](https://github.com/george-norton/headphones/tree/headphones-toolbox), prebuilt binaries are available [here](https://github.com/george-norton/headphones/releases/tag/headphones-toolbox-alpha-v1).
To use this tool you will need to be running a firmware image build from the [headphones-toolbox branch](https://github.com/george-norton/headphones/tree/headphones-toolbox), prebuilt binaries are available [here](https://github.com/george-norton/headphones/releases/tag/headphones-toolbox-beta-v1).

## Alpha Test
## Beta Test

This is an Alpha test version of Ploopy Headphones Toolbox, it is pretty functional at this point but there are still a few planned bits which are not implemented. Feel free to raise defects, pull requests or leave feedback over on [r/ploopy](https://www.reddit.com/r/ploopy).
This is an Beta test version of Ploopy Headphones Toolbox, it is pretty functional at this point but there are still a few planned bits which are not implemented. Feel free to raise defects, pull requests or leave feedback over on [r/ploopy](https://www.reddit.com/r/ploopy).

## Quickstart guide

Grab a firmware image from [here](https://github.com/george-norton/headphones/releases/tag/headphones-toolbox-alpha-v3) and flash it onto your DAC.
Grab a build of Ploopy Headphones Toolbox from [here](https://github.com/george-norton/headphones-toolbox/releases/tag/headphones-toolbox-alpha-v5) and install it on your PC.
Grab a firmware image from [here](https://github.com/george-norton/headphones/releases/tag/headphones-toolbox-beta-v1) and flash it onto your DAC.
Grab a build of Ploopy Headphones Toolbox from [here](https://github.com/george-norton/headphones-toolbox/releases/tag/headphones-toolbox-beta-v1) and install it on your PC.

If you are a Linux user you will need to set a udev rule to allow users to access the USB device. As root, run:
```
Expand All @@ -32,7 +32,7 @@ You can export your faviourite configurations to JSON files and share them with

## Current development status

The application is currently in Alpha status. But I have now implemented the majority of the functionality I planned for the first release, so we are close to a first beta release.
The application is currently in Beta status. I have now implemented all of the functionality I planned for the first release, it just wants testing.

Missing functionality:
- Not many errors are reported to the user.
Expand All @@ -49,6 +49,7 @@ Implemented functionality:
- Configure the PCM3060 filters.
- Reports device information to the user (version numbers etc..)
- Validates the firmware version is supported.
- Completely custom Infinite Impulse Response (IIR) filters

Known issues:
- There is a burst of audio noise when when writing a config to flash, this seems to be due to the time it takes to write to flash. I turn the DAC off then back on to mask it, the slight pop sounds much better.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "tauri-app",
"private": true,
"version": "0.0.0",
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
23 changes: 15 additions & 8 deletions src/components/Filter.vue
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@

<q-list dense bordered class="col" v-else>
<div class="info-box q-ma-sm">
<q-icon size="sm" name="warning" color="red" />
Warning! Do not mess with these coefficients while you are listening to your headphones. It will get loud!
<q-icon size="sm" name="warning" color="red" />
Warning! Do not mess with these coefficients while you are listening to your headphones. It will get loud!
</div>
<div class="row fit justify-start q-pa-sm">
<div class="col-shrink q-mx-sm">
Expand All @@ -91,13 +91,17 @@
<div class="row justify-start q-gutter-md">
<q-input label="a0" type="number" dense hide-bottom-space style="width:8em" :step="1.0 / iirDp"
:debounce=100 :model-value="a0" @update:model-value="(value) => $emit('update:a0', Number(value))"
input-class="truncate-text" :rules="[val => (val != 0) || 'The a0 coefficient must not be zero']" />
input-class="truncate-text" :rules="[val => (val != 0) || 'The a0 coefficient must not be zero',
val => (val >= -32 && val < 32) || 'Coefficient cannot be represented by the fixed point data type.']"
:min=-32 :max=32 />
<q-input label="a1" type="number" dense hide-bottom-space style="width:8em" :step="1.0 / iirDp"
:debounce=100 :model-value="a1" @update:model-value="(value) => $emit('update:a1', Number(value))"
input-class="truncate-text" />
input-class="truncate-text" :min=-32 :max=32
:rules="[val => (val >= -32 && val < 32) || 'Coefficient cannot be represented by the fixed point data type.']" />
<q-input label="a2" type="number" dense hide-bottom-space style="width:8em" :step="1.0 / iirDp"
:debounce=100 :model-value="a2" @update:model-value="(value) => $emit('update:a2', Number(value))"
input-class="truncate-text" />
input-class="truncate-text" :min=-32 :max=32
:rules="[val => (val >= -32 && val < 32) || 'Coefficient cannot be represented by the fixed point data type.']" />
</div>
</div>

Expand All @@ -107,13 +111,16 @@
<div class="row justify-start q-gutter-md">
<q-input label="b0" type="number" dense hide-bottom-space style="width:8em" :step="1.0 / iirDp"
:debounce=100 :model-value="b0" @update:model-value="(value) => $emit('update:b0', Number(value))"
input-class="truncate-text" />
input-class="truncate-text" :min=-32 :max=32
:rules="[val => (val >= -32 && val < 32) || 'Coefficient cannot be represented by the fixed point data type.']" />
<q-input label="b1" type="number" dense hide-bottom-space style="width:8em" :step="1.0 / iirDp"
:debounce=100 :model-value="b1" @update:model-value="(value) => $emit('update:b1', Number(value))"
input-class="truncate-text" />
input-class="truncate-text" :min=-32 :max=32
:rules="[val => (val >= -32 && val < 32) || 'Coefficient cannot be represented by the fixed point data type.']" />
<q-input label="b2" type="number" dense hide-bottom-space style="width:8em" :step="1.0 / iirDp"
:debounce=100 :model-value="b2" @update:model-value="(value) => $emit('update:b2', Number(value))"
input-class="truncate-text" />
input-class="truncate-text" :min=-32 :max=32
:rules="[val => (val >= -32 && val < 32) || 'Coefficient cannot be represented by the fixed point data type.']" />
</div>
</div>
</div>
Expand Down

0 comments on commit 1fc875d

Please sign in to comment.