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
42 changes: 27 additions & 15 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,16 @@ NOTE: Part of this will only take effect once this repository becomes public. Pl
2. Assign the issue to yourself, or ask to have it assigned to you.
3. Fork [this repository](https://github.com/4lex0017/AudioStreamSplitting) to your own account.
4. Implement your contribution and commit it to your forked repository. Be sure to follow the requirements outlined in [Requirements](#requirements). Test your implementation and ensure the program builds on your system.
- If something about the user workflow, the code structure, available commands or other usage details documented in this document and the [README.md](./README.MD) file is changed, also update the corresponding document(s) accordingly.
- If something about the user workflow, the code structure, available commands or other usage details documented in this document and the [README.md](./README.MD) file is changed, also update the corresponding document(s) accordingly. Ensure the documents don't contain spelling errors.
5. Create a pull request on this repository.
6. The pull request must be approved by at least two of the main maintainers of AudioStreamSplitting (as of current, that's @chubetho, @ChrisItisdud, @4lex0017 and @JosuaE-FHWS). Reviewers must also attempt to build and run the project locally to verify everything works fine.
7. After two approvals, the pull request gets merged.
7. After two approvals, the pull request gets merged. The merge should use squash merge in order to keep commit history reasonable on the main branch.

### Requirements

The following requirements must be met by the system at any time:

1. Every function has documentation comments, formatted in the reST doc format. An example comment is shown below. These documentation comments are used to [generate the back-end documentation](#generating-documentation).
1. Every function has documentation comments, formatted in the reST doc format. An example comment is shown below. These documentation comments are used to [generate the documentation](#generating-documentation). Ensure the documentation comments build correctly and don't contain spelling errors.
2. All python code must comply to [the black code style](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html).
3. All back-end/python code that can have unit tests (i.e. doesn't rely on files on the file system, external APIs or other outside resources) must have them. When adding a new module, add an according test file in the backend/tests folder. When updating an existing one, add or update tests in the correlating test file. All tests must pass (obviously).
4. All business logic must be in the back-end. The front-end should only contain the user interface.
Expand Down Expand Up @@ -124,7 +124,7 @@ Tests are situated in ``backend/tests``. Each module that has unit tests has its

### Generating documentation

To generate and show documentation, run ``npm run docs``. This will generate back-end and front-end documentation and show it on a local server easily accessible on your browser (usually [localhost:5173](http://localhost:5173/)). Alternatively, you can find HTML docs for the back-end in docs/_build/html. Also showing the documentation as Github pages is planned for the future, but cannot be done before this repository goes public.
To generate and show documentation, run ``npm run docs``. This will generate back-end and front-end documentation and show it on a local server easily accessible on your browser (usually [localhost:5173](http://localhost:5173/)). Alternatively, you can find HTML docs for the back-end in docs/_build/html. The documentation is also available on [Github pages](https://4lex0017.github.io/AudioStreamSplitting/).

## Developing Environment

Expand Down Expand Up @@ -180,21 +180,33 @@ npm run dev:be
```

```bash
npm run dev:be
npm run dev:fe
```

If ``npm run dev:be`` fails, check if the python executable the command calls is correct. If not, either call the command manually or change it in ``package.json`` (but don't commit the change!)

#### Available commands

| Command | Description |
| ------------------------ | --------------------------------- |
| npm run `dev:fe` | Run frontend server |
| npm run `dev:be` | Run backend server |
| npm run `view:app` | Run desktop app |
| npm run `build:fe` | Build frontend (html, js, css) |
| npm run `build:app` | Build desktop app |
| npm run `docs:gen:be` | Generate backend documentation |
| npm run `docs:gen:fe` | Generate backend documentation |
| npm run `docs` | Generate and show documentation |
| Command | Description |
| --------------------------- | --------------------------------- |
| npm run `dev:fe` | Run frontend server |
| npm run `dev:be` | Run backend server |
| npm run `test:fe` | Run frontend tests |
| npm run `test:be` | Run backend tests |
| npm run `view:app` | Run desktop app |
| npm run `build:fe` | Build frontend (html, js, css) |
| npm run `build:app` | Build desktop app |
| npm run `build:app:nocheck` | Build desktop app without checks |
| npm run `lint:fe` | Run frontend linter |
| npm run `lint:be` | Run backend linter |
| npm run `format:be` | Run backend formatter |
| npm run `typecheck` | Run frontend typechecker |
| npm run `orval` | Generate API call functions |
| npm run `docs:gen:be` | Generate backend documentation |
| npm run `docs:gen:fe` | Generate backend documentation |
| npm run `docs:gen` | Generate full documentation |
| npm run `docs:build` | Generate and build documentation |
| npm run `docs` | Generate and show documentation |

## Contributors

Expand Down
16 changes: 9 additions & 7 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,20 @@ The buttons below the waveform window allow you to download, play back or delete

#### Settings

The settings tab allows you to configure AudioStreamSplitting to your liking:
The settings tab allows you to configure AudioStreamSplitting to your liking. Each field has a short description below it to explain what it does:

<p><img src="./assets/settings.jpg" /></p>

The language field currently supports English, German, French and Spanish. Note that only the English and German translations are actively maintained, so translation issues will arise when using the other languages.

The "Save" section is where the settings related to saving files are situated.

The "Save Directory" setting should be set to the directory you want to save the resulting files into. Make sure that this is an existing directory on your device, as saving files will not work otherwise.

The "Output File Name" setting will control the file name of output files. You can include the placeholders ``{TITLE}``, ``{ARTIST}``, ``{ALBUM}`` and ``{YEAR}``, which will be replaced with the corresponding metadata when saving a song. As an example, saving the song "Thunderstruck" by "2Cellos" with the template ``"{TITLE}_{ARTIST}"`` will result in a file called ``"Thunderstruck_2Cellos.mp3"``. It is strongly recommended to include the ``{TITLE}`` placeholder in the file name to avoid overwriting files.

The "Submit files to APIs on save" setting controls whether files the app identified will also be sent to the AcoustID API (and potentially others in the future) to further improve their database. As far as we can tell, no personally identifying data is submitted, and the data that is submitted is only used to ensure you have access to the API. We kindly ask you to turn this setting on as the AcoustID database depends on user submissions to work as well as it does.

Turning off the "Ask me what to do with each save" option allows choosing a file type, which all files will be saved as by default. If this is not set, you will instead be asked to choose a file type every time you save a file.

The "Advanced" section is where the most important settings are situated. Note that for changes to these settings to apply, you must click the "Set" button next to the setting you changed.
Expand All @@ -90,12 +98,6 @@ You need to provide at least one API Key for the song identification to work, bu

The AcoustID API keys are split into two keys: The "AcoustID Application API Key" is the key you receive when registering an application. This key is necessary for any functionality involving AcoustID. The "AcoustID User API Key" is only required if you also want to submit identified songs to AcoustID.

The "Save Directory" setting should be set to the directory you want to save the resulting files into. Make sure that this is an existing directory on your device, as saving files will not work otherwise.

The "Output File Name" setting will control the file name of output files. You can include the placeholders ``{TITLE}``, ``{ARTIST}``, ``{ALBUM}`` and ``{YEAR}``, which will be replaced with the corresponding metadata when saving a song. As an example, saving the song "Thunderstruck" by "2Cellos" with the template ``"{TITLE}_{ARTIST}"`` will result in a file called ``"Thunderstruck_2Cellos.mp3"``. It is strongly recommended to include the ``{TITLE}`` placeholder in the file name to avoid overwriting files.

The "Submit files to APIs on save" setting controls whether files the app identified will also be sent to the AcoustID API (and potentially others in the future) to further improve their database. As far as we can tell, no personally identifying data is submitted, and the data that is submitted is only used to ensure you have access to the API. We kindly ask you to turn this setting on as the AcoustID database depends on user submissions to work as well as it does.

## License

This software is licensed under the GNU GPLv3 license, as found in the LICENSE.txt file or [on the GNU website](https://www.gnu.org/licenses/gpl-3.0.en.html). Note that this license only applies to the software itself, not to audio files generated by it, as they still belong to the songs' original copyright holders.
Expand Down
Binary file modified assets/settings.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ export default defineConfig({
ignoreDeadLinks: true,
base: '/AudioStreamSplitting',

head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/logo.ico' }]],
head: [['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }]],

themeConfig: {
logo: '/logo.ico',
nav: [
Expand Down
Loading