Started working on recorder. Using python, Tkinter, and Arecord
This commit is contained in:
parent
216d88e3ce
commit
9fd7115e6e
76
Pi-Recorder.py
Normal file
76
Pi-Recorder.py
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
from ntpath import altsep
|
||||||
|
import os
|
||||||
|
import tkinter as tk
|
||||||
|
from tkinter import *
|
||||||
|
|
||||||
|
def checkUSB():
|
||||||
|
stream = os.popen('lsusb | grep "Audio" | cut -d" " -f7')
|
||||||
|
output = stream.read()
|
||||||
|
if (output.find("PreSonus") != -1):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def checkRecordStatus():
|
||||||
|
stream = os.popen('screen -list | grep -c "Pi-ARecord" || true')
|
||||||
|
output = stream.read()
|
||||||
|
if (output.find("1")):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def record():
|
||||||
|
if checkRecordStatus():
|
||||||
|
os.system('screen -S record -X stuff "^C"')
|
||||||
|
btn_record_var.set('Start Recording')
|
||||||
|
else:
|
||||||
|
if (checkUSB()):
|
||||||
|
os.system('screen -S record -d -m arecord -D plughw:2,0 -f dat -vv /home/pi/test_input.wav')
|
||||||
|
btn_record_var.set('Stop Recording')
|
||||||
|
else:
|
||||||
|
btn_record_var.set('PreSonus N/A')
|
||||||
|
|
||||||
|
### tkinter variables
|
||||||
|
run_tk = True
|
||||||
|
light_mode = True
|
||||||
|
|
||||||
|
### tkinter theme
|
||||||
|
btn_light_color = '#BA09C6'
|
||||||
|
btn_dark_color = '#3C0340'
|
||||||
|
bg_light_color = '#F171DA'
|
||||||
|
bg_dark_color = '#8a3f7c'
|
||||||
|
text_light_color = '#000000'
|
||||||
|
text_dark_color = '#adadad'
|
||||||
|
|
||||||
|
### tkinter functions
|
||||||
|
def onExit():
|
||||||
|
global run_tk
|
||||||
|
if checkRecordStatus():
|
||||||
|
record()
|
||||||
|
run_tk = False
|
||||||
|
main_window.destroy()
|
||||||
|
exit()
|
||||||
|
|
||||||
|
def btnRecord():
|
||||||
|
record()
|
||||||
|
|
||||||
|
### tkinter main window setup
|
||||||
|
main_window = Tk()
|
||||||
|
main_window.attributes("-fullscreen", False)
|
||||||
|
main_window.protocol("WM_DELETE_WINDOW", onExit)
|
||||||
|
main_window.configure(background=bg_light_color)
|
||||||
|
main_window.title("Momo\'s Awesome Recorder")
|
||||||
|
main_window.columnconfigure(0, weight=1)
|
||||||
|
main_window.columnconfigure(1, weight=1)
|
||||||
|
main_window.columnconfigure(2, weight=1)
|
||||||
|
### tkinter record button
|
||||||
|
btn_record_var = tk.StringVar()
|
||||||
|
btn_record_var.set('Start Recording')
|
||||||
|
btn_record = Button(main_window, textvariable=btn_record_var, bg=btn_light_color, command=btnRecord)
|
||||||
|
btn_record.grid(column=0, row=0, sticky='NSEW', padx=5, pady=5)
|
||||||
|
|
||||||
|
while run_tk:
|
||||||
|
main_window.update_idletasks()
|
||||||
|
main_window.update()
|
Loading…
Reference in New Issue
Block a user