Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Скриптик для настройки гитары

Намедни я порвал на гитаре первую струну, а т.к. струны уже черт-те какой давности и давно проржавели, я решил полностью их заменить.
Ну, а пока сидел на кухне рядом с ноутбуком и натягивал струны, подумал, что неплохо было бы сделать простой скриптик для настройки (а то что это я — все "на слух", да "на слух")… В общем, скриптик под катом.
P.S. Оказалось, что "слух" у меня более-менее: настраиваю примерно на тон ниже, чем надо (а я всю жизнь именно так гитары и настраиваю, т.к. на акустике тон-в-тон настроить нельзя — вокальный диапазон не позволяет, а на электре проще бэнды на пару тонов делать).


#!/bin/sh
# this script has been written by Eddy
#
#		guitar_notes играет при помощи sox синусоиду с основной частотой, соответствующей ноте $1
#
# Создан 01-го Июнь 2013 года в 10:45
#

if [ $# = 0 ]; then
	echo -e "$0 string [halftone]\n\t plays sine wave for string # if  present tone will be step down by  (1 or 2)"
	exit -1
fi

#Частота, Гц		Суб-контp-	Контp-	Большая	Малая	1.00	2.00	3.00	4.00	5.00
#Hота			октава		октава	октава	октава	октава	октава	октава	октава	октава
#До		C			32.70	65.41	130.82	261.63	523.25	1046.50	2093.00	4186.00
#До-диез	C#			34.65	69.30	138.59	277.18	554.36	1108.70	2217.40	4434.80
#Ре		D			36.95	73.91	147.83	293.66	587.32	1174.60	2349.20	4698.40
#Ре-диез	D#			38.88	77.78	155.56	311.13	622.26	1244.50	2489.00	4978.00
#Ми		E	20.61		41.21	82.41	164.81	329.63	659.26	1318.50	2637.00	5274.00
#Фа		F	21.82		43.65	87.31	174.62	349.23	698.46	1396.90	2793.80
#Фа-диез	F#	23.12		46.25	92.50	185.00	369.99	739.98	1480.00	2960.00
#Соль		G	24.50		49.00	98.00	196.00	392.00	784.00	1568.00	3136.00
#Соль-диез	G#	25.95		51.90	103.80	207.00	415.30	830.60	1661.20	3332.40
#Ля		A	27.50		55.00	110.00	220.00	440.00	880.00	1720.00	3440.00
#Ля-диез	A#	29.13		58.26	116.54	233.08	466.16	932.32	1864.60	3729.20
#Си		B	30.87		61.74	123.48	246.96	493.88	987.75	1975.50	3951.00

# частоты для струн, струна No0 - первая
Freqs0=( 329.63 246.96 196.00 147.83 110.00 82.41 )
Freqs1=( 311.13 233.08 185.00 138.59 103.80 77.78 )
Freqs2=( 293.66 220.00 174.62 130.82  98.00 73.91 )

Freqs=( ${Freqs0[*]} )
if [ $# = 2 ]; then
	[ "$2" = "1" ] && Freqs=( ${Freqs1[*]} )
	[ "$2" = "2" ] && Freqs=( ${Freqs2[*]} )
fi

echo "string $1, freq: ${Freqs[$(($1-1))]}"
play -n synth sine ${Freqs[$(($1-1))]}


По умолчанию скрипт вызывается с одним параметром — номером ноты. Для настройки на полтона ниже указываем единичку во втором параметре, настройка на тон ниже — двойка во втором параметре.

P.S. Q — A
Q: Почему я не пользуюсь каким-либо туксгитаром или аудасиусом?
A: Потому что sox есть на всех компьютерах, а туксгитар или аудасиус — нет. А еще в туксгитаре неудобно настройку делать (хоть там звук и синтезируется, т.е. ближе к реальному). Аудасиус совсем для нее не предназначен. Этот вариант — самый удобный.

Q: Почему я не сделал простой Фурье-анализатор сигнала с гитары для упрощения настройки?
A: Потому что: 1) лень писать, 2) лень паять переходной шнурок от комбика к ноутбуку.
Tags: bash, всячина, гитара
Subscribe

  • Дочка сейчас выдала: а зачем вообще людям "домашние" телескопы, если с компьютера можно намного удобней с телескопа данные получать? Да уж, вся в…

  • Рамп шаговика

    Сижу уже второй вечер, обдумываю алгоритм. Сначала хотел было без делений попробовать. Но не получается нормального трапецеидального рампа. В итоге…

  • О, in100грамм повеселел!

    Теперь не нужно, чтобы туда фотографию воткнуть, жамкать F12, переходить в режим "отображение со смартфона" и перезагружать страницу! Они таки…

promo eddy_em september 3, 12:13 8
Buy for 10 tokens
Уже больше полугода занимаюсь разработкой, вот, наконец-то в мастерских взялись за меня и начали выдавать первые детали. Сегодня сделал тестовую сборку (как обычно, местами пришлось "доработать напильником"): Пока прибор без названия (да и как-то не лезет в голову ничего, у меня нет…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments