{"id":15654413,"url":"https://github.com/crodriguez1a/inver-synth","last_synced_at":"2025-04-30T23:40:41.579Z","repository":{"id":40975462,"uuid":"223579405","full_name":"crodriguez1a/inver-synth","owner":"crodriguez1a","description":"A Python implementation of the InverSynth method (Barkan, Tsiris, Koenigstein, Katz)","archived":false,"fork":false,"pushed_at":"2022-12-26T21:30:37.000Z","size":25584,"stargazers_count":30,"open_issues_count":9,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T20:51:09.736Z","etag":null,"topics":["arxiv","convolutional-layers","deep-estimation","deep-learning","inver-synth","python","synthesizer"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crodriguez1a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-23T11:42:51.000Z","updated_at":"2024-12-14T04:46:58.000Z","dependencies_parsed_at":"2023-01-31T01:45:35.476Z","dependency_job_id":null,"html_url":"https://github.com/crodriguez1a/inver-synth","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crodriguez1a%2Finver-synth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crodriguez1a%2Finver-synth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crodriguez1a%2Finver-synth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crodriguez1a%2Finver-synth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crodriguez1a","download_url":"https://codeload.github.com/crodriguez1a/inver-synth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251800996,"owners_count":21645967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arxiv","convolutional-layers","deep-estimation","deep-learning","inver-synth","python","synthesizer"],"created_at":"2024-10-03T12:51:37.843Z","updated_at":"2025-04-30T23:40:41.539Z","avatar_url":"https://github.com/crodriguez1a.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build](https://github.com/crodriguez1a/inver-synth/workflows/Build/badge.svg?branch=master)\n\n# inver-synth\n\u003e A Python implementation of the [InverSynth](https://arxiv.org/abs/1812.06349) method (Barkan, Tsiris, Koenigstein, Katz)\n\n---\n\nNOTE: This implementation is a **work in progress**. Contributions are welcome.\n\n## Installation\n\n```\npoetry shell\npoetry install\n```\n\n## Getting Started\n\n```\npoetry run task start\n```\n\n## Generating a Training Set\n\nTo use defaults:\n```\npoetry run task generate\n```\n\nTo customize:\n```\npython -m generators.fm_generator\n```\n\nParameter | Default | Description\n---|---|---\n`--num_examples` | `150` | Number of examples to create\n`--name` | `InverSynth` | Naming convention for datasets\n`--dataset_directory` | `test_datasets` | Directory for datasets\n`--wavefile_directory` | `test_waves` | Directory to for wave files.\u003cbr\u003eNaming convention applied automatically\n`--length` | `1.0` | Length of each sample in seconds\n`--sample_rate` | `16384` | Sample rate (Samples/second)\n`--sampling_method` | `random` | Method to use for generating examples.\u003cbr\u003eCurrently only random, but may\u003cbr\u003einclude whole space later\nOptional |\n`--regenerate_samples` | | Regenerate the set of points to explore if it\u003cbr\u003eexists (will also force regenerating audio)\n`--regenerate_audio` | | Regenerate audio files if they exist\n`--normalise` | | Apply audio normalization\n\nThis module generates a dataset attempting to recreate the dataset generation\u003cbr\u003eas defined in the [paper](paper/1812.06349.pdf)\n\n\n\n### Experimenting with the E2E or Spectrogram models\n\nFirst, assign values to following environment variables in a `.env`:\n\nParameter | Default | Description\n---|---|---\n`--model` | E2E: `e2e`\u003cbr\u003eSTFT: `C1` | Model architecture to run\u003cbr\u003efrom the following:\u003cbr\u003e`C1`,`C2`,`C3`,`C4`,`C5`,`C6`,`C6XL`,`e2e`\n`--dataset_name` | `InverSynth` | Namespace of dataset generated\nOptional |\n`--epochs`| `100` | Number of epochs to run\n`--dataset_dir`| `test_datasets` | Directory full of datasets to use\n`--output_dir`| `output` | Directory where the final model and history\u003cbr\u003ewill be saved\n`--dataset_file`| `None` | Specify an exact dataset file to use\n`--parameters_file`| `None` | Specify an exact parameters file to use\n`--data_format` | `channels_last` | Image data format for Keras. Select\u003cbr\u003eeither `channels_last` or `channels_first`.\u003cbr\u003eNote: If CPU, only `channels_last` can be selected\n`--run_name` | | Namespace for output files\n\n\nSelecting an architecture:\n\n- `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C6XL`, `CE2E`, `CE2E_2D`\n\n![workflow](docs/img/architectures.png \"Mimimun, Maximum\")\n\nTraining the models:\n\n\u003e  End-to-End learning. A CNN predicts the synthesizer parameter configuration directly from the raw audio. The first\nconvolutional layers perform 1D convolutions that learn an alternative representation for the STFT Spectrogram. Then, a\nstack of 2D convolutional layers analyze the learned representation to predict the synthesizer parameter configuration.\n\n```\npython -m models.e2e_cnn\n```\n\nor\n\n\u003e  The STFT spectrogram of the input signal is fed into a 2D CNN that predicts the\nsynthesizer parameter configuration. This configuration is then used to produce a sound that is similar to the input sound.\n\n```\npython -m models.spectrogram_cnn\n```\n\n## Contributing\n\nTo ensure passing builds, apply type checks, linting and formatting with:\n\n```\npoetry run task clean\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrodriguez1a%2Finver-synth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrodriguez1a%2Finver-synth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrodriguez1a%2Finver-synth/lists"}