{"id":13620920,"url":"https://github.com/janberges/Tonbandfetzen","last_synced_at":"2025-04-14T22:32:55.772Z","repository":{"id":41296592,"uuid":"330433164","full_name":"janberges/Tonbandfetzen","owner":"janberges","description":"Audio from plain text","archived":false,"fork":false,"pushed_at":"2025-02-16T18:05:31.000Z","size":450,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-16T18:32:07.614Z","etag":null,"topics":["aif","audio","guitar-tabs","id3v2","just-intonation","makefile","music-notation","wav"],"latest_commit_sha":null,"homepage":"https://io.janberges.de/Tonbandfetzen","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janberges.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-17T16:19:58.000Z","updated_at":"2025-02-16T18:07:48.000Z","dependencies_parsed_at":"2024-04-07T12:23:00.780Z","dependency_job_id":"cb924a99-1dba-4b7d-973e-c9cc0bf2fc61","html_url":"https://github.com/janberges/Tonbandfetzen","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/janberges%2FTonbandfetzen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janberges%2FTonbandfetzen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janberges%2FTonbandfetzen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janberges%2FTonbandfetzen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janberges","download_url":"https://codeload.github.com/janberges/Tonbandfetzen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248972436,"owners_count":21191794,"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":["aif","audio","guitar-tabs","id3v2","just-intonation","makefile","music-notation","wav"],"created_at":"2024-08-01T21:01:00.717Z","updated_at":"2025-04-14T22:32:50.757Z","avatar_url":"https://github.com/janberges.png","language":"Fortran","funding_links":[],"categories":["Fortran"],"sub_categories":[],"readme":"![Tonbandfetzen logo](logo/Tonbandfetzen.svg)\n\n# Tonbandfetzen\n\nTonbandfetzen is a collection of command-line tools that allow you to compose\nmusic based on audio fragments generated from plain text input. It contains:\n\n* `mel` - generate sound fragments from plain text\n* `guitar` - read guitar tablature\n* `stick` - concatenate audio data\n* `stack` - superimpose audio data\n* `stretch` - rescale audio data\n* `repeat` - loop audio data\n* `trim` - strip leading and trailing silence\n* `mono` - unzip audio channels\n* `harmonics` - show spectra of wave samples\n* `inspect` - show information on audio file\n* `riff2aiff` - convert .wav(e) into .aif(f) files\n* `aiff2riff` - convert .aif(f) into .wav(e) files\n* `tag` - add ID3v2 metadata to .wav(e) files\n* `zplay` - generate and play sound fragments\n\n## Usage\n\nDifferent task are spread across separate executables, which communicate via\nfiles in the Waveform Audio File Format (.wav). Hence, the composition process\ncan be controlled using build-automation software, allowing for partial updates\nand parallel execution (`make -j`).\n\nAt the heart of this toolbox, the program `mel` converts text into audio (try\n[here](https://janberges.de/mel.cgi)):\n\n    echo \"T pyth M A2'8 W ,5 A2' A3' E4' A4' C#v5' E5' Gz5' A5'\" | mel | aplay\n\nThe `guitar` preprocessor converts tablature into suitable `mel` input:\n\n    echo \"|3 ,30\n    E4|--------------------0~~~~~~~~~~~|~~~~0~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n    B3|----0~~~~~~~~~~~~~3~~~0~~~~~0~~~|~~3~~~0~~~~~0~~~~~~~~~~~~~~~~~~~|\n    G3|--2~~~0~~~~~0~~~~~~~~~~~~~2~~~0~|~~~~~~~~~~2~~~0~~~~~0~~~~~~~~~~~|\n    D3|----------2~~~0~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~2~~~0~~~~~0~~~|\n    A2|3~~~~~~~~~~~~~~~----------------|--------------------------2~~~0~|\n    E2|----------------3~~~~~~~~~~~~~~~|0~~~~~~~~~~~~~~~2~~~~~~~3~~~~~~~|\n    \" | guitar | mel | repeat | aplay\n\nThe [Functional Just System](https://misotanni.github.io) for just intonation\ninvented by misotanni is partially supported.\n\n## Installation\n\nTo build all tools, you only need a recent Fortran compiler:\n\n    cd /path/to/Tonbandfetzen\n    make FC=gfortran FFLAGS=-O3\n\nTo make the tools and documentation accessible, consider adding the following\nlines to your .bashrc:\n\n    REPO=/path/to/Tonbandfetzen\n    export PATH=$REPO/bin:$PATH\n    export PERL5LIB=$REPO/perl/lib:$PERL5LIB\n    export MANPATH=$REPO/doc:$MANPATH\n\nYou might also want to link the Vim syntax file to the appropriate location:\n\n    ln -s /path/to/Tonbandfetzen/vim/mel.vim ~/.vim/syntax/mel.vim\n\nTo have Vim detect the corresponding file types, add this line to your .vimrc:\n\n    autocmd BufRead,BufNewFile *.mel,*.gtr setlocal filetype=mel\n\n## Documentation\n\nPlease have a look at the examples, some of which require Python or eSpeak NG:\n\n    cd examples/freedom\n    make -j 2\n    aplay freedom.wav\n\nEach program has its own manual page:\n\n    man mel\n\nYou can also listen to the examples and browse the manual pages\n[here](https://janberges.github.io/Tonbandfetzen).\n\n## Hear also\n\nThe name Tonbandfetzen originates from the song Explosion by Tocotronic from\ntheir 2007 album Kapitulation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanberges%2FTonbandfetzen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanberges%2FTonbandfetzen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanberges%2FTonbandfetzen/lists"}