2 / 2 / 0
Регистрация: 19.12.2011
Сообщений: 17

Из wav файла вывести график на форму

19.12.2011, 10:07. Показов 11342. Ответов 46

Студворк — интернет-сервис помощи студентам
Очень нужна помощь, на форме есть кнопки нужно чтобы по нажатию кнопки выводился график из wav файла. файл примерно длительностью 1 сек (не важно вообщем то какой). главное чтобы выводился график и чтобы на нем можно было смотреть значения, если он при этом еще и динамический будет то вообще идеально.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2011, 10:07
Ответы с готовыми решениями:

Не могу вывести график и сохранить формат wav
= wavread ('c:\1\1.wav'); spec = abs (fft(s)); spec = spec (1:end/2); freq = (fs/2)*(1:length(spec))/length(spec); plot (freq,...

Рисовать график wav файла с зумом по времени - на чем?
Задача - есть моно wav файл, надо сделать его визуализацию во временнОй области с прокруткой и изменением масштаба по времени в широких...

Вывести график функции на форму.
Иследовать функцию. y^2=x^4/(x^2-1). Протабулировать её в интервале, который вводиться с клавиатуры, вывести результат в таблицу, вывести...

46
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
15.12.2012, 14:30
Студворк — интернет-сервис помощи студентам
Хорошо, а хоть какую-нибудь оцифровку осей как сделать?
И сетка чтобы была прорисована сразу, а не достраивалась вместе с графиком
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
16.12.2012, 01:02
И так мы скоро разработаем аудиоредактор не хуже, чем у фирмы Sony или Steinberg
Теперь сетка появлятся сразу, есть оцифровка, к тому же тепер после нажатия на кнопку Очистить сетка остаётся. (думаю, так будет лучше).
Вложения
Тип файла: zip Проект1.zip (131.4 Кб, 47 просмотров)
1
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
16.12.2012, 01:21
Под SONY и равняемся xDD
Здорово сделал
0
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
20.12.2012, 00:03
Решил попробать в одну форму слить, не получилось только оси пунктирные 2 отдельно сделать чтоб вот так было

30 60 90 120 150 180
6000
...
0------------------------------------
...
-6000
-------------------------------------
30 60 90 120 150 180
6000
...
0------------------------------------
...
-6000




а у меня :

30 60 90 120 150 180
6000
...

1000
0-------------------------------------
30 60 90 120 150 180
-1000
...

-6000
Вложения
Тип файла: rar Проект1.rar (90.8 Кб, 19 просмотров)
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
20.12.2012, 17:42
Это из-за того, что с сеткой нужно было сделать такие же преобразования, как и с графиками. Я доработал.
Ещё есть на что обратить внимание - седьмой аваст при каждом запуске новоскомпелированной программы показывает у меня такое сообщение:
Миниатюры
Из wav файла вывести график на форму  
Вложения
Тип файла: zip Проект1.zip (130.8 Кб, 22 просмотров)
1
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
20.12.2012, 19:47
Антивирь нормальный есть на компе, вирусни быть не должно
Ещё вопрос небольшой: как сделать чтоб оцифровка времени сразу появилась(до появления графика)
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
21.12.2012, 16:53
Теперь и время появляется сразу, к тому же остаётся после очистки. Ещё бы сделать, чтобы график появлялся сразу, но это не так просто.
Вложения
Тип файла: zip Проект1.zip (130.7 Кб, 48 просмотров)
1
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 9
07.01.2013, 01:38
А можно сделать чтобы координаты всех вершин забивались в текстовый файл на первом твоем проекте!!!
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
07.01.2013, 02:04
Тут нужно немного уточнить - каких вершин, когда общая громкость звука в отдельных местах поднимается, а потом опускается, или полностью всех пиков графика, учитывая каждое колебание в отдельности?
0
vektor1960
21.10.2013, 10:13
Программа рабочая.
Но очень надо, чтобы получить данные из wav файла
в виде таблицы Exel
Номер семпла - значение лев.к-значение прав.к
График не нужен.
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
21.10.2013, 12:45
А как сделать так чтоб на графике только 1 какая нибудь частота выводилась?)
0
Модератор
10063 / 3908 / 885
Регистрация: 22.02.2013
Сообщений: 5,857
Записей в блоге: 79
21.10.2013, 13:15
Цитата Сообщение от radlif Посмотреть сообщение
А как сделать так чтоб на графике только 1 какая нибудь частота выводилась?)
Если имеется ввиду спектр, то FFT.
Если использовать разложение в комплексный ряд тогда спектр амплитуд можно узнать по формуле A=sqrt(R2+I2)/2, спектр мощности = A2
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
21.10.2013, 13:25
Как бы правильнее объяснить, если к примеру сравнить писк комара и звук электродрели
у них разная частота.
Так вот если эти 2 звука записать то как после вывести отдельно, на 1 пикчур
писк комара, на 2 пикчур звук дрели.
Я как то пытался решить данную задачу но кроме графика всех звуков так
не чё и не смог получить ))
0
Модератор
10063 / 3908 / 885
Регистрация: 22.02.2013
Сообщений: 5,857
Записей в блоге: 79
21.10.2013, 13:40
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от radlif Посмотреть сообщение
Как бы правильнее объяснить, если к примеру сравнить писк комара и звук электродрели
у них разная частота.
Так вот если эти 2 звука записать то как после вывести отдельно, на 1 пикчур
писк комара, на 2 пикчур звук дрели.
Я как то пытался решить данную задачу но кроме графика всех звуков так
не чё и не смог получить ))
Частотный анализ, а там уже разделяй, я уже написал FFT (быстрое преобразование Фурье), в сети есть алгоритмы. Для начала можно обычное дискретное преобразование Фурье сделать, если хочешь вникнуть в работу, формулы элементарные.
Вот класс FFT я делал давно, но это без оптимизации.
Visual Basic
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
Public Enum FFTType
    FT_DIRECT
    FT_INVERSE
