Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись звука с Line-inp, Работа со звуковой картой 
V
    Опции темы
JusTalionis
Дата 8.5.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Во-всяком случае те пульты, которые мне попадались, выдавали просто сигнал импульсами, без всякой модуляции. (Но тогда непонятно, почему на твоем рисунке зеленое заполнение? Может просто прога так кажет?)

А касательно передатчика по радио - это все-таки огород, и пульт модифицировать надо.
Не легче ли сделать простенький усилитель для фотодиода? Ну хотя бы как на прилагаемой схеме? Дополнительного питания не нужно, питается от микрофонного входа. Фотодиод - любой, какой найдется, но именно фотодиод, а не чип. (Я пользовал ФД26К, просто они у меня были smile ) Транзистор - в общем-то любой, но чем больше его коэфф передачи, тем больше и чувствительность будет.


Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  cxema.gif 1,66 Kb
PM MAIL   Вверх
cardinal
Дата 8.5.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Возможно немного глупый вопрос: а как математически описать модель нарисованного?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ProgramerForever
Дата 8.5.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Математически?? Что-то вроде F(t)?
А нарисованного у меня??
Если только функцией вроде 
при t=0, F=113;
при t=1, F=112;
при t=2, F=113;
при t=3, F=113;
при t=4, F=113;
при t=5, F=113;
..............
Другого способа я не вижу, да и не к чему это... smile 
PM MAIL WWW ICQ   Вверх
Akina
Дата 8.5.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Давайте, я это в железо перенесу, а? 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
JusTalionis
Дата 8.5.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Не надо, Акин, я больше не бууууудуууу!... smile 
Просто человек все еще ждет, кто ответит, как же все-таки читать сигнал со звуковухи в массив?  Никто ведь ничего конкретного до сих пор не сказал на этот начальный вопрос темы. Кста, и мне он тоже интересен... 
Так что - smile 


ЗЫ Испробовал пример , который  прислал Voldemar2004. Пример не рабочий , (каких-то определений в нем не хватает, что ли).
Хочу пример!! Исправный!!! smile


Это сообщение отредактировал(а) JusTalionis - 9.5.2007, 13:08
PM MAIL   Вверх
ProgramerForever
Дата 10.5.2007, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Цитата

как же все-таки читать сигнал со звуковухи в массив

Нет, я же уже считал в массив, мне надо чтобы прога анализировала и сравнивала, кстати этим я уже тоже занимаюсь, появились кое-какие идеи...

Вот код читалки:
Код


Dim WaveDataBool(1000) As Byte
Const Porog = 80
Dim Datnow As SYSTEMTIME
Dim Dat As SYSTEMTIME


Private Sub Form_Load()
F = FreeFile
Open "c:\1.txt" For Output As #F


Slider1_Change
    Dim Rv&
    Dim Msg$
    Dim WF As WAVEFORMATEX

    With WF
        .wFormatTag = WAVE_FORMAT_PCM
        .nChannels = 1
        .nBlockAlign = 1
        .nSamplesPerSec = 12000
        .wBitsPerSample = 8
        .nAvgBytesPerSec = (.nSamplesPerSec * .nBlockAlign) \ 8
        .cbSize = 0
    End With

    Rv = waveInOpen(hWaveIn, WAVE_MAPPER, WF, AddressOf waveInProc, 0, CALLBACK_FUNCTION)
    If Rv <> 0 Then
       MsgBox "Íå ìîãó îòêðûòü óñòðîéñòâî!", vbCritical, "Error"
       Exit Sub
    End If
    DoEvents
bBufferFull = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
    waveInClose hWaveIn
    Close F

    End
End Sub

Private Sub Slider1_Change()
    With WH
        .lpData = VarPtr(WaveData(0))
        .dwBufferLength = Slider1.Value
        .dwFlags = 0
    End With
End Sub

Private Sub Slider1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 27 Then
        waveInClose hWaveIn
        End
    End If
End Sub


Private Sub Timer1_Timer()

