Moved independent files to separate markup folder
This commit is contained in:
91
markup/bells.py
Executable file
91
markup/bells.py
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from subprocess import Popen
|
||||
|
||||
from pydub import AudioSegment
|
||||
|
||||
bell1path = "res/wav/bellhit1.wav"
|
||||
bell2path = "res/wav/bellhit2.wav"
|
||||
bell3path = "res/wav/bellhit3.wav"
|
||||
bell4path = "res/wav/bellhit4.wav"
|
||||
bell5path = bell4path
|
||||
|
||||
g = AudioSegment.from_file(bell1path)
|
||||
e = AudioSegment.from_file(bell2path)
|
||||
f = AudioSegment.from_file(bell3path)
|
||||
b = AudioSegment.from_file(bell4path)
|
||||
e3 = AudioSegment.from_file(bell5path)
|
||||
|
||||
try:
|
||||
horn = AudioSegment.from_file("/home/pi/sound/traphorn.wav")
|
||||
except FileNotFoundError:
|
||||
horn = AudioSegment.empty()
|
||||
|
||||
phrase1 = [(g, .25), (f, .25), (e, .25), (b, .50)]
|
||||
phrase2 = [(e, .25), (g, .25), (f, .25), (b, .50)]
|
||||
phrase3 = [(e, .25), (f, .25), (g, .25), (e, .50)]
|
||||
phrase4 = [(g, .25), (e, .25), (f, .25), (b, .50)]
|
||||
phrase5 = [(b, .25), (f, .25), (g, .25), (e, .50)]
|
||||
rest = [(AudioSegment.empty(), .50)]
|
||||
strike = [(e3, .75)]
|
||||
trap_horn = [(horn, 0)]
|
||||
|
||||
whole_time = 3000
|
||||
|
||||
|
||||
def chime_length(chime):
|
||||
return sum(c[1] for c in chime) * whole_time + len(chime[-1][0])
|
||||
|
||||
|
||||
def play(audio):
|
||||
audio.export('/tmp/clock_chime.wav', 'wav')
|
||||
Popen(['aplay', '/tmp/clock_chime.wav', '-q'])
|
||||
|
||||
|
||||
def play_phrase(phrase):
|
||||
audio = AudioSegment.silent(chime_length(phrase))
|
||||
time = 0
|
||||
|
||||
for a, t in phrase:
|
||||
audio = audio.overlay(a, int(time))
|
||||
time += t * whole_time
|
||||
|
||||
play(audio)
|
||||
|
||||
|
||||
last_chime = None
|
||||
|
||||
|
||||
def play_chime(hour, minute):
|
||||
global last_chime
|
||||
this_chime = hour, minute
|
||||
if last_chime == this_chime:
|
||||
return
|
||||
last_chime = this_chime
|
||||
|
||||
chime = []
|
||||
|
||||
if hour == 16 and minute == 20:
|
||||
chime = trap_horn
|
||||
|
||||
if minute == 15:
|
||||
chime = phrase1
|
||||
if minute == 30:
|
||||
chime = phrase2 + phrase3
|
||||
if minute == 45:
|
||||
chime = phrase4 + phrase5 + phrase1
|
||||
if minute == 0:
|
||||
if hour > 12:
|
||||
hour -= 12
|
||||
if hour == 0:
|
||||
hour = 12
|
||||
chime = phrase2 + phrase3 + phrase4 + phrase5 + rest + strike * hour
|
||||
|
||||
if not chime:
|
||||
return
|
||||
|
||||
play_phrase(chime)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
play_chime(2, 00)
|
||||
Reference in New Issue
Block a user