Автор |
Сообщение |
|
Дата: 11 Янв 2012 09:18:21 · Поправил: Programmist (11 Янв 2012 13:42:26)
#
Да, странное дело, придется изобретать другой алгоритм. Этот зависит от железа :(
з.ы.
На трех машинах проверил - работает. Две под XP, одна Server2003, теперь совсем не понятно, в чем тут проблема...
На всякий случай, версию программы пишу в заголовок файла. 24-ая, наверно на сегодня последняя.
з.ы.
Ничего пока не нашел, Undo работает точно так же, вообще есть мысль полностью перейти на работу с диском, как это делают все порядочные редакторы - он резиновый и Out of Memory на нем не будет.
|
|
Дата: 11 Янв 2012 18:54:07
#
Programmist
После когда доделаете вставку "ктрл вэ" есть пару пожеланий:
1. Пипетку на FFT SHIFT SIGNAL DOWN
2. Play Stop по клавише пробел.
Остальное потом и по ходу.
|
Реклама Google
|
|
|
Дата: 11 Янв 2012 20:30:06
#
RadioKoteg
Кажется, нашел ошибку, в одном месте забыл путь прописать. Пипетку Up Dn совместил с Sin, место на форме надо экономить. Play по пробелу сразу не получился, надо подумать, а то могут быть накладки.
Версия 25: http://files.mail.ru/GBMHNX |
|
Дата: 12 Янв 2012 00:35:58
#
Programmist Кажется, нашел ошибку, в одном месте забыл путь прописать.
Работает.
Пипетку Up Dn совместил с Sin
Согласен.
|
|
Дата: 21 Янв 2012 20:53:58 · Поправил: Programmist (22 Янв 2012 17:26:51)
#
Версия 30
Много изменений, версия пробная, внешний вид максимально приближен к тому, как программа будет выглядеть в первом релизе.
Перед запуском, у кого была старая версия, желательно удалить ее из реестра, вложенным файлом "Cool+ Удаление старых версий.reg".
При FFT фильтрации, значение "Fade" нужно ставить не менее 10-50 Гц, иначе - эффект Гиббса.
Можно читать инструментальные сэмплы, вот такие: http://files.mail.ru/HJ6J5I (с последующим ASR)
Или картинки, вот такие: http://files.mail.ru/AVPIHD (через File-Open Bitmap). "Поющие битмапы" создаются в режиме Cool+, потом их можно редактировать в фотошопе, только осторожно, и сохранять всегда в 32 бита.
з.ы.
Маркеры временной области теперь работают всегда, и следует иметь в виду, что при "нулевом селекте" функции не работают. Select All осуществляется нажатием на колесо мыши, выбором Ctrl+A, или кнопкой "A" (под проигрывателем).
Так же пока не работают FFT фильтрация и сдвиг спектра для стереосигнала. LPF фильтр работает.
Вообще, изначально работа со стереосигналом не была предусмотрена, был многоканальный режим, но я его выбросил. Теперь, судя по всему, придется возвращать его на место :)
Открыта опция Formsts -> Reload File as 32 bit Data (Float), это для открытия бинариков неизвестного формата, но с ней нужно быть осторожней, если появляется сообщение – Invalid Floating Point Operation, программу надо перезагружать (файл скорей всего был не 32 бита Float). Остальные "Reload-ы" работают без ошибок, эту поправлю в следующей версии.
з.ы.ы.
В общем, вот тут поправил как-то: http://files.mail.ru/Y22D6P (версия 30).
А то, когда еще время будет - неизвестно, и опять скажут, что г-но :-)
Панели с различными звуковыми эффектами здесь, наверно, не будет, их и так больше, чем достаточно в любом редакторе. Единственное, что может быть, это панель с очисткой от шума. |
|
Дата: 28 Янв 2012 21:20:24
#
Programmist Ой, что я увидел. Дискрет у вас показывет как 8000.00, типо невозможное стало возможным? :)
|
|
Дата: 28 Янв 2012 23:57:25 · Поправил: Programmist (29 Янв 2012 00:14:39)
#
Mesh
Приветствую! Что-то заглохла тема, да и у меня не особо далеко продвинулось вперед, а дискрет дробный возможен при децимации, сохранить в таком виде все равно не получится, будет округление.
Сдвиг тоже дробный может быть, там сейчас FFT 65536 на любой сигнал, а что получится, то и получится на выходе, точку сразу округлять не стал, пока это только картинка.
|
|
Дата: 29 Янв 2012 00:21:01
#
Programmist А так может оно и раньше было дробным, я чёт не помню, просто читал как вы сказали что это типо невозможно, а тут глядь уже возможно. :-) Ну да ладно. Просто подумал, если реал на дробь уходить решили как в SA, то може как бы одного стандарту какого тогда придерживатся, что б не было кто в лес кто по дрова. Но эт так в качестве думок.
|
|
Дата: 29 Янв 2012 00:29:36
#
А так может оно и раньше было дробным, я чёт не помню, просто читал как вы сказали что это типо невозможно, а тут глядь уже возможно. :-)
Насколько я понимаю, в SA это стало возможно за счет введения нестандартных (и несовместимых с каким-либо иным софтом) тегов в формат WAV файла. Хорошо это или плохо - вопрос далеко не беспорный.
|
|
Дата: 29 Янв 2012 00:32:32
#
asv Да там видно по заголовку как это решили, моё имхо это и не плохо и не хорошо, оно просто есть. :) Не мешает абсолютно никому, а где надо своё дело делает. Хотя вот реал, не могу придумать где б оно лично мне было нужно, но може просто задач таких пока не было. Так что уж никому это не вредит эт точно.
|
|
Дата: 29 Янв 2012 00:34:25
#
Mesh
А так может оно и раньше было дробным
Может и было, я уже не помню, когда там round убрал после ввода, в последних версиях просто вывел в статус бар результат, а одного стандарту придерживаться - однозначно. Это если в SA сделают, тогда я оттуда честно перепишу :) У меня с дробью в заголовке ничего не вышло, имхо будут делать дополнительные поля.
|
|
Дата: 29 Янв 2012 00:37:58 · Поправил: Mesh (29 Янв 2012 00:39:57)
#
Programmist Дык они уже это сделали. Заголовок посмотрите ихний, в смысле файла после сохранения. Но лучше всё равно переговорить с создателями, то что видно может быть не всё, какие условности може соблюсти надо. А может и не мутить, пока неясно насколько это нужно, разве при каких особо точных действах.
|
|
Дата: 29 Янв 2012 00:40:00 · Поправил: asv (29 Янв 2012 00:48:10)
#
Да там видно по заголовку как это решили
Я пока не смотрел, но догадаться было нетрудно.
Так что уж никому это не вредит эт точно.
Дело в том, что в результате получается нечто, не в полной мере являющееся WAV-файлом, но имеющее соответствующий заголовок и расширение. А так, конечно, вреда особого нет. Не в полной мере - потому что в заголовке прописана одна частота дискретизации, а фактически применяется, пусть и близкая, но другая.
Я, кстати, не говорю, что это плохо. Хотя мне лично не очень нравится, когда в тегах содержится информация, критичная для интерпретации сигнала.
|
|
Дата: 29 Янв 2012 00:47:32
#
asv Если стандарт нарушен, то да это будет нечто, если в рамках стандарта, то это уже проблемы другого софта который с этим стандартом должен работать. Но так по дискусиям в образцах сигналиков, мне кажется стандарт выдерживается. Хотя вон там Programmist какие-то нестыки находил, я хз в общем, сделали они и сделали, там видно будет нужно оно или не очень, мешает чему или нет. Собсно это их проблемы, если что поправят имхо.
|
|
Дата: 29 Янв 2012 00:48:10
#
Mesh
Дык они уже это сделали
Это хорошо, значит, выловлю тут пример и посмотрю. А насчет необходимости этого у меня, пока спешить не буду, там еще полно более серьезных недоработок. Потом, если дело до конца доведу, можно будет и взять их стандарт. Изобретать лишние форматы точно не стоит.
|
|
Дата: 29 Янв 2012 01:33:26
#
|
|
Дата: 29 Янв 2012 02:33:56
#
Mesh
Спасибо, вроде с заголовком все нормально, читается без проблем, тем, что у меня есть, а вот дробь с ходу найти не смог, надо смотреть более внимательно в хексе, изменив значение после точки, какой байт меняется. Где-то это в заголовке, в конце файла точно ничего нет.
|
|
Дата: 29 Янв 2012 02:44:00
#
Programmist а вот дробь с ходу найти не смог Как это, как это? Там ж тег такой конкретный висит? Ну с форматом може так с ходу не вьехать, чёт я тут лоханулся, нужно было какой дробный дискрет записать в фалйе, ну короче там вроде интежер, если я сам правильно понял.
|
|
Дата: 29 Янв 2012 03:03:27
#
Mesh
Висит там "FRAC", но и сам заголовок больше стандартного, а integer скорей всего, дробь потом из 2-х частей собирается, только может быть там от одного до нескольких байт, смотря сколько знаков было задумано. Тут точно, если делать, то лучше спросить, думаю не секрет это. В идеале, конечно, посмотреть описание формата SA, когда все "обкатают", добавят в инструкцию, имхо.
|
|
Дата: 29 Янв 2012 03:11:15 · Поправил: Mesh (29 Янв 2012 03:22:05)
#
Programmist Ну да FRAC он и есть имхо. Туда дробная часть и пишется в интежер. Эт я уже посмотрел. А что такое сам заголовок больше стандартного? Стандартный это какой? Без тегов что ли какие видеть yне привыкли? Дык посмотрите у музыкальных шкатулок, типо тех где из сэмплов лупов композиции лепят, на их "стандартные заголовки" там реал опухнуть можно, самих то тэгов даж стандартных море разливанное. :)
|
|
Дата: 29 Янв 2012 03:21:36
#
Mesh
Так оно и есть, что опухнуть можно, стандартный, наверно, это минимально необходимый. Ну вот, если сделают описание формата SA, от него и буду отталкиваться.
|
|
Дата: 29 Янв 2012 03:23:26
#
Programmist Вобще имхо, стандартный это то, что по стандарту, а не то что видеть бы не хотелось, а оно есть. :-) Ну да ладно.
|
|
Дата: 31 Янв 2012 23:07:49 · Поправил: Sinus (31 Янв 2012 23:29:56)
#
Programmist Что-то заглохла тема
Можно сказать, завершён важный практический этап: ведь Вы с mikasa76 создали действующий программный продукт, RadioKoteg его успешно испытал. Всем спасибо! ))
Поскольку Вы используете готовые библиотеки, а в них я не копенгаген, то вряд ли смогу быть полезным на этом пути. Потихоньку изучаю азы ЦОС... На данный момент, вроде бы, научился выделять узкополосный сигнал напрямую из IQ-файла в IQ-файл, без конверсии в реал. Причём - с ФНЧ во временной области (т.е. уже без обнуления бинов FFT, за которое нас тут крепко воспитывал petr0v )
Алгоритм применяю простой. Сначала из стерео-каналов А и В делаю комплексный сигнал S = A + iB. Затем умножаю его на комплексную экспоненту, чтобы сдвинуть спектр желаемым местом на нуль. Фильтрую НЧ-фильтром. Результат прореживаю (серьёзный ресамплинг ещё предстоит осваивать... И интерполяцию, и полифазную фильтрацию...)
И научился из узкополосного IQ-сигнала демодулировать ЧМ и АМ. Формулы демодуляции просты:
http://s43.radikal.ru/i101/1201/1e/3a0b5e2a18e9.jpg
Звучание такой демодуляции, вроде, хорошее. Можно заценить: залил пару mp3-файлов на divshare (там есть mp3-плеер, можно слушать, не скачивая); в один mp3 свёл обеих тёть и тестовый ЧМ-сигнал из файла Mesh-а:
http://www.divshare.com/download/16688225-4a5
а в другой mp3 свёл одну АМ-станцию из своего старого тест-сигнала "3 станции" и два АМ-сигнала из тест-файла Mesh-а:
http://www.divshare.com/download/16688232-201 |
|
Дата: 31 Янв 2012 23:16:37 · Поправил: Sinus (31 Янв 2012 23:57:44)
#
Для желающих поиграться со всем этим делом в Маткаде-14 выкладываю на народ zip-архив, 11.4 Mb:
http://narod.ru/disk/39210536001/mathcad14_iq_tests_29_01_2012.zip.html
В этом архиве 3 папки с маткад-программками: iq->iq фильтрация, FM-демодуляция, АМ-демодуляция. Вложены и wav-файлы (включая файл Mesh-а c тестовым iq-сигналом, где есть две АМ-станции); настроено всё так, что при запуске каждого теста в той же папке возникнет файл с результатом.
Английский у меня хреновый, выкладываю подробнейшее описание этих маткад-алгоритмов (с картинками) на русском: zip-архив с pdf-файлом, 405 кб. Вроде бы, этот документ может быть интересным для всех начинающих iq-любителей; для его чтения не обязательно иметь и знать Маткад:
http://narod.ru/disk/39236048001/comments_iq_tests_29_01_2012_PDF.zip.html
Ессно, не хочу никого этим делом нагружать; всё просто так, типо хобби :)). Но критике и дальнейшим подсказкам буду всегда рад. |
|
Дата: 01 Фев 2012 16:00:21 · Поправил: Programmist (01 Фев 2012 16:18:18)
#
Sinus
Спасибо, формулы работают, добавил в Edit -> AM/FM Demodulation.
Фильтровать выход не стал, можно это сделать с помощью встроенных фильтров, но для более качественной демодуляции лучше использовать плагин mikasa76.
RadioKoteg
Добавил Formats -> Player Buffer Size (размер базового буфера проигрывателя). Если проигрыватель "тормозит", размер буфера можно увеличить.
Версия 32: http://files.mail.ru/32IQK3
з.ы.
Есть конвертер из Stereo в Mono, в частотной области, но работает не многим лучше обычного, потому, как задача решения не имеет. |
|
Дата: 02 Фев 2012 19:20:20
#
Можно сказать, завершён важный практический этап: ведь Вы с mikasa76 создали действующий программный продукт, RadioKoteg его успешно испытал. Всем спасибо! ))
его успешно испытал. Всем спасибо! ))
Programmist Баг:
1. открываю квадратуру.
2. Edit > FM Demodulation.
3. Плэй все нормально сделало ЧМ детекцию .
4. File > Save As wav
5. В итоге в файле шум.
А как из вещественного в Квадратуры? IMHO где то надо остановиться или на вещественном или на квадратурах а конвертеры как опция.
|
|
Дата: 03 Фев 2012 04:04:22
#
RadioKoteg
Это не баг, там очень сильно растет амплитуда, если она больше 100% (горит красным), то такой файл можно сохранять только, как 32 бита. 8, 16 и 24 бита с завышенной амплитудой всегда превращаются в шум.
Проигрыватель тоже воспроизводит все форматы, как 16 бит, если больше 100%, слышны сильные искажения.
А как из вещественного в Квадратуры?
Такой функции пока нет, эти два вида демодуляции только для узкополосных I/Q сигналов, перенес их в меню "Options", поправил еще какую-то мелочь не существенную.
Версия 33: http://files.mail.ru/QXB6VZ |
|
Дата: 03 Фев 2012 04:29:15
#
Programmist Понял. Спасибо.
Вопрос, как уменьшить амплитуду, увеличить понятно, клик на 10 процентов и амплитуда увеличилась на 10 процентов, а вот когда надо уменьшить?
|
|
Дата: 03 Фев 2012 05:19:52 · Поправил: Programmist (03 Фев 2012 05:41:42)
#
RadioKoteg
как уменьшить амплитуду
Точно так, как и увеличить.
Выделить весь файл (Ctrl+A) или кнопкой "A", под проигрывателем, дальше кнопка "Amp" и в появившемся окне, кнопка с нужным значением. Если выделен не весь файл, нормализация сработает только для выделенного куска. На нижней панели, белым (красным) цветом всегда отображается максимальная амплитуда всего файла. Если амплитуда меньше 10%, цвет меняется на темно-зеленый.
Кнопка "Amp?" в окне Amplitude/Fade выдаст в заголовок своей формы амплитуду выделенного куска.
Аналогично работает Fade, для убирания "хвостов" в начале и конце файла, только там еще можно выбрать функцию Фэйда. Треугольную, как в Куле, или по Ханну, что, имхо лучше.
Проверить все это легко на файле с белым шумом.
|
|
Дата: 03 Фев 2012 05:38:34 · Поправил: RadioKoteg (03 Фев 2012 05:46:26)
#
Programmist Доганл : -) Бывает. Думал что это увеличить на столько то а оказалось это выставить проценты между максимом и минимумом.
|
Реклама Google |
|