Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / синтезатор / 6 сообщений из 6, страница 1 из 1
08.03.2014, 18:43
    #38581876
Volodbka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синтезатор
Привет есть вот это
http://excelvba.ru/code/beeps

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Sub beeps(melody As String, Optional ByVal BeepTime As Integer = 200)
     mr = "qazwsxedcrfvtgbyhnujmik,ol.p;/['"
     For i = 1 To Len(melody)
         DoEvents: nextlen = 1: letter = Mid$(melody, i, 1)
         nota = InStr(1, mr, letter)
         If IsNumeric(letter) And letter > 0 Then
             nextlen = letter: i = i + 1: nota = InStr(1, mr, Mid$(melody, i, 1))
         End If
         If nota > 0 Then
             tone = 220 * (2 ^ ((nota - 1) / 12))
             a = Beep(tone, nextlen * BeepTime)
         Else
             a = Beep(30000, nextlen * BeepTime / 5)
         End If
     Next
End Sub




Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
' воспроизведение звуков высокой и низкой частоты

Sub beepH(): beeps "k", 100: End Sub

Sub beepH0(): beeps "k", 30: End Sub

Sub BeepH2(): beeps "k,k", 100: End Sub

Sub beepL(): Beep 100, 100: End Sub

Sub beepL0(): Beep 100, 30: End Sub

Sub BeepL2()
     Beep 100, 100
     Beep 104, 100
     Beep 100, 100
     Beep 70, 200
End Sub



Вопрос следующий, действительно ли tone = 220 * (2 ^ ((nota - 1) / 12))
а может tone = 220 * (2 ^ ((nota - 1) / 13)), при этом символ - "X" - пустышка, или еще как?
Ну как бы нот 7, по хорошему писать tone = 220 * (2 ^ ((nota - 1) / 7)), а затем уже пронизывать диезами, бемолями.
Тут нужен человек с музыкальным слухом и немного программист
...
Рейтинг: 0 / 0
08.03.2014, 18:57
    #38581880
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синтезатор
октава, как ни крути, делится на 12 полутонов, а не на 7 и не на 13
между нотами ре и ми два полутона, а между ми и фа - один полутон
погляди внимательно на клавиатуру фортепиано, почитай статьи про темперацию
...
Рейтинг: 0 / 0
08.03.2014, 19:12
    #38581882
Volodbka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синтезатор
Вот тут псевдо ноты, неужели они не могут теоретически быть? и в виду их наличия меняется звучание

Попытка объяснить на пальцах, лестница имеет одну длину, но расстояние между перекрытиями этажей разное. То есть одна и та же лестница может доставать до 4 этажа одного дома и до 3 этажа другого.
...
Рейтинг: 0 / 0
08.03.2014, 19:18
    #38581886
Volodbka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синтезатор
Shocker.Proоктава, как ни крути, делится на 12 полутонов, а не на 7 и не на 13
между нотами ре и ми два полутона, а между ми и фа - один полутон
погляди внимательно на клавиатуру фортепиано, почитай статьи про темперацию

постараюсь разобраться с темперацией, спасибо
...
Рейтинг: 0 / 0
08.03.2014, 20:03
    #38581893
Volodbka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синтезатор
...
Рейтинг: 0 / 0
08.03.2014, 20:07
    #38581894
Volodbka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
синтезатор
Кто не верит тот - проверит. Вопрос - закрыт.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / синтезатор / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]