Seperti disebutkan dalam komentar, saya tidak bisa mendapatkan metronom yang disebutkan (ada untuk Linux / Ubuntu) bekerja pada 16,04, setidaknya tidak di luar kotak. Saya tidak menghabiskan banyak waktu untuk membuatnya bekerja , karena praktis semuanya memberi kesan ditinggalkan.
Saatnya menulis satu ...
Jawaban ini ( sedang berlangsung ) pada akhirnya harus mengarah ke metronom, termasuk GUI. Saat yang tepat untuk menyebutkan kemungkinan fitur yang Anda inginkan.
1. Metronom CLI
Membuat metronom langsung ternyata sangat sederhana:
#!/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"])
Cara Penggunaan
Metronom membutuhkan vorbis-tools, untuk memainkan suara
sudo apt-get install vorbis-tools
- Salin skrip di atas ke dalam file kosong, simpan sebagai metronome.py
Jalankan dengan bpm sebagai argumen:
python3 /path/to/metronome.py <bpm>
misalnya:
python3 /path/to/metronome.py 100
Untuk menjalankannya dengan 100 ketukan per menit
Catatan
Untuk suara, saya menggunakan file /usr/share/sounds/ubuntu/stereo/bell.ogg
, yang seharusnya ada di sistem Anda secara default (diuji 14.04 / 16.04). Namun Anda dapat menggunakan ( .ogg
) sampel yang Anda suka. Dalam versi final, Sejumlah opsi (suara) akan tersedia.
2. Versi GUI yang mengejutkan sederhana
Sebagai langkah selanjutnya, versi yang sangat mendasar, versi terakhir tanpa penginstal:
Naskah
#!/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()
Foto
Cara Penggunaan
Seperti versi cli, yang ini membutuhkan vorbis-tools
:
sudo apt-get install vorbis-tools
Salin skrip ke file kosong, simpan sebagai metro.py
- Klik kanan pada gambar di atas, simpan Dalam satu dan direktori yang sama seperti naskah (persis) seperti:
icon.png
.
Cukup jalankan metronom dengan perintah:
python3 /path/to/metro.py
3. PPA untuk Metronom Oranye
Sudah selesai!
Metronom siap dipasang.
Orange Metronome hadir dengan serangkaian suara berbeda untuk dipilih, dan ketukan dapat dikelompokkan. Semua perubahan diterapkan segera pada metronom yang sedang berjalan:
Untuk memasang:
sudo apt-add-repository ppa:vlijm/orangemetronome
sudo apt-get update
sudo apt-get install orangemetronome
Pekerjaan yang harus dilakukan
Saat ini, metronom hadir dengan empat suara berbeda untuk dipilih. Mungkin beberapa akan ditambahkan dalam beberapa hari ke depan, beberapa dari mereka akan diganti / diperbarui
Pada jangka panjang
Untuk jangka panjang, saya berpikir untuk menambahkan opsi untuk struktur kompleks (khusus) seperti 3 + 3 + 2, 2 + 2 + 2 + 3 dll, yang selalu saya lewatkan dalam metronom yang ada.
Akhirnya
Versi terbaru (saat ini) 0.5.3
menambahkan sejumlah suara, tetapi yang lebih penting, opsi untuk menjalankan irama (gabungan) yang tidak teratur. Dalam versi ini, mereka dikodekan dengan keras. Akan dikustomisasi dari versi> 1.