diff options
author | Anthony Wang | 2023-03-16 22:59:41 -0400 |
---|---|---|
committer | Anthony Wang | 2023-03-16 22:59:41 -0400 |
commit | 0da46c8a33e7a9b61b564cce5c4c4526fe3d84dc (patch) | |
tree | 1c3948cdb3a6cd6119f2ede76279cde26e464eba /keyboard.py | |
parent | 46911993234b7c9cc07546f56843b35621b7f811 (diff) |
Clean up code and rename to yue
Diffstat (limited to 'keyboard.py')
-rw-r--r-- | keyboard.py | 39 |
1 files changed, 7 insertions, 32 deletions
diff --git a/keyboard.py b/keyboard.py index 301c950..73892ea 100644 --- a/keyboard.py +++ b/keyboard.py @@ -1,51 +1,26 @@ import math -import sounddevice as sd import os import sys +import sounddevice as sd +import yue # Number of times to sample each second bitrate = 44100 -def freq(octave, step): - """ - Returns the frequency of a note - """ - return 55 * 2 ** (octave + step / 12 - 1) - - -def tone(f, t): - """ - Returns the intensity of a tone of frequency f sampled at time t - """ - # https://dsp.stackexchange.com/questions/46598/mathematical-equation-for-the-sound-wave-that-a-piano-makes - # https://youtu.be/ogFAHvYatWs?t=254 - # return int(2**13*(1+square(t, 440*2**(math.floor(5*t)/12)))) - # Y = sum([math.sin(2 * i * math.pi * t * f) * math.exp(-0.0004 * 2 * math.pi * t * f) / 2**i for i in range(1, 4)]) - # Y += Y * Y * Y - # Y *= 1 + 16 * t * math.exp(-6 * t) - w = 2 * math.pi * f - Y = 0.6 * math.sin(w * t) * math.exp(-0.001 * w * t) - Y += 0.2 * math.sin(2 * w * t) * math.exp(-0.001 * w * t) - Y += 0.05 * math.sin(3 * w * t) * math.exp(-0.001 * w * t) - Y += Y * Y * Y - Y *= 1 + 16 * t * math.exp(-6 * t) - return Y - - note = [] for i in range(0, 24): - note.append([tone(freq(3, i), j / bitrate) / 4 for j in range(0, 3 * bitrate)]) + note.append([yue.tone(yue.freq(3, i), j / bitrate) / 4 for j in range(0, 3 * bitrate)]) sd.default.samplerate = bitrate -print('READY') +print("READY") while True: - os.system('stty raw -echo') + os.system("stty raw -echo") c = sys.stdin.read(1) - os.system('stty -raw echo') + os.system("stty -raw echo") - x = '`1234567890-~!@#$%^&*()_'.index(c) + x = "`1234567890-~!@#$%^&*()_".index(c) print(x) sd.play(note[x]) |