purebasic.info

PureBasic forum
Текущее время: Вс июл 22, 2018 11:38 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Свойства частоты звука.
СообщениеДобавлено: Вс янв 22, 2017 4:28 pm 
Не в сети
доцент

Зарегистрирован: Чт дек 08, 2016 5:32 pm
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Подскажите как изменять частоту и определять ее в purebasic?Или же подскажите какие-нибудь примеры.
Заранее спасибо!(В инете не нашел)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс янв 22, 2017 4:39 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11208
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
http://www.purebasic.com/documentation/ ... uency.html

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс янв 22, 2017 4:54 pm 
Не в сети
доцент

Зарегистрирован: Чт дек 08, 2016 5:32 pm
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
А как определить частоту звука.В моей версии pb нет таких команд,как setSoundFrequency и getSoundFrequency,но есть команда SoundFrequency.Скажите как определить частоту звука?(у меня версия 5.00)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс янв 22, 2017 5:06 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11208
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
С определением частоты все не так просто. В звуке одновременно может быть множество частот (музыка, голос и т. д.). Для определения спектра обычно используют быстрое преобразование Фурье https://ru.wikipedia.org/wiki/Быстрое_преобразование_Фурье

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс янв 22, 2017 6:17 pm 
Не в сети
доцент

Зарегистрирован: Чт дек 08, 2016 5:32 pm
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Ну а по сути даже если со звуками посторонними,как это сделать?Приведите пример или дайте ссылку на источник.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс янв 22, 2017 7:32 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6327
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Если надо измерять частоту звука, песни, музыки и т.п., то есть библиотеки bass.dll или fmodex.dll
Они позволяют как проигрывать музыкальные файлы, так и вытаскивать из них информацию в виде уровня сигнала на канал и полный частотный спектр сигнала.
Примеры с исходным кодом можно увидеть тут
Radio BASS
Radio BASS Scaler
Radio BASS Vinyl
Radio BASS Record
Fmodex.dll плеер mp3

Система в работе:
Изображение

Если надо изменять частоту готового WAV файла, то надо посмотреть спецификацию, как он устроен. А устроен он предельно просто - все частоты записаны цифрами по каналам. Меняем эти цифры на нужные значения и соответственно меняется частота звука. Ни каких специальных команд для работы со звуком не требуется - только стандартные чтение и запись в файл.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Пт мар 24, 2017 6:51 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1645
Откуда: Алматы
Благодарил (а): 14 раз.
Поблагодарили: 45 раз.
Пункты репутации: 5
седня деду слуховой аппарат подбирали. и чот по моему икспердному мнению они не совсем верно подходят к решению проблемы. у него 3-4 приграничной степени тугоухость. и есть два типа слуховых - одни просто поднимают громкость, вторые такой-же усилитель, но +2 или 4 полосный аквалайзер. вот согласно кривой по частотам и децибелам подстраивают этот самый аквалайзер - скажем поднимают средние частоты и готово. но я думаю надо не столько поднимать то, что он не слышит - сколько сдвигать по частотам, скажем на понижение - по тональности. возможно ли подобное сделать с этим басс.длл? на лету в реальном времени звук воспринимать, менять тональность и проигрывать?

компьютер то может частоты вообще чуть ли не добесконечности подкручивать и извращаться со звуком как угодно. аппараты в железной своей части так не могут. вот проверить бы эту теорию :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс июн 25, 2017 9:17 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1645
Откуда: Алматы
Благодарил (а): 14 раз.
Поблагодарили: 45 раз.
Пункты репутации: 5
поставил наконец PB на компьютер после аварии с жестким диском. думаю наверное пора пришла засесть за творчество, а то сколько можно...

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

сейчас в моем случае есть только запись со стереомикса путем использования басс.длл. запись стартует в 10400 кбс, моно и рисует при этом спектр в окошке. пишет сначала в память, а при нажатии кнопки сохранения, отрезая хедер, в файл.

так то я посмотрел вроде в PB31 есть SetSoundFrequency() и GetSoundFrequency(), вроде это то что надо. но только я так понимаю что программа загрузит звуковой файл в #ID и потом с будет работать как с этим идентификатором, а мне то надо чтоб в память. как тут выкрутится? мп3 и вма думаю послать к черту, а вот огг и вав были бы очень даже кстати.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Ср июн 28, 2017 7:04 pm 
Не в сети
ассистент

Зарегистрирован: Вс мар 12, 2017 2:53 pm
Сообщений: 13
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
SereZa писал(а):
седня деду слуховой аппарат подбирали. и чот по моему икспердному мнению они не совсем верно подходят к решению проблемы. у него 3-4 приграничной степени тугоухость. и есть два типа слуховых - одни просто поднимают громкость, вторые такой-же усилитель, но +2 или 4 полосный аквалайзер. вот согласно кривой по частотам и децибелам подстраивают этот самый аквалайзер - скажем поднимают средние частоты и готово. но я думаю надо не столько поднимать то, что он не слышит - сколько сдвигать по частотам, скажем на понижение - по тональности. возможно ли подобное сделать с этим басс.длл? на лету в реальном времени звук воспринимать, менять тональность и проигрывать?

компьютер то может частоты вообще чуть ли не добесконечности подкручивать и извращаться со звуком как угодно. аппараты в железной своей части так не могут. вот проверить бы эту теорию :)


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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Ср июн 28, 2017 8:13 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1645
Откуда: Алматы
Благодарил (а): 14 раз.
Поблагодарили: 45 раз.
Пункты репутации: 5
ну я смог родить только идею :) дальше дело не пошло...

