jblond / morse
PHP morse code and wav(e) sound file generation
Installs: 22
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/jblond/morse
Requires
- php: >= 8.0
- ext-mbstring: *
Requires (Dev)
- ext-fileinfo: *
- phpunit/phpunit: ^9 || ^10
- squizlabs/php_codesniffer: *
README
Supported character sets
- Arabic, Cyrillic, Greek (needs conversion to upper case letters (function included)), Hebrew, Japanese Korean, Latin, Persian, and Thai.
composer require jblond/morse
Example UI: https://github.com/JBlond/maas Morse as a Service
Examples
<?php use jblond\morse\Morse; use jblond\morse\Wave; require './vendor/autoload.php'; $morse = new Morse(); $morseBinary = $morse->stringToMorse('SOS'); $morse = $morse->dotDash($morseBinary); echo $morse; $wave = new Wave(); file_put_contents('sos.wav', $wave->generate('SOS'));
Non latin example
<?php use jblond\morse\Morse; require './vendor/autoload.php'; $morse = new Morse(); $morse->setLetters('Cyrillic'); $morse->stringToMorse('Запомнить');
Morse API
setLettersChange the origin character set (letters / language)- available: Arabic, Cyrillic, Greek, Hebrew, Japanese, Korean (SKATS), Latin (default), Persian, and Thai.
getLettersGet an array of the current selected character setgetCharacterConvert a single character into morse binary code. An invalid character will return a#.stringToMorseConvert a string into binary morse code.dotDashConvert binary morse code into dot and dash / dit and dah.
Greek characters
Since the PHP strtoupper function fails for Greek, an extra function to do so has been added.
<?php use jblond\morse\Morse; use jblond\morse\CharacterSet\Greek; require './vendor/autoload.php'; $morse = new Morse(); $morse->setLetters('Greek'); $morse->stringToMorse((new Greek())->stringToUpper('Τέλος εκπομπής'));
Wav(e) API
setCwSpeedset words per minute (cw speed). Default is 25.setSampleRatedefault is 11050. An audio CD would be 44100 aka 44.1 kHz (16 bit).setFrequencyset the tone height. Default is 700 (cw tone).generateget the audio as binary.
License: MIT