जैसा कि एक टिप्पणी में उल्लेख किया गया है, मैं 16.04 पर काम कर रहे मेट्रोनॉम (लिनक्स / उबंटू के लिए मौजूदा) को कम से कम बॉक्स से बाहर नहीं निकाल सकता। मैंने इसे काम करने में ज्यादा समय नहीं दिया , क्योंकि व्यावहारिक रूप से सभी इसे छोड़ने का आभास देते हैं।
एक लिखने का समय ...
इस उत्तर ( प्रगति में काम ) को अंततः GUI सहित एक मेट्रोनोम तक ले जाना चाहिए। संभव सुविधाओं का उल्लेख करने के लिए एक अच्छा समय आप चाहते हैं।
1. सीएलआई मेट्रोनोम
एक सीधा मेट्रोनोम बनाना चौंकाने वाला सरल होता है:
#!/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"])
कैसे इस्तेमाल करे
ध्वनि बजाने के लिए मेट्रोनोम को वोरबिस-टूल्स की आवश्यकता होती है
sudo apt-get install vorbis-tools
- एक खाली फ़ाइल में ऊपर स्क्रिप्ट कॉपी करें, इसे metronome.py के रूप में सहेजें
इसे तर्क के रूप में बीपीएम के साथ चलाएं:
python3 /path/to/metronome.py <bpm>
उदाहरण के लिए:
python3 /path/to/metronome.py 100
इसे प्रति मिनट 100 बीट्स के साथ चलाने के लिए
ध्यान दें
ध्वनि के लिए, मैंने फ़ाइल का उपयोग किया /usr/share/sounds/ubuntu/stereo/bell.ogg
, जो कि डिफ़ॉल्ट रूप से आपके सिस्टम पर होना चाहिए (परीक्षण 14.04 / 16.04)। हालाँकि आप अपनी पसंद का कोई भी ( .ogg
) नमूना इस्तेमाल कर सकते हैं। अंतिम संस्करण में, कई विकल्प (ध्वनियाँ) उपलब्ध होंगे।
2. चौंकाने वाला साधारण जीयूआई संस्करण
अगले चरण के रूप में, एक बहुत ही मूल संस्करण, एक इंस्टॉलर के बिना अंतिम संस्करण:
लिपी
#!/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()
छवि
कैसे इस्तेमाल करे
Cli संस्करण की तरह, यह एक की जरूरत है vorbis-tools
:
sudo apt-get install vorbis-tools
स्क्रिप्ट को एक खाली फ़ाइल में कॉपी करें, इसे इस रूप में सहेजें metro.py
- ऊपर की छवि पर राइट क्लिक करें, इसे सहेजें और स्क्रिप्ट के रूप में एक ही निर्देशिका (बिल्कुल) के रूप में
icon.png
:।
बस कमांड द्वारा मेट्रोनोम चलाएं:
python3 /path/to/metro.py
3. ऑरेंज मेट्रोनोम के लिए पीपीए
हो गया है!
मेट्रोनोम स्थापना के लिए तैयार है।
ऑरेंज मेट्रोनोम से चुनने के लिए विभिन्न ध्वनियों का एक सेट आता है, और बीट्स को समूहीकृत किया जा सकता है। सभी परिवर्तन तुरंत चल रहे मेट्रो पर लागू होते हैं:
स्थापित करने के लिए:
sudo apt-add-repository ppa:vlijm/orangemetronome
sudo apt-get update
sudo apt-get install orangemetronome
करने का काम
वर्तमान में, मेट्रोनोम चुनने के लिए चार अलग-अलग ध्वनियों के साथ आता है। संभवतः अगले कुछ दिनों में कुछ जोड़े जाएंगे, उनमें से कुछ को बदल दिया जाएगा / अपडेट कर दिया जाएगा
लंबी अवधि के
लिए, अधिक अवधि के लिए, मैं 3 (3) + 2, 2 + 2 + 2 + 3 आदि जैसी जटिल संरचनाओं के लिए विकल्प (कस्टम) जोड़ने की सोच रहा हूं, जो कि मैं हमेशा मौजूदा मेट्रोनोम में चूक गया था।
आखिरकार
नवीनतम (वर्तमान) संस्करण 0.5.3
कई ध्वनियों को जोड़ता है, लेकिन अधिक महत्वपूर्ण बात, अनियमित (समग्र) बीट्स को चलाने का विकल्प। इस संस्करण में, वे कठिन कोडित हैं। संस्करण> 1 से अनुकूलन योग्य होगा।