думал так: приложение для телефона. наушники в 2 уха. телефон на шнурке на шее. наушники не затычки в ухи, а с дугой. проводок от наушников лапша дунганская, то есть широкий провод, похож на sata проводок, что жесткий диск к мат плате соединяет - это чтоб не оборвать. еще помница на наушниках на микрофоне кнопка раньше была - сейчас не знаю - то есть когда звонок идет, человек не лез за телефоном, а тыркал кнопку на микрофоне и телефон брал трубку. задумка была чтоб при нажатии этой кнопки в момент, когда звонка нет - включался "диктофон" с тем моим аквалайзерным сдвигом по фазе. и работал 5 минут. потом отключался. это на случай если дед забудеть нажать еще раз для отключения. а так 5 минут транслирует звук, потом отключается. а ежели он болтал и отключился - то опять тыркнул кнопку и опять работает. так-же этот аквалайзер чтоб действовал и на телефонные звонки тоже.

деду 90 скоро. и насчет атрофии мозга в плане переваривать речь знаю. поэтому та продавец нам говорила чтоб вообще носил не снимая и менял аппарат местами. но дед в первый же день закинул в ящик этот слуховой и забыл про него. он кароче упертый у нас :) машину даж покупал - нам ничо не сказал, втихаря купил... она еще причем гроб была даже не находу. потом носился запчасти искал, мастеров дергал к себе в гараж. теперь на ходу. но он не ездит.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Чт июн 29, 2017 6:55 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 630
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
Zar писал(а):
а все "умные" врачи добавляют децибел. Поначалу когда тебе в ухо орут, восприятие улучшается (ребенку крикни погромче и он сразу понимает), а потом и слух садиться тогда вообще резко все вниз падает.

Конкретно есть что предложить, я собираюсь себе покупать.
Zar писал(а):
(ребенку крикни погромче и он сразу понимает)

Нееее, дитё просто пугается и не всегда понимает почему на него наорали.

Могу подтвердить, чем качественнее звук, тем лучше разборчивость и эквалайзер помогает сдвинуть спектр для конкретных ушей в сторону лучшей слышимости.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Свойства частоты звука.
СообщениеДобавлено: Вс июл 02, 2017 3:34 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1645
Откуда: Алматы
Благодарил (а): 14 раз.
Поблагодарили: 45 раз.
Пункты репутации: 5
я не понимаю что мне буржуи втолковывают... есть банк сэмплов, они там все без головы идут друг за другом и одной частоты. 6500 по моему.
https://www.dropbox.com/s/io7cwsptj7q9h ... s.bin?dl=1

затык в том, что они вроде как 4 бита, а не 8. 4 никто играть не умеет. уж тем более, что там вроде как записано задом наперед...

пытаюсь конвертировать так:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
;{
Macro SetBit(Var, Bit)
  Var | (Bit)
EndMacro
Macro ClearBit(Var, Bit)
  Var & (~(Bit))
EndMacro
Macro TestBit(Var, Bit)
  Bool(Var & (Bit))
EndMacro
Macro NumToBit(Num)
  (1<<(Num))
EndMacro
Macro GetBits(Var, StartPos, EndPos)
  ((Var>>(StartPos))&(NumToBit((EndPos)-(StartPos)+1)-1))
EndMacro
;}
 
Procedure WavHeaderCreation(*memst)
 
 ;RIFF
 PokeB(*memst, $52):PokeB(*memst+1, $49):PokeB(*memst+2,$46):PokeB(*memst+3, $46)
   
 ;WAVE
 PokeB(*memst+8, $57):PokeB(*memst+9, $41):PokeB(*memst+10,$56):PokeB(*memst+11, $45)
   
 ;fmt
 PokeB(*memst+12, $66):PokeB(*memst+13, $6d):PokeB(*memst+14,$74):PokeB(*memst+15, $20)
   
 ;header size
 PokeB(*memst+16, $10)
   
 ;PCM 01
 PokeB(*memst+20, $01)
   
 ;mono stereo
 PokeB(*memst+22, $01)
   
 ;1
 PokeB(*memst+32, $01)
   
 ;bit
 PokeB(*memst+34, $08)
       
 ;data    
 PokeB(*memst+36, $64)
 PokeB(*memst+37, $61)
 PokeB(*memst+38, $74)
 PokeB(*memst+39, $61)
 
EndProcedure
 
inpval.b
first.b
second.b
 
If ReadFile(0, "D:\Samples.bin")
  length = Lof(0)
  *sndsource = AllocateMemory(length)
  If *sndsource
    ReadData(0, *sndsource, length)
  EndIf
  CloseFile(0)
EndIf
 
If *sndsource
  *snddest = AllocateMemory(length*2+44)
  If *snddest
    WavHeaderCreation(*snddest)
   
    ;size
    PokeL(*snddest +  4, length*2+40)
    PokeL(*snddest + 40, length*2)
    ;kbs
    PokeL(*snddest + 24, 6500)
    PokeL(*snddest + 28, 6500)
   
    For i = 0 To length
      inpval = PeekB(*sndsource+i)
     
      first  = GetBits(inpval, 0, 3) ; get %0000xxxx
      second = GetBits(inpval, 4, 7) ; get %xxxx0000
     
      first  * 16
      second * 16
 
      PokeB(*snddest+44+(i*2), first)
      PokeB(*snddest+45+(i*2), second)
    Next
   
  EndIf
EndIf
 
 
;sndPlaySound_(*snddest,#SND_MEMORY | #SND_ASYNC | #SND_NODEFAULT)
 
;Delay(5000)
 
If CreateFile(0, "D:\demo.wav")
  WriteData(0, *snddest, length*2+44)
  CloseFile(0)
EndIf
 



почему в итоге шипит? так то вроде сэмплы слышно, но шипение все перебивает. какие типы переменных не сувал - ничего не помогает.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB