-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
41 lines (39 loc) · 774 Bytes
/
Copy pathindex.js
File metadata and controls
41 lines (39 loc) · 774 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var registerStdin = require('./registerListener').registerStdin;
var toChar = require('./utils').toChar;
var toOrd = require('./utils').toOrd;
var wavePlayer = require('./wavePlayer');
var play = wavePlayer.play;
var stop = wavePlayer.stop;
var MAPPED_KEYS = {
'q': 'c',
'2': 'c#',
'w': 'd',
'3': 'd#',
'e': 'e',
'r': 'f',
'5': 'f#',
't': 'g',
'6': 'g#',
'y': 'a',
'7': 'a#',
'u': 'b',
'i': 'c',
'9': 'c#',
'o': 'd',
'0': 'd#',
'p': 'e',
};
function main() {
var subject = registerStdin();
var subscription = subject.subscribe(function(ord) {
if (ord === 3) {
// Ctrl+C
process.exit();
}
if (MAPPED_KEYS.hasOwnProperty(toChar(ord))) {
play(MAPPED_KEYS[toChar(ord)]);
}
console.log(MAPPED_KEYS[toChar(ord)]);
});
}
main();