음악 연습을위한 메트로놈을 어디에서 찾을 수 있습니까?


12

이것은 어떻게 든이 질문에 대한 후속 조치입니다.

노래의 BPM (분당 비트 수)을 어떻게 감지합니까?

그러나 이제는 노래에서 감지하는 대신 생성하고 싶습니다.


분당 구성 가능한 횟수만큼 소리 (삐 소리와 같은 짧은 소리)를 출력하는 응용 프로그램을 찾고 있습니다.

20bpm이라고하면 3 초마다 그 소리가 출력됩니다. (60/20)
60bpm이면 매 초
0.5 초마다 120bpm 인 경우

그 이유는 드럼 세트를 연주하는 방법을 배우고 bpm이 정말 중요해 보이기 때문입니다. YouTube 에서이 동영상을 팔로우하고 있습니다.

최신 정보

그들은 전화를 받았으며 metronomes심지어 구글조차 하나를 얻었다. 멋진 것.
https://www.google.com/search?q=metronomes
감사합니다 Nick.


1
더 간단한 프로그램이 있지만 Audacity 가이를 수행 할 수 있습니다 ( "생성"메뉴 아래 참조). 연습 중에 인터넷에 접속할 계획이라면 온라인 메트로놈이 충분합니다.
Nick Weinberg

2
gtick , klick , gtklickkmetronome 은 다른 옵션 일 수 있으며 모두 Ubuntu 소프트웨어 리포지토리에서 사용할 수 있습니다.
Nick Weinberg

리눅스에서 실행되는 메트로놈은 상당히 오래된 것 같습니다. 상자 밖에서 작동하지 않습니다. 하나를 쓸 시간 :) @NickWeinberg 나는 (더 이상) 작동하지 않는 것처럼 모든 것을 시도했습니다.
Jacob Vlijm

안녕하세요 @JacobVlijm 이것을 할 수있는 파이썬 스크립트가 있습니까? 나는 정말로 파이썬을 배워야한다 ...
Parto

나는 그것을 곧 기회를 줄 것이다!
Jacob Vlijm

답변:


20

의견에서 언급했듯이 적어도 16.04에서 언급 한 메트로놈 (Linux / Ubuntu에 존재)을 얻을 수 없었습니다. 나는 그것이 실제로 작동하는 데 많은 시간을 소비하지 않았다. 사실상 그들 모두는 버려지는 인상을주기 때문이다.

하나 쓸 시간 ...


이 답변 ( 진행중인 작업 )은 결국 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-tools가 필요합니다.

    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

끝났습니다!

메트로놈을 설치할 준비가되었습니다.
Orange Metronome에는 선택할 수있는 다양한 사운드 세트가 있으며 비트를 그룹화 할 수 있습니다. 모든 변경 사항은 실행중인 메트로놈에 즉시 적용됩니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

설치하기 위해서:

sudo apt-add-repository ppa:vlijm/orangemetronome
sudo apt-get update
sudo apt-get install orangemetronome

해야할 일

  • 현재 메트로놈에는 선택할 수있는 네 가지 사운드가 있습니다. 아마도 몇 일 안에 몇 개가 추가 될 것이며, 일부는 교체 / 업데이트 될 것입니다

  • 장기에
    장기적를 들어, 나는 항상 기존의 메트로놈 놓친 + 2 3 + 3, 2 등 + 2 + 2 + 3처럼 (사용자 정의) 복잡한 구조에 대한 옵션을 추가 할 생각입니다.

드디어

최신 (현재) 버전 0.5.3은 여러 가지 소리를 추가하지만 더 중요한 것은 불규칙한 (복합) 비트를 실행하는 옵션입니다. 이 버전에서는 하드 코딩되어 있습니다. 버전> 1에서 사용자 정의 할 수 있습니다.

여기에 이미지 설명을 입력하십시오


@Parto cool, 계속 진행하겠습니다. 우분투 버전 btw는 무엇입니까?
Jacob Vlijm

멋지다. 우분투 버전 : 14.04.
Parto

@Parto ... 그리고 첫번째 GUI 버전 ...
Jacob Vlijm

1
정답은 +15, Nick에게는 +100을 주어 2K 이상의 담당자가됩니다.
Parto

1
@Parto는 절대적으로! 하루나 이틀 걸릴 수 있습니다, 나는 몇 가지 옵션을 구축하고 싶습니다.
Jacob Vlijm

9

메트로놈을 찾는 것처럼 들립니다!

오디오 편집 소프트웨어 인 Audacity 는 아래에 나열 할 간단한 프로그램이 있지만 꾸준한 메트로놈과 같은 비트 또는 톤 ( "생성"메뉴 아래 참조)을 생성 할 수 있습니다. Audacity는 Ubuntu 소프트웨어 리포지토리에 있으며 소프트웨어 센터를 통해 또는 sudo apt install audacity터미널 창 에 입력하여 설치할 수 있습니다 .

연습 중에 인터넷에 접속할 계획이라면 온라인 메트로놈이 풍부합니다.

Ubuntu 소프트웨어 리포지토리에서 사용할 수있는 다른 메트로놈 소프트웨어에는 gtick , klick , gtklickkmetronome이 포함 되어 있지만 직접 시도하지는 않았습니다.


8

간단한 배쉬 메트로놈

용법

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

정보

  • 기본적으로 4에서 120 bpm으로 재생됩니다.
  • 자세한 내용과 훨씬 더 정교한 스크립트는 내 GitHub repo : 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

굉장한 것도. 그것을 시도했다.
Parto

1

나는 기타를 연주하고 gtick을 사용 하며 , 그것은 나를 위해 잘 작동합니다. 분당 비트 수, 음량 및 박자표, 1 / 4,2 / 4,3 / 4 등을 조정할 수 있습니다. 다음을 사용하여 명령 행에서 설치할 수 있습니다.

sudo apt-get install gtick

여기 내 gtick : i.imgsafe.org/f2dc6c70f2.png


Nick이 이미 언급했습니다. 내 시스템에서도 작동하지 않습니다 (Ubuntu Unity 16.04).
Jacob Vlijm

나는 Nick이 언급 한 것을 알고 있지만, 나는 gtick을 직접 사용했지만 그는 언급하지 않았다. 나는 Ubuntu 16.04 LTS를 사용하며 나를 위해 작동합니다. 누락 된 오디오 종속성이 누락되어 있습니까?
Abel Tom 9

다음을 참조하십시오 : dl.dropboxusercontent.com/u/1155139/error.png 는 여러 시스템에서 설정 등에 관계없이 발생합니다. 그것에 대해 무언가를 읽고, 과거에 속임수로 실행했던 것이 무엇인지 기억하지 마십시오. 기억 하고 싶지 않아 간단하게 작동합니다. 몇 년이 지나도 이와 같은 것이 고쳐지지 않으면, 나는 내 물건을 쓰는 것을 선호합니다.
Jacob Vlijm

죄송합니다, 그것은 당신을 위해 작동하지 않습니다, 여기 내 gtick : i.imgsafe.org/f2dc6c70f2.png
Abel Tom

0

kmetronome을 사용해 보셨습니까? apt-get / synaptic을 사용할 수 있어야합니다.


Nick도 이미 언급했습니다.
Jacob Vlijm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.