Như đã đề cập trong một nhận xét, tôi không thể để các metronome được đề cập (hiện có cho Linux / Ubuntu) hoạt động vào ngày 16.04, ít nhất là không nằm ngoài khả năng này. Tôi đã không dành nhiều thời gian để làm cho nó hoạt động , vì thực tế tất cả chúng đều mang lại ấn tượng bị bỏ rơi.
Đã đến lúc viết một ...
Câu trả lời này ( công việc đang tiến hành ) cuối cùng sẽ dẫn đến một máy đếm nhịp, bao gồm GUI. Một thời điểm tốt để đề cập đến các tính năng có thể bạn muốn.
1. Máy đếm nhịp CLI
Tạo một máy đếm nhịp đơn giản hóa ra lại đơn giản đến kinh ngạc:
#!/usr/bin/env python3
import subprocess
import sys
import time
bpm = int(sys.argv[1])
pauze = 60/bpm
while True:
time.sleep(pauze)
subprocess.Popen(["ogg123", "/usr/share/sounds/ubuntu/stereo/bell.ogg"])
Cách sử dụng
Máy nhịp cần các công cụ vorbis, để phát âm thanh
sudo apt-get install vorbis-tools
- Sao chép tập lệnh ở trên vào một tệp trống, lưu nó dưới dạng metronome.py
Chạy nó với bpm làm đối số:
python3 /path/to/metronome.py <bpm>
ví dụ:
python3 /path/to/metronome.py 100
Để chạy nó với 100 nhịp mỗi phút
Ghi chú
Đối với âm thanh, tôi đã sử dụng tệp /usr/share/sounds/ubuntu/stereo/bell.ogg
, phải có trên hệ thống của bạn theo mặc định (được kiểm tra 14.04 / 16.04). Tuy nhiên, bạn có thể sử dụng bất kỳ .ogg
mẫu ( ) nào bạn thích. Trong phiên bản cuối cùng, Một số tùy chọn (âm thanh) sẽ có sẵn.
2. Phiên bản GUI đơn giản gây sốc
Bước tiếp theo, một phiên bản rất cơ bản, phiên bản cuối cùng không có trình cài đặt:
Kịch bản
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import sys
import subprocess
import time
from threading import Thread
import os
path = os.path.dirname(os.path.realpath(__file__))
class MetroWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Shockingly simple Metronome")
self.speed = 70
self.run = False
# maingrid
maingrid = Gtk.Grid()
maingrid.set_column_homogeneous(True)
maingrid.set_row_homogeneous(False)
maingrid.set_border_width(30)
self.add(maingrid)
# icon
image = Gtk.Image(xalign=0)
image.set_from_file(os.path.join(path, "icon.png"))
maingrid.attach(image, 0, 0, 1, 1)
# vertical slider, initial value, min, max, step, page, psize
self.v_scale = Gtk.Scale(
orientation=Gtk.Orientation.VERTICAL,
adjustment=Gtk.Adjustment.new(self.speed, 10, 240, 1, 0, 0)
)
self.v_scale.set_vexpand(True)
self.v_scale.set_digits(0)
self.v_scale.connect("value-changed", self.scale_moved)
maingrid.attach(self.v_scale, 1, 0, 2, 1)
self.togglebutton = Gtk.Button("_Run", use_underline=True)
self.togglebutton.connect("clicked", self.time_out)
self.togglebutton.set_size_request(70,20)
maingrid.attach(self.togglebutton, 3, 3, 1, 1)
# start the thread
self.update = Thread(target=self.run_metro, args=[])
self.update.setDaemon(True)
self.update.start()
def scale_moved(self, event):
self.speed = int(self.v_scale.get_value())
def time_out(self, *args):
if self.run == True:
self.run = False
self.togglebutton.set_label("Run")
else:
self.run = True
self.togglebutton.set_label("Pauze")
def pauze(self):
return 60/self.speed
def run_metro(self):
soundfile = "/usr/share/sounds/ubuntu/stereo/bell.ogg"
while True:
if self.run == True:
subprocess.Popen([
"ogg123", soundfile
])
time.sleep(self.pauze())
def run_gui():
window = MetroWindow()
window.connect("delete-event", Gtk.main_quit)
window.set_resizable(False)
window.show_all()
Gtk.main()
run_gui()
Bức hình
Cách sử dụng
Giống như phiên bản cli, cái này cần vorbis-tools
:
sudo apt-get install vorbis-tools
Sao chép tập lệnh vào một tập tin trống, lưu nó dưới dạng metro.py
- Nhấp chuột phải vào hình trên, lưu nó trong một và cùng thư mục với tập lệnh (chính xác) là :
icon.png
.
Đơn giản chỉ cần chạy metronome bằng lệnh:
python3 /path/to/metro.py
3. PPA cho Metronome màu da cam
Thế là xong!
Máy đếm nhịp đã sẵn sàng để cài đặt.
Orange Metronome đi kèm với một tập hợp các âm thanh khác nhau để lựa chọn và các nhịp có thể được nhóm lại. Tất cả các thay đổi được áp dụng ngay lập tức trên máy đếm nhịp đang chạy:
Để cài đặt:
sudo apt-add-repository ppa:vlijm/orangemetronome
sudo apt-get update
sudo apt-get install orangemetronome
Công việc phải làm
Hiện tại, máy đếm nhịp đi kèm với bốn âm thanh khác nhau để lựa chọn. Có thể một vài cái sẽ được thêm vào trong vài ngày tới, một vài trong số chúng sẽ được thay thế / cập nhật
Về lâu dài
Về lâu dài, tôi nghĩ đến việc thêm tùy chọn cho các cấu trúc phức tạp (tùy chỉnh) như 3 + 3 + 2, 2 + 2 + 2 + 3, v.v., mà tôi luôn bỏ lỡ trong các biểu thức hiện có.
Cuối cùng
Phiên bản mới nhất (hiện tại) 0.5.3
thêm một số âm thanh, nhưng quan trọng hơn là tùy chọn để chạy các nhịp không đều (hỗn hợp). Trong phiên bản này, chúng được mã hóa cứng. Sẽ được tùy chỉnh từ phiên bản> 1.