Пример аудиоплеера с визуализацией на Qt

Изменено:
Разместил: FadeDemon / Количество просмотров1`417 / FD2413-6-0

Надо сказать, мне всегда нравилось погружаться в прослушивание музыки, сопровождаемое красивой визуализацией. Когда-то я даже по этой причине открыл для себя плагин WinAmp'а — MilkDrop, а некоторое время спустя даже написал плагин для WinAmp'а, позволяющий управлять импровизированной “светомузыкой”, представляющей собой 8 светодиодов, подключенных к LPT порту. В те времена я не особенно понимал, как выглядят визуализаторы изнутри… И вот, относительно недавно, у меня возникла необходимость сдать какой-нибудь курсач, содержащий в себе Qt. Здесь меня и посетила мысль, а почему-бы мне не попробовать написать свой визуализатор? И не в виде плагина для чего-то, а в виде самодостаточного плеера. Мысль мне понравилась…


MilkDrop улыбается тебе
Рис. №1223. MilkDrop улыбается тебе. Ну или нет.

Концепция


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



Паяльная станция из спичек и желудей

Изменено:
Разместил: FadeDemon / Количество просмотров2`179 / FD2195-6-0

Недавно решил я попробовать освоить такую полезную и интересную штуку, как STM32. Даже заказал себе отладочную плату, и экземпляр контроллера STM32F101Z, с намерением собрать из него какой-нибудь девайс… Но немногим раньше этого, я был несколько озадачен новостью, что контроллеры эти бывают самое крупное, в TQFP корпусах, с шагом ноги 0.5 мм. Ну, ещё в BGA, что надо сказать, не намного приятнее. Дело всё в том, что имея в арсенале максимум 40-ваттный паяльник с дефолтным жалом, мне мой контроллер предстояло как-то паять. Нет, ну, конечно это не такая уж невыполнимая задача, но вспоминая опыт пайки FT232RL, и некоторой другой мелюзги… А вдогонку еще и пайка всякой мелочёвки, вроде чип-резисторов, которая с годами всё мельче и мельче становиться… В общем, взглянув задумчиво на свой 40-ваттный паяльник, вспомнив что у меня валяется термопара от сдохшего мультиметра, и накопав в закромах кое-какой хлам, решил я быстренько превратить сей паяльник в некоторое подобие паяльной станции, с удобным миниатюрным жалом, и регулировкой температуры.


Паяльник с регулировкой температуры
Рис. №1153. Как оно выглядит


Как я оживлял EPM7128S

Изменено:
Разместил: FadeDemon / Количество просмотров3`567 / FD2015-6-0

Как-то раз, попалась мне плата, содержащая на борту весьма экзотическое сочетание компонентов. На ней уживались вместе процессор Intel i386 EX (KU80386EX33) с RAM и флешь-памятью, сигнальные процессоры ADSP-2168N в изрядном количестве, и что самое удивительное, ТТЛ микросхемы российского производства, а именно ЭКФ1533АП6 и ЭКФ1533ИР33. Конечно, сии детальки поспешили пополнить мою коллекцию, но внимание привлекло кое-что другое. На плате располагалась ПЛИС серии Altera MAX II, а именно EPM7128SLC84-15. Немного почитав о ней, и увидев, что она умеет питаться от 5 вольт и содержит 2500 логических элементов, мне невыносимо захотелось прикрутить её к своему маленькому проэктику, и заставить её приносить в нём пользу. Ну, а если мне чего-то захотелось…


Без названия
Рис. №1040. EPM7128SLC84-15. Как она выглядит.

В нашей ПЛИС мне ещё понравилось то, что она, как можно заметить, имеет корпус PLCC с большим шагом ножки, что делает возможным без большого геморроя припаять её к самодельной плате, которую, конечно-же предварительно надо будет развести. Кстати это было первое, с чего я начал.



Матрицы, векторы, или истинный путь познания OpenGL

Изменено:
Разместил: FadeDemon / Количество просмотров3`260 / FD1856-6-0

Итак, вновь выдалась пара свободных дней, что-бы что-нибудь здесь написать. А всё потому, что вчера наконец-то сдался курсач по объектно-ориентированному программированию. И так получилось, что этому курсачу выпала честь стать темой сегодняшней статьи. Казалось-бы, при чем тут OpenGL? Однако, обо-всём по порядку…


Применение OpenGL к лабораторным по ООП
Рис. №973. Применение OpenGL к лабораторным по ООП

Выбирая тему для проекта, случайно я вспомнил одну винрарную игрушку — Colony Wars: Red Sun, и захотелось мне внезапно… Да, вы абсолютно правы, написать свой космический симулятор. Который бы по графике и возможностям, как минимум не уступал той, что была на PSX, а местами, даже предоставлял несколько бо́льшие возможности. Забегая вперед, надо сказать, что полностью задумку реализовать не удалось по причине нехватки времени патологической лени, однако в результате трехнедельных каторжных трудов получилась довольно внушительная платформа, на которой, в принципе, в будущем, можно на самом деле соорудить какую-нибудь незамысловатую космическую стрелялку. Платформа получилась на столько внушительной, что о некоторых вещах мне и захотелось поделиться с общественностью. Итак, обо всём вкратце и по порядку.



О длинной арифметике, БПФ, и пользе алгоритмов

Изменено:
Разместил: FadeDemon / Количество просмотров3`647 / FD1804-6-0

Итак, началось всё с чужого курсового по программированию, темой которого являлась как раз таки длинная арифметика на целых числах, а именно, нужно было всего-то реализовать 4 базовые арифметические операции: сложение, вычитание, умножение, деление. Ну, деление с остатком, понятное дело. С реализацией проблем в общем-то не возникло, для умножения был использован обычный алгоритм умножения в столбик, с квадратичной асимптотикой, для деления классика — сдвиги и вычитания, тоже, вроде-бы работающие за квадрат. Курсовую быстро сдали, и было я забыл уже про неё, но тут посчастливилось познакомиться мне с такой штукой, как алгоритм Диффи — Хеллмана, тот самый, который используется для безопасного обмена ключами. Не знаю, что меня вдруг потянуло в криптографию. Как известно, для практической реализации этого алгоритма, нужно иметь возможность выполнять операции с длинными (порядка 300 знаков) числами, а именно, уметь очень быстро выполнять возведение в степень по модулю. И мне, естественно, было известно про готовые библиотеки, например GMP… Но первым что я вспомнил, оказалось именно та самая курсовая, и ни что иное. Вооружившись напильником, я принялся за работу. И надо сказать, работа была эта очень не простая. Но обо всём по порядку.


На первый взгляд, имея в арсенале все арифметические операции, написать функцию быстрого возведения в степень было делом плёвым. Однако сразу я столкнулся с проблемой: имеющийся класс работал с числами в десятичной системе счисления (для удобства конвертирования в строку и обратно), на один байт приходилось 10 значений, что сильно затрудняло получения значения определённого бита нашего числа в двоичной записи. А значения битов для классического алгоритма быстрого возведения в степень, как известно, необходимы. Поэтому, первым что пришлось сделать, систему счисления поменять на кратную 2, и я выбрал шестнадцатеричную, то-есть, систему с основанием 16.



Интересное
Зарядовые насосы: учимся качать электрончики... Как-то раз, в ходе моих изысканий по построению гаусс-пушки, возникла необходимость собрать несложный преобразователь напряжения 12 → 24 вольт.

Читать »»
Случайные фото