morse2au 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/au/Au.rb +14 -0
- data/lib/morse/morse.rb +40 -0
- data/lib/morse2au.rb +84 -0
- metadata +46 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: ebc22148f593312ee8175fd70c6d0e07d1d29159
|
|
4
|
+
data.tar.gz: db982c1caff6a171a9135d526461df35a0f438b7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: a0ea876322d66e5d2717928643818918d67bc38bd837de8cfd2fc8b825356095a94f1d02a0943cec6f600fa5459d10d3f43100c0f2e7457751a66c02d17789f9
|
|
7
|
+
data.tar.gz: 5e8e460f7d602f7d764e4a237bd1eb8c56dd8fb14ff68ff637229f1805ddfc6c5483b1426dc15d5edb887235c96bd0ddddc5b89b3f3295c53ea32dd5f087df01
|
data/lib/au/Au.rb
ADDED
data/lib/morse/morse.rb
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
$morse_chars = {
|
|
2
|
+
'a' => [ 0, 1 ],
|
|
3
|
+
'b' => [ 1, 0, 0, 0 ],
|
|
4
|
+
'c' => [ 1, 0, 1, 0 ],
|
|
5
|
+
'd' => [ 1, 0, 0 ],
|
|
6
|
+
'e' => [ 0 ],
|
|
7
|
+
'f' => [ 0, 0, 1, 0 ],
|
|
8
|
+
'g' => [ 1, 1, 0 ],
|
|
9
|
+
'h' => [ 0, 0, 0, 0 ],
|
|
10
|
+
'i' => [ 0, 0 ],
|
|
11
|
+
'j' => [ 0, 1, 1, 1 ],
|
|
12
|
+
'k' => [ 1, 0, 1 ],
|
|
13
|
+
'l' => [ 0, 1, 0, 0 ],
|
|
14
|
+
'm' => [ 1, 1 ],
|
|
15
|
+
'n' => [ 1, 0 ],
|
|
16
|
+
'o' => [ 1, 1, 1],
|
|
17
|
+
'p' => [ 1, 0, 0, 1 ],
|
|
18
|
+
'q' => [ 1, 1, 0, 1 ],
|
|
19
|
+
'r' => [ 0, 1, 0 ],
|
|
20
|
+
's' => [ 0, 0, 0 ],
|
|
21
|
+
't' => [ 1 ],
|
|
22
|
+
'u' => [ 0, 0, 1 ],
|
|
23
|
+
'v' => [ 0, 0, 0, 1 ],
|
|
24
|
+
'w' => [ 0, 1, 1 ],
|
|
25
|
+
'x' => [ 1, 0, 0, 1 ],
|
|
26
|
+
'y' => [ 1, 0, 1, 1 ],
|
|
27
|
+
'z' => [ 1, 1, 0, 0 ],
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
'0' => [ 1, 1, 1, 1, 1 ],
|
|
31
|
+
'1' => [ 0, 1, 1, 1, 1 ],
|
|
32
|
+
'2' => [ 0, 0, 1, 1, 1 ],
|
|
33
|
+
'3' => [ 0, 0, 0, 1, 1 ],
|
|
34
|
+
'4' => [ 0, 0, 0, 0, 1 ],
|
|
35
|
+
'5' => [ 0, 0, 0, 0, 0 ],
|
|
36
|
+
'6' => [ 1, 0, 0, 0, 0 ],
|
|
37
|
+
'7' => [ 1, 1, 0, 0, 0 ],
|
|
38
|
+
'8' => [ 1, 1, 1, 0, 0 ],
|
|
39
|
+
'9' => [ 1, 1, 1, 1, 0 ]
|
|
40
|
+
}
|
data/lib/morse2au.rb
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
require 'morse/morse.rb'
|
|
2
|
+
require 'au/Au.rb'
|
|
3
|
+
|
|
4
|
+
class Morse2Au
|
|
5
|
+
# Generate an .au file of Morse code
|
|
6
|
+
#
|
|
7
|
+
# Example :
|
|
8
|
+
# >> MorseAu.init("/home/matt/output.au", 0.1)
|
|
9
|
+
# >> MorseAu.strToMorse("CQ CQ")
|
|
10
|
+
# >> MorseAu.writeout
|
|
11
|
+
|
|
12
|
+
@@sample_rate = 16000
|
|
13
|
+
@@wave = ''
|
|
14
|
+
@@io
|
|
15
|
+
@@au = Au.new
|
|
16
|
+
@@freq = 500
|
|
17
|
+
@@rel_speed
|
|
18
|
+
@tmpPath
|
|
19
|
+
|
|
20
|
+
def self.initialize(ofile, rel_speed)
|
|
21
|
+
@@io = File.open(ofile, "w")
|
|
22
|
+
@@rel_speed = rel_speed
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.getTmp
|
|
26
|
+
@tmpPath
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.addBeep(duration)
|
|
30
|
+
0.step(duration, 1.0/@@sample_rate) do |t|
|
|
31
|
+
x = Math.sin(t * @@freq) * 50 + 127
|
|
32
|
+
@@wave << x.to_i.chr
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.addSilence(duration)
|
|
37
|
+
0.step(duration, 1.0/@@sample_rate) do |i|
|
|
38
|
+
@@wave << 0
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.addDit
|
|
43
|
+
self.addBeep(@@rel_speed)
|
|
44
|
+
self.addSilence(@@rel_speed)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.addDah
|
|
48
|
+
self.addBeep(@@rel_speed * 4)
|
|
49
|
+
self.addSilence(@@rel_speed)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.addLSpace
|
|
53
|
+
self.addSilence(@@rel_speed * 3)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def self.addWSpace
|
|
57
|
+
self.addSilence(@@rel_speed * 7)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.strToMorse(text)
|
|
61
|
+
text.downcase!
|
|
62
|
+
text.split('').each do |c|
|
|
63
|
+
if /^[a-z0-9]$/.match(c)
|
|
64
|
+
$morse_chars[c].each do |c2|
|
|
65
|
+
if c2 == 0
|
|
66
|
+
self.addDit
|
|
67
|
+
elsif c2 == 1
|
|
68
|
+
self.addDah
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
self.addLSpace
|
|
72
|
+
else
|
|
73
|
+
self.addWSpace
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def self.writeOut
|
|
79
|
+
# No idea about next line
|
|
80
|
+
@@au.data = @@wave #@@wave.slice(0..@@wave.length/2)
|
|
81
|
+
@@au.ds = @@wave.bytesize
|
|
82
|
+
@@au.write(@@io)
|
|
83
|
+
end
|
|
84
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: morse2au
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Matthew Fleeger
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-11-08 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Generate an .au file from a string
|
|
14
|
+
email: mfleeger5@gmail.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/au/Au.rb
|
|
20
|
+
- lib/morse/morse.rb
|
|
21
|
+
- lib/morse2au.rb
|
|
22
|
+
homepage: http://rubygems.org/gems/morse2au
|
|
23
|
+
licenses:
|
|
24
|
+
- BSD
|
|
25
|
+
metadata: {}
|
|
26
|
+
post_install_message:
|
|
27
|
+
rdoc_options: []
|
|
28
|
+
require_paths:
|
|
29
|
+
- lib
|
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
- - ">="
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '0'
|
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
requirements: []
|
|
41
|
+
rubyforge_project:
|
|
42
|
+
rubygems_version: 2.2.2
|
|
43
|
+
signing_key:
|
|
44
|
+
specification_version: 4
|
|
45
|
+
summary: Morse2Au
|
|
46
|
+
test_files: []
|