If bBufferFull Then
    If Check1.Value = 1 Then
        Picture1.Refresh
        aa = Int(Picture1.Width / (Slider1.Value * Screen.TwipsPerPixelX))
        If aa = 0 Then
            aa = 1
        End If
        Picture1.DrawWidth = aa
        Picture1.Line (0, Int(Picture1.Height * (WaveData(1) / 255)))-(1, Int(Picture1.Height * (WaveData(1) / 255)))
        For i = 0 To Slider1.Value - 1
            If Abs(WaveData(i) - 133) >= Porog Then
                    WaveDataBool(i) = 1
                    Picture1.Line (Int(Picture1.Width * i / Slider1.Value), 0)-(Int(Picture1.Width * i / Slider1.Value), Picture1.Height), vbRed
                Else
                    WaveDataBool(i) = 0
            End If
            If Check2.Value = 1 Then
                    Picture1.Line -(Picture1.Width * i \ Slider1.Value, Int(Picture1.Height * (WaveData(i) / 255)))
                Else
                    Picture1.Line (Int(Picture1.Width * i / Slider1.Value), Picture1.Height)-(Picture1.Width * i \ Slider1.Value, Int(Picture1.Height * (WaveData(i) / 255)))
            End If
        Next
        For i = 0 To Slider1.Value - 1
            s = s + Str(WaveData(i))
        Next
        Label1.Caption = s
    End If
        DoEvents
        waveInPrepareHeader hWaveIn, WH, Len(WH)
        bBufferFull = False
        waveInAddBuffer hWaveIn, WH, Len(WH)
        waveInStart hWaveIn
    End If
End Sub

И модуль:
Код

Public hWaveIn&
Public Const Buffer = 1000
Public bBufferFull As Boolean
Public WaveData(Buffer) As Byte
Public WH As WAVEHDR

Public Const MAXPNAMELEN = 20
Public Const CALLBACK_FUNCTION = &H30000
Public Const MM_WIM_DATA = &H3C0
Public Const WAVE_FORMAT_PCM = 1
Public Const WAVE_MAPPER = -1&

Public Const WAVE_FORMAT_1M08 = &H1     ' 11025 Hz, 8 Bit, Mono.
Public Const WAVE_FORMAT_2M08 = &H10    ' 22050 Hz, 8 Bit, Mono.
Public Const WAVE_FORMAT_4M08 = &H100   ' 44100 Hz, 8 Bit, Mono.
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Public Type SYSTEMTIME
  wYear As Long
  wMonth As Long
  wDayOfWeek As Long
  wDay As Long
  wHour As Long
  wMinute As Long
  wSecond As Long
  wMilliseconds As Long
End Type

Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Public Type WAVEINCAPS
  wMid As Long
  wPid As Long
  vDriverVersion As Long
  szPname As String * MAXPNAMELEN
  dwFormats As Long
  wChannels As Long
End Type

Public Type WAVEHDR
     lpData As Long
     dwBufferLength As Long
     dwBytesRecorded As Long
     dwUser As Long
     dwFlags As Long
     dwLoops As Long
     lpNext As Long
     Reserved As Long
End Type

Public Type WAVEFORMATEX
     wFormatTag As Integer
     nChannels As Integer
     nSamplesPerSec As Long
     nAvgBytesPerSec As Long
     nBlockAlign As Integer
     wBitsPerSample As Integer
     cbSize As Integer
End Type

Public Declare Function waveInStart Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Public Declare Function waveInGetNumDevs Lib "winmm.dll" () As Long
Public Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long
Public Declare Function waveInClose Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Public Declare Function waveInOpen Lib "winmm.dll" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMATEX, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Public Declare Function waveInPrepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Public Declare Function waveInAddBuffer Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Public Declare Function waveInUnprepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long


Public Sub waveInProc(ByVal hwi&, ByVal uMsg&, ByVal dwInstance&, ByVal dwParam1&, ByVal dwParam2&)
    If uMsg = MM_WIM_DATA Then bBufferFull = True
