Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вычисление формулы с записью в файл.

Ответить
Настройки темы
[решено] Вычисление формулы с записью в файл.

Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Очень нужен скрипт решающий такую задачу.
Код: Выделить весь код
a * 17^(n/43), где a = 440,00 и n = {0,1,2,3,4,5,6,7,8...15,16,17}
И чтоб диапазон значений которые надо получить, можно было бы где-то от 50 до 10000 примерно распечатать.
Вывод в файл нужен примерно такой

Код: Выделить весь код
значение
значение
значение
значение
значение
значение
...
точность - две цыфры после запятой.

Если есть варианты на Phyton и Perl тоже пишите, хотябы в личку, любые варианты интересуют

-------
Полезное сообщение


Отправлено: 15:19, 24-04-2013

 

Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$a = 440
$sOut = ''
For $n = 0 To 17
    $sOut &= Round($a * 17 ^ ($n / 43), 2) & @LF
Next
MsgBox(0, 'Сообщение', $sOut)
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:08, 24-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Нельзя ли поправить программу, чтобы получилось следущее

Код: Выделить весь код
;...
$file = FileOpen("test.txt", 10)
FileWrite($file,$sOut)
FileClose($file)
файл test.txt:
  • ...
  • 361.08
  • 385.68
  • 411.94
  • 440.00 << базовая частота $a = 440
  • 469.97
  • 501.98
  • 536.16
  • ...
То есть вниз деление, а вверх умножение от выбранной базовой точки..

Хотя, наверное можно высчитать сразу некоторое нижнее значение и от него умножением подняться наверх?
Или есть лучше способ?

-------
Полезное сообщение


Последний раз редактировалось semiono, 26-04-2013 в 16:28.


Отправлено: 16:22, 26-04-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


semiono, лучше от базовой, в пределах октавы, в обе стороны. Дальше «танцевать» опять от «A», вверх и вниз, заданной умножением/делением базовой.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:57, 26-04-2013 | #4


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Готово!
Код: Выделить весь код
$a = 440 / 17
$sOut = ''
For $n = 0 To 17 * 5 + 1
    $sOut &= '(' & $n+1 & ') ' & Round($a * 17 ^ ($n / 43), 2) & @LF
Next
$file = FileOpen('17@43.hz',10)
		FileWrite($file,$sOut)
		FileClose($file)

-------
Полезное сообщение


Последний раз редактировалось semiono, 26-04-2013 в 20:36.


Отправлено: 17:48, 26-04-2013 | #5


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


А что это ноты что-ли? Почему они с моим вариантам и частотами не сходится? У меня и играют правильно.
Код: Выделить весь код
$a = 440
$sOut = ''
For $n = 0 To 17
    $sOut &= _Func($n) & @LF
Next
MsgBox(0, 'Сообщение', $sOut)

Func _Func($iNote, $Octave = 3)
    Return Round(440 * 2 ^ ($iNote / 12 + $Octave + 1 / 6 - 4))
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:21, 27-04-2013 | #6


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Ничего себе, Тико-тико на скрипте!

У меня это звуковой ряд только, но он "неправильный", идея в том чтобы построить ряд который не основывается на октаве.
Кстати, у меня проблемма в том, что инструменты обычно настраиваются в центах, а не частотах.
То-есть мне нужно будет перевести этот ряд в формат microtuning в центах.
Тут бы калькулятор помог.
Скачал программу Scala 2 http://www.huygens-fokker.org/scala/ но там столько лишнего, ничего не понятно и неудобно.
Но похоже что только в ней можно частоты в центы перевести..

В синтезаторах типа Rob Papen Albino есть множество microtune пресетов, но фишка в том что они все octave-based, а мне хочется новый лад зделать)

Либо в логарифмах сразу посчитать, как записано в TUN файле, но я не соображаю чё-то в логарифмах, теряюсь..

-------
Полезное сообщение


Последний раз редактировалось semiono, 27-04-2013 в 14:04.


Отправлено: 13:54, 27-04-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата semiono:
на скрипте! »
На TurboBasic: Файл 86013 .
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:22, 27-04-2013 | #8


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


semiono, а воспроизведение на чём будет? MIDI разве поддерживает такие ноты? Там только питч-бэнд использовать.
Вот ссылка там есть DSBeep.au3, который звук (синусоиду) в колонки пускает по частоте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:35, 27-04-2013 | #9


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата AZJIO:
а воспроизведение на чём будет? MIDI разве поддерживает такие ноты? »
Rob Papen Albino, Blue, Linplug SaxLab, Alpha итп. все они поддерживают микротюнинг в формате tun -файлов.
Ещё u-he Zebra, ACE и Cakewalk Z3ta+ поддерживают микротюнинг.

Проблема лишь рассчитать звукоряд в центах, что по идее является логарифмической последовательностью.

-------
Полезное сообщение


Отправлено: 14:51, 28-04-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вычисление формулы с записью в файл.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] не запускается bat файл в logon скрипте под учетной записью пользователя rufat_4 Скриптовые языки администрирования Windows 4 11-07-2012 23:55
Нужно файл cmd в автозагрузку под системной записью вставить dao_Andy Хочу все знать 4 13-04-2009 14:06
C/C++ - Реализация формулы... ganselo Программирование и базы данных 1 20-01-2009 19:38
Вычисление портов sususa Хочу все знать 7 16-07-2007 17:38
вычисление даты lastdruid Общий по Linux 1 03-03-2007 16:14




 
Переход