音楽練習用のメトロノームはどこにありますか?


12

これはどういうわけかこの質問のフォローアップです:

曲のBPM(1分あたりのビート数)を検出するにはどうすればよいですか?

しかし、今では歌でそれらを検出する代わりに、それらを生成したいと思います。


サウンド(ビープ音のような短い音)を1分あたり設定可能な回数出力するアプリケーションを探しています。

20bpmと言うと、3秒ごとにその音が出力されます。(60/20)60bpmの
場合、毎秒
0.5秒ごとに120bpmの場合

これは、ドラムセットの演奏方法を学んでいるため、bpmが非常に重要だからです。私はyoutubeでこのビデオをフォローしています。

更新

彼らは呼ばれているようmetronomesで、グーグルでさえも手に入れた。クール。
https://www.google.com/search?q=metronomes
ありがとう、ニック。


1
Audacityはこれを行うことができます(「生成」メニューの下を見てください)が、おそらくもっと単純なプログラムがあります。練習中にインターネットにアクセスする予定がある場合は、オンラインメトロノームが豊富です。
ニックワインバーグ

2
gtickklickgtklick、およびkmetronomeは他のオプションである可能性があり、それらはすべてUbuntuソフトウェアリポジトリで利用できます。
ニックワインバーグ

Linuxで実行されているメトロノームは、かなり古くなっているようです。動作していない、少なくとも箱から出していない。1つ書く時間:) @NickWeinberg私はそれらをすべて試しましたが、動作していません(それ以上)ようです。
ジェイコブVlijm

@JacobVlijmさん、これを実行できるPythonスクリプトを手に入れましたか?私は本当にPythonを学ぶ必要があります...
Parto

すぐに試してみます!
ジェイコブ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

やらなければならないこと

  • 現在、メトロノームには4つの異なるサウンドが用意されています。おそらく数日のうちにいくつかが追加され、そのうちのいくつかは置き換え/更新されます

  • 長期的には
    長期のために、私は常に既存のメトロノームで逃した3 + 3 + 2、+ 3 2 + 2 + 2などのような(カスタム)複雑な構造のためのオプションを追加することを考えています。

最後に

最新(現在)のバージョンで0.5.3は、多くのサウンドが追加されますが、さらに重要なことは、不規則な(複合)ビートを実行するオプションです。このバージョンでは、ハードコーディングされています。バージョン> 1からカスタマイズ可能です。

ここに画像の説明を入力してください


@Partoクール、私はこれを続けます。Ubuntuのバージョンは何ですか?
ジェイコブVlijm

クール、ここになります。Ubuntuバージョン:14.04。
パート

@Parto ...と最初のGUIバージョン...
ヤコブVlijm

1
正解の場合は+15を、ニックの場合は+100を渡して、2Kの担当者を獲得します。
パート

1
@Parto絶対に!1〜2日かかる場合があります。いくつかのオプションを組み込みたいと思います。
ジェイコブVlijm

9

メトロノームを探しているようですね!

オーディオ編集ソフトウェアAudacityは、安定したメトロノームのようなビートまたはトーンを生成することができます(「生成」メニューをご覧ください)。AudacityはUbuntuソフトウェアリポジトリにあり、ソフトウェアセンターから、または次のように入力してインストールできます。sudo apt install audacityターミナルウィンドウにするます。

練習中にインターネットにアクセスする予定がある場合は、オンラインメトロノームが豊富です。

Ubuntuソフトウェアリポジトリで利用できる他のメトロノームソフトウェアには、gtickklickgtklick、およびkmetronomeがありますが、私はそれらのいずれも試していません。


8

Simple Bashメトロノーム

使用法

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

情報

  • デフォルトでは4で120 bpmで再生されます
  • 詳細とはるかに洗練されたスクリプトが、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分あたりのビート、音量、拍子記号、1 / 4、2 / 4、3 / 4などを調整できます。次を使用してコマンドラインからインストールできます。

sudo apt-get install gtick

heres my gtick:i.imgsafe.org/f2dc6c70f2.png


ニックはすでに言及しています。私のシステムでも動作しません(Ubuntu Unity 16.04)。
ジェイコブVlijm

Nickが言及していることは知っていますが、gtickを自分で使用しましたが、彼は言及していません。私はUbuntu 16.04 LTSを使用していますが、それは私のために機能しますが、いくつかの欠落しているオーディオの依存関係がありませんか?
アベルトム

これを参照してください:dl.dropboxusercontent.com/u/1155139/error.pngは、複数のシステムで設定などに関係なく発生します。それについて何かを読んで、過去にトリックで実行していた場合、それが何であったか覚えていない。しないでくださいしたい覚えておくこと。単に動作するはずです。このようなものが数年後に修正されない場合、私は自分のものを書くことを好む。
ジェイコブVlijm

イムそれはあなたのために動作しませんでした申し訳ありませんが、私の相続人gticki.imgsafe.org/f2dc6c70f2.png
アベルトム

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.