End Enum
Dim Rcoef(13) As Single, Icoef(13) As Single
Public Function FFT(Rdat() As Single, Idat() As Single, N_ As Long, Ft_Flag As FFTType) As Boolean
    Dim LogN As Long, i As Long, j As Long, N As Long, K As Long, io As Long, ie As Long, in_ As Long, nn As Long
    Dim ru As Single, iu As Single, rtp As Single, itp As Single, rtq As Single, itq As Single, rw As Single, _
        iw As Single, sr As Single
    If N_ > 16384 Or N_ < 1 Then Exit Function
    If Not ((Not ((N_) And ((N_) - 1))) And ((N_) > 1)) Then Exit Function
    LogN = Log2(N_)
    If LogN < 2 Or LogN > 14 Then Exit Function
    If Ft_Flag <> FT_DIRECT And Ft_Flag <> FT_INVERSE Then Exit Function
    nn = N_ \ 2
    ie = N_
    For N = 1 To LogN
        rw = Rcoef(LogN - N)
        iw = Icoef(LogN - N)
        If Ft_Flag = FT_INVERSE Then iw = -iw
        in_ = ie \ 2: ru = 1: iu = 0
        For j = 0 To in_ - 1
            For i = j To N_ - 1 Step ie
                io = i + in_
                rtp = Rdat(i) + Rdat(io)
                itp = Idat(i) + Idat(io)
                rtq = Rdat(i) - Rdat(io)
                itq = Idat(i) - Idat(io)
                Rdat(io) = rtq * ru - itq * iu
                Idat(io) = itq * ru + rtq * iu
                Rdat(i) = rtp: Idat(i) = itp
            Next
            sr = ru
            ru = ru * rw - iu * iw
            iu = iu * rw + sr * iw
        Next
        ie = ie \ 2
    Next
    j = 1
    For i = 1 To N_ - 1
        If i < j Then
            io = i - 1: in_ = j - 1
            rtp = Rdat(in_): itp = Idat(in_)
            Rdat(in_) = Rdat(io)
            Idat(in_) = Idat(io)
            Rdat(io) = rtp
            Idat(io) = itp
        End If
        K = nn
        Do While K < j
            j = j - K
            K = K \ 2
        Loop
        j = j + K
    Next
    If Ft_Flag = FT_INVERSE Then FFT = True: Exit Function
    rw = 1 / N_
    For i = 0 To N_ - 1
        Rdat(i) = Rdat(i) * rw
        Idat(i) = Idat(i) * rw
    Next
    FFT = True
End Function
Private Function Log2(ByVal Value As Long) As Long
    Dim N As Long, R As Long, O As Long
    If Value <= 0 Then Log2 = -1: Exit Function
    R = Value
    Do Until R <= 1
        N = N + 1
        O = R Mod 2
        If O > 0 Then Log2 = -1: Exit Function
        R = R \ 2
    Loop
    Log2 = N
