{"id":48816101,"url":"https://github.com/radiolab81/amwavesynth","last_synced_at":"2026-04-23T07:01:32.752Z","repository":{"id":341582855,"uuid":"1170679252","full_name":"radiolab81/AMWaveSynth","owner":"radiolab81","description":"Wave synthesizer for long- and mediumwave","archived":false,"fork":false,"pushed_at":"2026-04-22T12:10:23.000Z","size":3913,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T12:27:41.410Z","etag":null,"topics":["cohiradia","fl2k","linux","longwave","mediumwave","radios","sdr","transmitter"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/radiolab81.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T11:49:36.000Z","updated_at":"2026-04-22T12:10:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/radiolab81/AMWaveSynth","commit_stats":null,"previous_names":["radiolab81/amwavesynth"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/radiolab81/AMWaveSynth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiolab81%2FAMWaveSynth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiolab81%2FAMWaveSynth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiolab81%2FAMWaveSynth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiolab81%2FAMWaveSynth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radiolab81","download_url":"https://codeload.github.com/radiolab81/AMWaveSynth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiolab81%2FAMWaveSynth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32169657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cohiradia","fl2k","linux","longwave","mediumwave","radios","sdr","transmitter"],"created_at":"2026-04-14T11:03:25.434Z","updated_at":"2026-04-23T07:01:32.712Z","avatar_url":"https://github.com/radiolab81.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AMWaveSynth\n### Wave synthesizer for long- and mediumwave based on liquiddsp \n![alt text](https://github.com/radiolab81/AMWaveSynth/blob/main/www/AMWaveSynth_rnd.jpg \"Logo Title Text 1\")\n\nThe AMWaveSynth is an environment for generating multiple parallel running AM-modulated radiostations for transmission via an SDR.\n\nThe AMWaveSynth receives the modulation signal as PCM samples over UDP ports (1234 and above), the RF signal containing all radio stations is available as a data stream on port 12345 for further processing or transmission with an SDR transmitter such as the FL2K-device.\n\nThere are two versions of the modulator as a console program: one for a medium samplerate of 2.5 MSPS (mainly for supplying longwave radio and RF wirecast receivers (Biennophone/TD-HF/Filodiffusione), the lower medium wave range is also reached) and a 5-MSPS version for the entire frequency range up to 2.5 MHz.\n\nThe modulator is used as follows:\n\n`Usage: ./am_modulator \u003cport1:freq1\u003e \u003cport2:freq2\u003e ...`\n\n`Example: ./am_modulator 1234:603000 1235:828000`\n\nAudiostream (8Bit,25kSPS) from port 1234 is AM modulated on 603kHz, a 2nd station with audio from port 1235 will be generated on 828 kHz....      \n\nRF out is fixed on port 12345 with 10 MSPS and can be transmitted using fl2k_tcp, for example:\n\n`fl2k_tcp -a 127.0.0.1 -p 12345 -s 10000000`\n\nAudio modulation signal can be created with programs like ffmpeg:\n\n`ffmpeg -re -i URL_station_1  -af \"lowpass=f=4500, volume=0.8, acompressor=threshold=-10dB:ratio=4\"   -f u8 -ar 25000 -ac 1 udp://127.0.0.1:1234 \u0026`\n\n`ffmpeg -re -i URL station_2  -af \"lowpass=f=4500, volume=0.8, acompressor=threshold=-10dB:ratio=4\"   -f u8 -ar 25000 -ac 1 udp://127.0.0.1:1235 \u0026`\n\n\nAdditionally, there is a multilingual PythonTK user interface for controlling the entire transmission process. Transmitters can be configured by specifying the frequency, audio bandwidth, and playback source (local/remote URL).\n\n![UI1](https://github.com/radiolab81/AMWaveSynth/blob/main/www/UI.jpg \"Logo Title Text 1\")\n\nStations can be aligned according to specific rf wave plans.\n\n![UI2](https://github.com/radiolab81/AMWaveSynth/blob/main/www/UI2.jpg \"Logo Title Text 1\")\n\nPredefined internet radio stations can be selected via a built-in station database (stations.db).\n\n![UI3](https://github.com/radiolab81/AMWaveSynth/blob/main/www/UI3.jpg \"Logo Title Text 1\")\n\nMultiple complete configured broadcasting landscapes can be mapped as a CSV file, imported and exported.\n\n![UI4](https://github.com/radiolab81/AMWaveSynth/blob/main/www/modulator_debug.jpg \"Logo Title Text 1\")\n\nAudio source gain (AGC controlled) and RF-DAC saturation is visible in the modulator console during transmission. The modulator can be easily switched to 16-bit audio and 10-16 bit wide RF-DACs. This would easily enable transmissions via STEMLab, Adalm2000, and other DACs (R2R ladder) or to the smisdr project (https://github.com/radiolab81/smisdr)\n\n## Benchmarks:\n\n| CPU/RAM       | 2.5MSPS LW/lower BC band | 5MSPS full 2.5MHz rf spectrum  |\n| ------------- |:-------------:| -----:|\n| Core2Duo/8GB  | 8-10 live stations | 5-6 live stations |\n| Core3i 1st gen/4GB| 11-13 live stations  |  8-10 live stations |\n\n\n#### You can also use add-ons like the AMWaveSynthPropagationSimulator https://github.com/radiolab81/AMWaveSynthPropagationSimulator to externally modify the carriers of the AMWaveSynth, for example to simulate day and night propagation or grayline transitions on a real radio.\n\n![UI5](https://github.com/radiolab81/AMWaveSynthPropagationSimulator/raw/main/www/mw_dusk_01.jpg \"Logo Title Text 1\")\n\n## Prerequisite for compiling on Debian 12/13\n\nbuild-essential \n\ncmake\n\ngit\n\nlibusb-1*-dev \n\nbc          (for amtxgui)\n\npython3-tk  (for amtxgui)\n\n\nliquiddsp and osmo-fl2k (are already in the lib directory and can be built with the associated scripts)\n\nPlease make all shell scripts executable in project dir, amtxgui and lib using `chmod +x *.sh`, if this is not already the case on your system.\nShould you require root privileges to run programs like fl2k_, create the necessary exception rule or start the application with root privileges by yourself.\n\n```console\n#!/bin/bash\nsudo apt update\nsudo apt install build-essential cmake git libusb-1.* bc python3-tk xterm ffmpeg\ngit clone https://github.com/radiolab81/AMWaveSynth\ncd AMWaveSynth/libs\nchmod +x *.sh\nsudo ./build_osmo_fl2k.sh\nsudo ./build_liquiddsp.sh\nsudo ldconfig\ncd ..\nchmod +x *.sh\n./build_modulators.sh\ncd amtxgui\nchmod +x *.sh\n```\n\n#### FAQ: - if modulator process terminates with an illegal machine instruction on your CPU, you must build liquiddsp with the option cmake -DENABLE_SIMD=OFF in the build_liquiddsp.sh \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiolab81%2Famwavesynth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradiolab81%2Famwavesynth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiolab81%2Famwavesynth/lists"}