End Sub

А если кому в лом разбираться, ниже архив с проектом: smile

Добавлено через 1 минуту и 34 секунды
Кыыыыыть! Извините, написать написал, а архив не бросил...

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  IRDa.rar 2,80 Kb
PM MAIL WWW ICQ   Вверх
JusTalionis
Дата 10.5.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Скачал архив; запустил проект. Скомпилировалось без ошибок. Но при запуске выдало: "Не могу открыть устройство". Капут. Форма разворачивается, но ничего не делает.

Звуковуха присутствует; под стандартными звуковыми редакторами пишет, играет. WIN98.
Вот еще попробую дома под ХР, отпишусь.

------------------------------
Попробовал. Заработало без ошибок. По-видимому, на работе у меня звуковуха мало совместимая (Gravis Ultrasound).
Посмотрел на твою прогу. Респект! smile Проделана значительная работа!..

По предыдущим вопросам: надо было рисунок прислать в режиме осциллографа. Я же не знал, что у тя столбчатой диаграммой рисуется. Так что никакой модуляции там нету, нормальный сигнал.
Кстати, я подключил фотодиод с транзистором, как здесь писал; проверил - чувствительность неодстаточна. Добавил второй каскад, подробно описывать не буду, Акине обещал; если хочешь - в личку, обсудим. Скажу только результат: с двумя каскадами чувствительность средняя (с 3х метров) но получились помехи от света лампочек. Короч, надо отстраиваться, делать фильтры, а они повлияют и на форму сигнала, так что огород получается - еще тот!.. Вынужден признать, что предложенный мною вариант мало перспективен для данной задачи.

За сим позвольте откланяться; если в чем-нибудь смогу помочь не столь мало, как теперь - не премину это сделать.

Юс Талионис


Это сообщение отредактировал(а) JusTalionis - 10.5.2007, 22:34
PM MAIL   Вверх
ProgramerForever
Дата 17.7.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



 smile  smile  smile А я прогу доделал... smile  smile  smile 

Прилагаю.
Чтобы добавить кнопку, 2 раза щёлкнуть по картинке.

Теперь надо сделать что-то вроде MKey. Чтобы было удобно...

Я тему по WMP создал, но другое тоже надо: WinAmp, окна и т.д.


Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  Anal.rar 12,87 Kb
PM MAIL WWW ICQ   Вверх
cardinal
Дата 17.7.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ты только так двузначно файл в след. раз не называй... smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ProgramerForever
  Дата 17.7.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Скачал из-за названия??? smile Я так прикалываюсь... smile 
PM MAIL WWW ICQ   Вверх
ProgramerForever
Дата 16.8.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Добрый вечер!

Похвастаюсь: сделал пульт, но не на радиоуправлении, а на ИК, как положено. В качестве приёмника - приёмник от телека импортного. Работает на УРА!!! smile 

И вопрос. Немного не по теме, но из того же раздела.


Как мне можно уменьшать/увеличивать звук?
PM MAIL WWW ICQ   Вверх
cardinal
Дата 16.8.2007, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(ProgramerForever @  16.8.2007,  19:19 Найти цитируемый пост)
Как мне можно уменьшать/увеличивать звук? 

Не совем понимаю вопрос.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ProgramerForever
Дата 16.8.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Программно из VB устанавливать необходимый уровень громкости звука, который идёт на колонки, наушники и т.п.
Что-то вроде "Общая громкость"
PM MAIL WWW ICQ   Вверх
cardinal
Дата 16.8.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



На это взгляни http://www.gssg.de/vbmume.htm


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ProgramerForever
  Дата 17.8.2007, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Спасибо, cardinal. Я посмотрел на ссылку, ".de", думаю, почему он частенько ответы даёт на немецкие ресурсы. Посмотрел профиль и всё встало на свои места... Спасибо ещё раз. Скачал, буду разбираться, благо сам совсем немного немецкий знаю, да и Promt у меня есть (что не можно глаз отвесть smile). Пока!
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1571 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.