Де можна знайти метроном для музичної практики?


12

Це якимось наслідком цього питання:

Як я можу виявити пісню BPM (удари в хвилину)?

Але тепер замість того, щоб виявити їх у піснях, я хочу їх генерувати.


Я шукаю програму, яка видаватиме звук (щось коротке, як звуковий сигнал), що може регулюватися кількість разів на хвилину.

Якщо я скажу 20bpm, він видаватиме цей звук кожні 3 секунди. (60/20)
Якщо 60 об / хв, кожні сек.
Якщо 120 об / хв кожні півсекунди.

Причиною цього є те, що я вчуся грати на барабанах, і bpm виглядає дуже важливим. Я стежу за цим відео на youtube .

оновлення

Здається, вони називаються metronomesі навіть Google отримав. Класні речі.
https://www.google.com/search?q=metronomes
Дякую Ніку.


1
Audacity може це зробити (подивіться у меню "Створити"), хоча, ймовірно, є більш прості програми. Інтернет метрономів є вдосталь, якщо ви плануєте доступ до Інтернету під час своєї практики.
Нік Вайнберг

2
gtick , klick , gtklick і kmetronome можуть бути іншими параметрами, і всі вони доступні у сховищах програм Ubuntu.
Нік Вайнберг

Метрономи, що працюють під Linux, сильно застаріли, здається. Не працює, принаймні, не з коробки. Час написати одне :) @NickWeinberg Я спробував їх усіх, не працюючи (вже більше), здається.
Яків Влійм

Привіт @JacobVlijm Отримав сценарій пітона, який може це зробити? Я справді повинен навчитися пітону ...
Парто

Я незабаром дам йому постріл!
Яків Влійм

Відповіді:


20

Як було сказано в коментарі, я не міг змусити згадані метрономи (існуючі для Linux / Ubuntu) працювати 16.04, принаймні, не з коробки. Я не витрачав багато часу на те, щоб змусити його працювати , оскільки практично всі вони створюють враження, що їх покинули.

Час написати одне ...


Ця відповідь ( незавершена робота ) повинна врешті-решт призвести до метроному, включаючи GUI. Вдалий час згадати можливі функції, які ви хочете.

1. Метроном CLI

Створення прямого метронома виявляється приголомшливо простим:

#!/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"])

Як користуватись

  1. Метроному потрібні інструменти vorbis для відтворення звуку

    sudo apt-get install vorbis-tools
    
  2. Скопіюйте сценарій вище в порожній файл, збережіть його як metronome.py
  3. Запустіть його аргументом bpm як аргумент:

    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. Шокуюче проста версія GUI

Наступним кроком є ​​дуже основна версія, остання версія без інсталятора:

введіть тут опис зображення

Сценарій

#!/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()

Зображення

введіть тут опис зображення

Як користуватись

  1. Як і версія cli, і цій потрібна vorbis-tools:

    sudo apt-get install vorbis-tools
    
  2. Скопіюйте скрипт у порожній файл, збережіть його як metro.py

  3. Клацніть правою кнопкою миші на зображення вище, зберегти його в одному і тому ж каталозі, що і скрипт (точно) , як: icon.png.
  4. Просто запустіть метроном командою:

    python3 /path/to/metro.py
    

3. PPA для помаранчевого метронома

Це робиться!

Метроном готовий до встановлення.
Помаранчевий Метроном поставляється з набором різних звуків на вибір, і удари можна групувати. Всі зміни застосовуються негайно до запущеного метроному:

введіть тут опис зображення

введіть тут опис зображення

введіть тут опис зображення

Щоб встановити:

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.

введіть тут опис зображення


@Parto cool, я продовжуватиму це. Яка версія Ubuntu btw?
Яків Влійм

Класно, буде тут. Версія Ubuntu: 14.04.
Парто

@Parto ... і перша версія gui ...
Яків Влійм

1
Я дам вам +15 за правильну відповідь, але +100 для Ніка, щоб отримати його на понад 2 Кб
Парто

1
@Parto абсолютно! Може знадобитися день чи два, я хотів би побудувати кілька варіантів.
Яків Влійм

9

Це здається, що ви шукаєте метронома!

Програмне забезпечення для редагування аудіо Audacity може генерувати стабільний, метрономічний такт або тон (дивіться у меню "Створити"), хоча є більш прості програми, які я перелічу нижче. Audacity знаходиться у сховищах програмного забезпечення Ubuntu і може бути встановлений через Центр програмного забезпечення або ввівши sudo apt install audacityвікно терміналу.

Інтернет метрономів є вдосталь, якщо ви плануєте доступ до Інтернету під час своєї практики.

Інше програмне забезпечення метрономів, наявне в сховищах програмного забезпечення Ubuntu, включає gtick , klick , gtklick і kmetronome , хоча я жодного з них не пробував сам.


8

Простий Метроном Баша

Використання

metronome.sh [beats per minute] [beats per measure]

Інформація

  • Він відтворюється зі швидкістю 120 в / х за 4 за замовчуванням
  • Більше інформації та набагато складніший сценарій доступний у моїй репортажі GitHub: metronome.sh . Нижче наведений сценарій підmetronome-core.sh

Наприклад

metronome.sh
metronome.sh 75     # 75 BPM
metronome.sh 120 3  # 120 BPM, 3 beats per measure

Сценарій

#!/bin/bash
# metronome.sh - Is a metronome.
# Usage: metronome.sh [beats per minute] [beats per measure]

# Set BPM and beats per measure.
bpm="${1-120}"
msr="${2-4}"

# Get seconds per beat using bc.
# "-0.004" accounts for approximate execution time.
beat_time="$(bc -l <<< "scale=5; 60/$bpm-0.004")"

echo "Metronome playing $bpm BPM, $msr beats per measure"
echo -n "Press Ctrl+C to quit."

while true; do
    for ((i=1; i<=$msr; i++)); do
        if [[ $i -eq 1 ]]; then
            # Accentuated beat.
            canberra-gtk-play --id='dialog-information' &
        else
            # Unaccentuated beat
            canberra-gtk-play --id='button-toggle-on' &
        fi
        # Wait before next beat. Will exit if beat time is invalid.
        sleep "$beat_time" || exit
    done
done

Дивовижний теж. Спробував це.
Парто

1

Я граю на гітарі і використовую gtick , вона працює для мене досить добре, я можу налаштувати частоту ударів в хвилину, обсяг і навіть підписи часу, 1 / 4,2 / 4,3 / 4 тощо. Ви можете встановити його з командного рядка, використовуючи:

sudo apt-get install gtick

ось мій gtick : i.imgsafe.org/f2dc6c70f2.png


Вже згадується Нік. Також не працює в моїй системі (Ubuntu Unity 16.04).
Яків Влійм

Я знаю, що його згадував Нік, але я використовував gtick сам, він не має, як він згадував. Я використовую Ubuntu 16.04 LTS, і він працює на мене, чи не вистачає вам якоїсь аудіозалежності?
Абель Том

Дивіться це: dl.dropboxusercontent.com/u/1155139/error.png відбувається в незалежності від налаштувань тощо на різних системах. Прочитайте щось про це, чи було воно раніше з хитрощами, не пам’ятайте, що це було. Не хочу згадувати. Він повинен просто працювати. Якщо щось подібне не виправлено через роки, я вважаю за краще писати власні речі.
Яків Влійм

мені шкода, що це не працювало для вас, ось мій gtick : i.imgsafe.org/f2dc6c70f2.png
Abel Tom,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.