End Function
Private Sub Class_Initialize()
    Dim N As Long, vRcoef As Variant, vIcoef As Variant
    vRcoef = Array(-1#, 0#, 0.707106781186547 _
          , 0.923879532511287, 0.98078528040323, 0.995184726672197 _
          , 0.998795456205172, 0.999698818696204, 0.999924701839145 _
          , 0.999981175282601, 0.999995293809576, 0.999998823451702 _
          , 0.999999705862882, 0.999999926465718)
    vIcoef = Array(0#, -1#, -0.707106781186547 _
         , -0.38268343236509, -0.195090322016128, -9.80171403295606E-02 _
         , -0.049067674327418, -2.45412285229122E-02, -1.22715382857199E-02 _
         , -6.1358846491544E-03, -3.0679567629659E-03, -1.5339801862847E-03 _
         , -7.669903187427E-04, -3.834951875714E-04)
    For N = 0 To 13
        Rcoef(N) = vRcoef(N)
        Icoef(N) = vIcoef(N)
    Next
End Sub
1
Модератор
10063 / 3908 / 885
Регистрация: 22.02.2013
Сообщений: 5,857
Записей в блоге: 79
21.10.2013, 13:53
Лучший ответ Сообщение было отмечено как решение

Решение

Вот я как-то делал счетчик хлопков, сделал только реакцию на ВЧ составляющую. Ну на хлопки реагирует, а если по столу бить то уже нет, также если шипеть в микрофон также реагирует, только если не рычать в него
Миниатюры
Из wav файла вывести график на форму  
Вложения
Тип файла: rar Счетчик хлопков.rar (3.9 Кб, 45 просмотров)
3
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
21.10.2013, 14:00
Цитата Сообщение от The trick Посмотреть сообщение
Вот я как-то делал счетчик хлопков, сделал только реакцию на ВЧ составляющую. Ну на хлопки реагирует, а если по столу бить то уже нет, также если шипеть в микрофон также реагирует, только если не рычать в нег
Пример хороший, вот ток дирекс 8 сейчас скачать проблема
Как скорость на мегафоне дадут буду разбирать)
0
Модератор
10063 / 3908 / 885
Регистрация: 22.02.2013
Сообщений: 5,857
Записей в блоге: 79
21.10.2013, 14:01
Цитата Сообщение от radlif Посмотреть сообщение
ример хороший, вот ток дирекс 8 сейчас скачать проблема
Скачай dx8vb.dll
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
21.10.2013, 16:19
The trick, Сможешь прокомментировать свой класс FFT, что он принимает, что возвращает.
0
Модератор
10063 / 3908 / 885
Регистрация: 22.02.2013
Сообщений: 5,857
Записей в блоге: 79
21.10.2013, 16:51
Цитата Сообщение от radlif Посмотреть сообщение
The trick, Сможешь прокомментировать свой класс FFT, что он принимает, что возвращает.
Почитай про FFT тогда поймешь, там все стандартно
0
0 / 0 / 0
Регистрация: 01.02.2015
Сообщений: 3
01.02.2015, 17:55
Опан, а можешь показать пример как сделать децибельную шкалу для wav файла?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2015, 17:55

Как вывести график на форму
Здравствуйте. Прошу мне помочь. У меня в курсовой одним из заданий является написать программу в Visual Basic 2008 express edition таким...

Вывести на форму таблицу и график функции y=e^(x-2)/tg(x-2)
нужно алгортм, программный код, список управляющих элементов Я в этом вообще не шарю, помогите

Вывести на форму таблицу и график функции
Здравствуйте. Есть функция: y = exp(x-2)+x^2+3. Необходимо вычислить значение функции в заданном интервале, вывести результат в...

Открыть файл формата WAV, воспроизвести его и отобразить график амплитуды и времени этого сигнала (файла), а также спектр сигнала
Здравствуйте ! Помогите пожалуйста с программой на Delphi 7. Не могу написать программу которая по нажатию вкладки ОТКРЫТЬ в меню...

На форму вывести двумерный график по массиву, записанному в текстовом файле
Ребята помогите!!! У меня есть файл, допустим txt-файл с массивом из чисел. И мне надо в c++ builder форме вывести двумерный график этого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru