Аттракцион невиданной щедрости от профессионального разработчика по случаю круглых дат [сбор заявок окончен]
Всем добрый день.
Картинка для привлечения внимания к посту
Теперь о деле :-)
Сегодня узнал, что MLP уже восемь лет как услаждает взор и слух преданных фанатов.
С другой стороны, в сентябре вот только отмечал менее значимую в общественном смысле, но более важную личную дату — пять лет, как я активно участвую в жизни фэндома. Многое было сделано, многое не успел сделать, многое еще делается… но суть в том, что по совокупности этих факторов, а также с учетом нескольких дополнительных обстоятельств:
1) Моявайфу любимая пони — Элемент Щедрости.
2) Моя кьютимарка — единичка и нолик, из которых я всегда могу слепить целую Вселенную, а потом еще одну на запас.
3) Мой жизненный план — ну не то чтобы крызис, дела-то делаются, клиенты водятся, монеты собираются — но некоторая туманность ориентиров наступила, никак не могу понять, куда же мне копать, чтобы прокопаться глубже в профессию.
— так вот, по совокупности обстоятельств, я устраиваю щедрое дело, достойное леди Рарити:
Бесплатная разработка одной программы для любого участника фэндома, по его заданию и запросу. Но только одной и только для одного.
В полном соответствии с традициями белой единорожки, подобная щедрость не только будет достойна её образа, но и принесет личную пользу разработчику (мне):
1) Внезапная задача, отличающаяся от моего привычного круга заданий, пойдет мне на пользу
2) Идеи на программу, которые будут высказываться, могут меня подтолкнуть к поиску нового уже для личного/коммерческого использования
3) Продуктивно делать ПО за ноль рублей всяко лучше, чем тупить, ожидая вдохновения и направления.
Кратко об условиях акции.
1) В посте или в личку (но предпочтительно в посте) вы высказываетесь, какую программу вы бы хотели получить.
2) Тематика — любая. Я достаточно квалифицирован, чтобы осилить практически любую предметную область.
3) К заявке должно быть приложено краткое описание в свободной форме — что программа должна уметь, как работать, если будут примеры входных/выходных данных — отлично. Расписывать во всех деталях не нужно, см. пункт 4.
4) По истечению срока сбора заявок (до 31.10.2018 включительно), я выбираю наиболее мне понравившееся предложение и начинаю работу с заказчиком, путем личных переговоров, уточнения задания и т.д. — обычный цикл разработки.
5) Когда разработка завершена — счастливый заказчик получает программу, а я делаю пост об этом с отчетом.
Что касается прав на готовую программу — заказчик получает право на бессрочную и свободную эксплуатацию ПО безо всяких ограничений, кроме ограничений на модификацию. Я же сохраняю за собой право использовать программу в личной и коммерческой деятельности, дорабатывать её, извлекать пользу для себя и т.д. Текст лицензии подготовлю позже.
Главный вопрос — что же вообще можно заказать, для примера?
Ну тут большой простор для фантазии, даже в условиях целевого фэндомного использования (а этим условия не ограничивают, просто привожу наиболее наглядно).
Любите участвовать в бредациях и хотите специализированный редактор, чтобы не мучать GIMP облачками и вставками фреймов? Отличная идея.
Пишете клопфики и страдаете от отсутствия нормального редактора малых литературных форм для Windows? Превосходно.
Переводите комиксы и уже запутались в авторах/переводах/исходниках/готовых файлах, которые разбросаны по диску? ОК, база данных с классификатором файлов ждет вас.
Как уже упоминал, предметная область не ограничена понилюбскими делами.
Например, вы работаете в лаборатории, вам нужно анализировать файлы-снимки тканей на предмет характерных фактур, а специализированный софт стоит сотни зелени. Или у вас есть небольшая частная практика, но ни один существующий органайзер со списком клиентов вас так и не устроил. Скажем, вы всегда хотели играть в тетрис, где вместо бездушных кубиков будут падать фигурные поняши.
Всё это — реальные задачи для разработки, не слишком сложные, но достаточно интересные.
Не бойтесь, если ваша идея будет сложной — в конце концов, если я не буду уверен, что смогу выполнить, я просто не выберу её в качестве цели разработки. А может, и выберу, если она вам кажется сложной, а мне нет.
Спасибо за внимание, ожидаю заданий на разработку.
Картинка для привлечения внимания к посту
Теперь о деле :-)
Сегодня узнал, что MLP уже восемь лет как услаждает взор и слух преданных фанатов.
С другой стороны, в сентябре вот только отмечал менее значимую в общественном смысле, но более важную личную дату — пять лет, как я активно участвую в жизни фэндома. Многое было сделано, многое не успел сделать, многое еще делается… но суть в том, что по совокупности этих факторов, а также с учетом нескольких дополнительных обстоятельств:
1) Моя
2) Моя кьютимарка — единичка и нолик, из которых я всегда могу слепить целую Вселенную, а потом еще одну на запас.
3) Мой жизненный план — ну не то чтобы крызис, дела-то делаются, клиенты водятся, монеты собираются — но некоторая туманность ориентиров наступила, никак не могу понять, куда же мне копать, чтобы прокопаться глубже в профессию.
— так вот, по совокупности обстоятельств, я устраиваю щедрое дело, достойное леди Рарити:
Бесплатная разработка одной программы для любого участника фэндома, по его заданию и запросу. Но только одной и только для одного.
В полном соответствии с традициями белой единорожки, подобная щедрость не только будет достойна её образа, но и принесет личную пользу разработчику (мне):
1) Внезапная задача, отличающаяся от моего привычного круга заданий, пойдет мне на пользу
2) Идеи на программу, которые будут высказываться, могут меня подтолкнуть к поиску нового уже для личного/коммерческого использования
3) Продуктивно делать ПО за ноль рублей всяко лучше, чем тупить, ожидая вдохновения и направления.
Кратко об условиях акции.
1) В посте или в личку (но предпочтительно в посте) вы высказываетесь, какую программу вы бы хотели получить.
2) Тематика — любая. Я достаточно квалифицирован, чтобы осилить практически любую предметную область.
3) К заявке должно быть приложено краткое описание в свободной форме — что программа должна уметь, как работать, если будут примеры входных/выходных данных — отлично. Расписывать во всех деталях не нужно, см. пункт 4.
4) По истечению срока сбора заявок (до 31.10.2018 включительно), я выбираю наиболее мне понравившееся предложение и начинаю работу с заказчиком, путем личных переговоров, уточнения задания и т.д. — обычный цикл разработки.
5) Когда разработка завершена — счастливый заказчик получает программу, а я делаю пост об этом с отчетом.
Что касается прав на готовую программу — заказчик получает право на бессрочную и свободную эксплуатацию ПО безо всяких ограничений, кроме ограничений на модификацию. Я же сохраняю за собой право использовать программу в личной и коммерческой деятельности, дорабатывать её, извлекать пользу для себя и т.д. Текст лицензии подготовлю позже.
Главный вопрос — что же вообще можно заказать, для примера?
Ну тут большой простор для фантазии, даже в условиях целевого фэндомного использования (а этим условия не ограничивают, просто привожу наиболее наглядно).
Любите участвовать в бредациях и хотите специализированный редактор, чтобы не мучать GIMP облачками и вставками фреймов? Отличная идея.
Пишете клопфики и страдаете от отсутствия нормального редактора малых литературных форм для Windows? Превосходно.
Переводите комиксы и уже запутались в авторах/переводах/исходниках/готовых файлах, которые разбросаны по диску? ОК, база данных с классификатором файлов ждет вас.
Как уже упоминал, предметная область не ограничена понилюбскими делами.
Например, вы работаете в лаборатории, вам нужно анализировать файлы-снимки тканей на предмет характерных фактур, а специализированный софт стоит сотни зелени. Или у вас есть небольшая частная практика, но ни один существующий органайзер со списком клиентов вас так и не устроил. Скажем, вы всегда хотели играть в тетрис, где вместо бездушных кубиков будут падать фигурные поняши.
Всё это — реальные задачи для разработки, не слишком сложные, но достаточно интересные.
Не бойтесь, если ваша идея будет сложной — в конце концов, если я не буду уверен, что смогу выполнить, я просто не выберу её в качестве цели разработки. А может, и выберу, если она вам кажется сложной, а мне нет.
Спасибо за внимание, ожидаю заданий на разработку.
106 комментариев
Просто смысла в этом обычно немного — всё равно за модификациями всегда обращаются к разработчику.
А может, и выложу. Раскладывать сокровища дракона я предпочитаю после похода за ними, а не перед боем с драконом.
Ну, ежели других желающих не будет, можешь мне прикрутить на тумбу донатную кнопку? Знаю это сложно назвать разработкой программы и это может любой быдлокодер, но раз уж предлагают забесплатно.
Если ничего больше не предложат — сделаю :-)
На самом деле все, чего бы мне хотелось бы — поисковик на ФП по типу бузеровского для ЕП, но уверен, что табунчане предложат тебе что нибудь поинтресней и полезней…
Удачи в начинаниях, твоя белоснежная вайфу тобой гордится
Там же есть встроенный поиск, зачем внешний? Табун и форум ЕП, понятно дело, лишены такой роскоши.
А зачем он на флудильне под названием ФП — конечно, другой вопрос.
Тогда хочу я красивый редактор графов. Чтобы ему на вход даёшь, скажем, graphml, и параметры построения, а он сам оптимальную топологию нашёл бы, нарисовал, порты бы расставил, покрасил бы заданным в файле образом и проименовал рёбра. А пользователь может приближать, удалять, дублировать вершины да мышкой новые связи добавлять. Я джва года жду такую программу.
Я пытался сделать подобное, когда пилил свой редактор блок-схем, вышло так себе.
Впрочем, заявка более чем интересная, спасибо. Отмечу в мыслях.
Получается фигня, покажите вашему программисту GEM algorithm
www.springerlink.com/index/Y4H746K55233W685.pdf
citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.113.9565&rep=rep1&type=pdf
получается вот такое
www.youtube.com/watch?v=IC4WV_tNTRU
www.youtube.com/watch?v=8dpEZWygdEc
2012 год
tabun.everypony.ru/blog/computers/41286.html
…
Вообще, у меня есть много угарных идей, но я ловлю себя на мысли что было бы прикольнее написать самой.
Если тебе совсем нехуй делать и ты хочешь ЧЕЛЛЕНДЖА, можешь попробовать отреверсить мою древнюю студенческую поделку для винды на крестах.
Это лютый трешак, чад кутежа и дичайший угар во мгле ада, например, написанный неразумным школьником, но он очень маленький, и в какой-то степени мне дорог :)
Я просто сурцы потеряла, когда и при каких обстоятельствах уже не помню.
Потерянный исходник — сочувствую, сам прохлопал некоторые свои поделки середины 90-х, практической ценности там ноль, но они были мне дороги как память о первых шагах :-)
Смотри пост. Работы у меня полно, просто ищу новые ходы, чтобы встряхнуть себя.
Ну, в общем, если захочешь поразмахивать дизассемблером, могу скинуть.
Ых, жалко только мои гениальные названия переменных транслитом уже не вернуть.
Хочешь повозиться с захватом системного звука, его обработкой и отправкой результата в виртуальный COM порт с красивым результатом?
За деталями жмякай сюда. Будет интересно, обещаю! )У меня вот такие штуки в некотором количестве:
Контроллеры в них собственной разработки и реализации:
У некоторых ребят эти вещи уже есть (например у SDreamExplorerS). Задумка интересная тем, что контроллер управляет 5-ю зонами подсветки с 16-ти битной глубиной каждого канала. В него встроен синтезатор различных эффектов, хотя софт по управлению им не очень то и удобен:
Штука красивая, гифку я сюда цеплять не буду. Если интересно — скину видео в ЛС. Народ тащится.
Теперь суть:
Контроллер (собран на ATtiny2313 и подключен к компу через FT232RL) содержит встроенный синтезатор с памятью (может работать в оффлайн режиме), но есть поддержка и RAW потока с порта, для которой и нужно либо модифицировать текущую утилиту, либо написать свой софт. Я сам кодер, но высокоуровневые вещи, типа графического интерфейса, и использования библиотек для захвата системных звуков и т.п. — не моё. Я хочу выводить на эти акрилайты цветомузыку, при чём алгоритм преобразования звуковых семплов в RGB и возню с протоколом я напишу сам (или погружу тебя в основы ЦОС и научу писать быстрые фильтры). Единственная тонкость, которая пугает того же Свимика — протокол времязависимый. Концом пакета считается таймаут в передаче данных, и системный драйвер COM порта можно настроить нужным образом, в обход латентности ОС. Мне хотелось бы раздать народу симпатичный софт, чтоб раскрыть потенциал этих акрилайтов. Исходники к утилите наверняка есть у Свимика, хотя он и говорил «нихачу показывать тебе этот говнокод, лучше сам поправлю что тебе там надо». Данная задача будет скорее совместной, нежели заказом заказчика, ну и я могу подогнать 1 такой акрилайт (их всего сделано 13 штук).
Как ты мог уже понять — я разработчик микропроцессорной и импульсной силовой радиоэлектроники. Мог бы тоже написать «профессиональный», но чёт стесняюсь…
Это безмерно круто, учитывая то, что я сам работаю немного с цифровой электроникой.
Думаю, у твоей заявки есть очень жирные шансы.
Ну вот а это как раз по моей части.
Реально невиданная щедрость)
Ну дык, я стараюсь не распыляться на весь мир, а концентрирую свои усилия на близких мне людях. Семье, друзьях, товарищах, на худой конец — фэндому, который был мне как второй дом и всё такое.
И самое главное — нужно понимать суть задачи, а для этого хорошо бы самому поработать в данной области хоть немного.
Есть мнение, что весь софт был написан где-то к 2000-му году, а вся работа программистов дальнейшая уже проистекает из «решение есть, но хочу, чтобы вон та хреновина была овальной и зеленой».
(Если это изобретение велосипеда — будьте добры, ткните меня носом в существующий xml-редактор с таким функционалом.)
Но ведь XML не является формой хранения табличных данных. Это скорее древовидные структуры.
Ну вот смотри.
Это справочник? Да.
Что там делает Пинки с пряностью внутри Твайлайт? Хз, но структура документа корректная и редактор должен уметь это как-то обработать. Либо полагать, что в каждом элементе сидит Пинки значением по умолчанию.
Задачка, конечно, из засадных, но почему нет?
Записал.
Даже, ещё точнее, nam_smok:=inn+'символ_пробела'+nam_smok
Короче, я думаю, что готовых решений тут нет по двум причинам:
1) Частным лицам XML не нужен
2) В организациях есть программисты — если ты в понедельник оторвешься от своего файла и посмотришь вокруг, ты однозначно увидишь какого-то бородатого мальчика в свитере и в очках, который занят поглощением кофе. Вон он должен выполнить такую замену — а написав ли фильтр или хардкорно закодировав регулярное выражение, уже зависит от квалификации мальчика.
При всём при том, заявку сохранил — может, и позабавлюсь.
СпойлерВ таргет вписываем имя тега, например, nam_smok
В expression вписываем желаемый результат, например, %inn% %nam_smok% — всё, что обёрнуто в % считается именем тега, значение которого нужно подставить. Поиск идёт от сиблингов заменяемого вверх до корня.
Спасибо, попробую потестить.
За сим хотеть «программку» умеющую с входной «битмап»(желательно ещё и вектор) картинки выдавала готовый «G-код» для «шкрябанья»(гравировки неподвижным алмазом) этой самой картинки на ЧПУ станке. Особенность должно быть задаваемый пользователем наклон(и тип) штриховки в зависимости от цвета.
Да, я лентяй, мне лень вручную «векторить» битмапы и так-же вручную изголяться с выбором угла(и типа) штриховки для каждого отдельного цвета.
Сугубо для себя любимого ;)
А вот по «трассировке» и захвату цвета не подскажу :(
Суть тут — «обойти» векторный контур и «заштриховать» внутри контура соответствующей цвету штриховке.
Общем — нечто вот такое: www.cnc-club.ru/forum/viewtopic.php?f=16&t=12096 но с функционалом штриховки.
В итоге должно получатся нечто похожее: www.deviantart.com/download/394698416/best_pony_dog_tag_pendants_by_chaoticbrony-d6izr8w.png — осторожно большая картинке.
Я правильно понимаю, что разные цвета должны давать разный тип штриховки? То есть, например, красный рисует как штрих сверху слева — вниз вправо, зеленый наоборот, а синий, к примеру, штрихует горизонтальными черточками?
Звеняюсь за картинку: www.deviantart.com/silverslinger/art/Best-Pony-Dog-Tag-Pendants-394698416
Яркий пример различной «штриховки».
Записал, шансы очень высоки — но, конечно, до окончания срока сбора заявок обещать ничего не буду.
да — для нормальной штриховки вектор должен быть замкнутым, и внутрях штрихи в виде «змейки» с огибающей край, либо отрезки векторов «от-до» без выхода за пределы области.
Например, ЧБ растр с диффузией ошибки выглядит вот так:
Большая картинко...
Просто как альтернатива. Да, это прямо с растровой картинки гравирует станок. Лазерные принтеры тоже так печатают изображения, и газеты… Алгоритмов много всяких, в т.ч. и узорных. Это всё конвертируется ж автоматически в ЧБ версию изображения с псевдотонированием, а для конвертирования ЧБ растра в G-код разве нет готового софта?
Для лазера софт в разы проще по причине возможности ГИБКО управлять мощностью лазера, ну или как минимум включать-выключать излучение с частотой не подвластной обычной «игле». Плюс лазер потоньше иглы будет в плане «рисунка» — там где лазер проложит 3-4 «дороги», игла еле-еле одну вышкрябает!
Да, я-бы в идеале прикупил «маркиратор» и не занимался «любовью» с мозгами. НО — у меня, к сожалению, нет лишних 350-400 тысяч рублей… Зато есть станок с ЧПУ и возможность работать с алмазной иглой ;)
Учитывая то, что мой уровень веб-разработки находится где-то между «везучий дилетант» и «ловкий любитель» — попытка внести правки в код приведет к подобному.
Табун после моего вмешательства
Расходимся, посоны, всё уже понятно.
writercenter.ru/blog/useful-stuff/malyj-tipovoj-nabor-dlja-sozdanija-genialnyh-proizvedenij-v-stile-fentezi.html
А почему в шесть раз?
А так как они страшно человекоанатомичны, то выкройки от Барби заставляют скакать с линейками, мерилами и бумагой, пытаясь сделать хоть что-то отдаленно близкое
Пример файла выкройки можно?
Вообще, это основной хлеб разработчика. Потому что мозг, обученный программированию, неплохо войдет и в предметную область на уровне общих понятий и задач, а вот обучиться программированию куда сложнее.
К тому же, например, несколько веков лет назад не было программистов — и ничего, от этого никто не умер (наверное).
Смотря что понимать под «неплохо». Мастер своего дела занимается им длительное время и от души, имеет больше опыта и вдохновения для идей. Так что он по-любому лучше разбирается в этой области — если, конечно, программист не такой же профессионал в той же области, но это уже другая история. Но если программист пытается сравниться с Мастерами самых разных областей и у него это успешно выходит, то это уже какой-то Сверхчеловек и тут не программированием на заказ заниматься нужно
Вызывать математические функции, отображать формочки и писать в файлы — не сложно. Но, к сожалению, в некоторых местах может быть правда сложно — например, программирование микроконтроллеров или цифровой логики или разработка железок (элементов и/или их сборок). С другой стороны, человек, занимающийся разработкой железок, сам по себе в какой-то степени технарь *сорри, плохо сформулировал эту свою мысль, а время на изменение коммента ограничено*. Но в любом случае сейчас действует относительно высокий порог вхождения, но это как раз потому что сейчас все люди разделены на обычных людей и программистов, для последних знать стопицот языков программирования и протоколов и разбираться в железках считается нормой просто потому что они программисты, а для обычных людей это тёмный лес. Потому что для обычных людей нет адекватных инструментов и стандартов. А это так потому что озвученная мною позиция (она сама или любая другая совместимая с ней) находится не в доминантном состоянии.
А, ну и да, добро пожаловать в реальный мир: программист — тот самый сверхчеловек, который обучен обучаться чему угодно насколько угодно сложному, это и есть его основаная задача. И порог вхождения никогда низким не станет, такая работа всегда требовала и требует интеллекта, далеко превосходящего средний по больничке.
Так и будет — владение ЯП общего назначения для решения своих внутренних задач станет чем-то вроде грамотности в 19 веке — не всегда нужно, но здорово помогает в жизни.
А это и не требуется. Я не смогу составлять расписание так, как это делает многолетний диспетчер, но я смогу понять правила и сделать софт ему в помощь.
Да и для общего развития очень полезная штука. Учит мыслить иначе, заставляет изучать весь этот матан, который я так не любил в школе и т.п.
OK, не совсем все, а те, кто не отказался бы от автоматизации. Т.к. если творец решает делать что-то вручную и без автоматизации, то и программа тут вряд нужна.
1) прикрутить на тумбу донатную кнопку
2) внешний поисковик для небольшого сайта
3) красивый редактор графов
4) игрушка сокобан в консоли
5) захват системного звука, его обработка и отправка результата в виртуальный COM порт с красивым результатом
6) новый пад для anon2anon
7) редактор xml-файлов
8) генерация готового «G-кода» по картинке для станка
9) программа для ужимания выкройки в шесть раз
10) программа для пересчёта масштабов печати для 3D-принтера
11) программа для создания списка квестов
12) редактор, чтобы делать 3D модельки из кубиков
13) понифицированная ролевая онлайн игра «Манчкин FoE»
14) генератор хокку про пони
Я доволен богатством и разнообразием заявок, кое-что уже для себя полезное вынес, но сбор продолжится до 31 октября включительно.
Вроде как сокобан на ncurses не трудно найти…
Выбрать было реально трудно. Но нужно.
Итак, мой выбор из полутора десятка заявок:
Редактор, чтобы делать 3D модельки из кубиков
Это задача с одной стороны, близка к тому, чем я в настоящее время пытаюсь заниматься, позволит мне лучше углубиться в графику DirectX/OpenGL, освоить некоторые приёмы и выбрать IDE для более серьезного заказа. С другой стороны, она достаточно сложна, чтобы дать мне пинок.
В ближайшее время, я свяжусь с заказчиком и начну работать над проектом.
Но это еще не всё. По итогам, я пришел к двум следствиям:
1) В сообществе есть запрос на разработку ПО, и некоторые запросы весьма серьезны.
2) Я планирую проводить подобную акцию регулярно, по мере появления у меня кусков свободного времени или хотя бы намеков на него.
Пара слов об остальных заявках.
Очень хотелось заняться заявкой:
Захват системного звука, его обработка и отправка результата в виртуальный COM порт с красивым результатом.
Не выбрал её только потому, что она потребует погружения в процесс, который я сейчас обеспечить не могу. Но именно что сейчас. Я вернусь к этой теме чуть позже.
Не менее любопытной заявкой было
Генерация готового «G-кода» по картинке для станка
остановило только то, что предметная область абсолютно новая и много времени уйдет на чтение руководств. Опять же, пока что нет возможности. Но только пока.
Еще раз спасибо всем за интересные предложения, я занимаюсь выбранной заявкой — ну а все остальные пусть не отчаиваются, NTFS может всё, но NTFS не может всё сразу.
Я предусмотрительно накомментил перед отправкой этого комментарияТо есть, не ври)Сейчас я вожусь с интересной визуализацией музыки, в данный момент рендерится. Вот эту визуализашку тоже не плохо было бы прикрутить как плагин к MPC-HC, VLC, и прочим плеерам на базе классика…
Вообще, затея интересная у тебя. По-больше бы таких добровольцев и думаю тут было бы уютнее и плодотворнее.
Да вообще я думаю, что подобное можно вынести в отдельный блог, когда профессионалы или опытные любители (а таких среди понилюбов немало) предлагают разумную бескорыстную помощь тем, кто в этом нуждается. Без фанатизма и злоупотреблений, конечно. Надо подумать над этим.
Пни меня в
задличку на следующей неделе, я тебе скелет приложения на Qt сделаю, будет вход и выход, а код конвертации данных double->RGB побайтно напишешь сам.Там работы на пару часов с библиотеками.
Не будешь, если я сделаю комментарии.
Ну вот такая функцию наполнить сможешь?
В идеале, вызов функции должен происходить раз в определённое число семплов, съеденное звуковым устройством (кушает то оно на строго фиксированной скорости). При этом это число семплов должно обеспечивать частоту вызова функции около 300Гц, что тоже сомнительно для комповой ОС, если только не крутить программку где-то в другом, не пользовательском кольце.
В примере функции не вижу такой важной вещи, как частота дискретизации. Под неё ведь рассчитываются коэффициенты фильтра. Ну и double, на мой взгляд, сильно избыточно. Какой там формат данных аудиобуфера? Вроде бы целочисленный. Мне хватит и float, нормализованного к единице на 0Дб (например, если 16 бит поток, то float L = (float)In_L/32768.0);). А ещё ведь у нас многоканальный поток, и может быть несколько устройств. К тому же их нужно ещё как-то находить и узнавать в огороде COM портов. Так что нет, это не так просто, если лезть в детали. Я бы с удовольствием это всё сам бы ковырял и тратил своё время, если б мне все эти либы и прочие WinAPI давались так же легко как микроконтроллеры…
В общем, ты просил пнуть через недельку, а не сейчас… )
Поправка — не драйвер, а микросхема порта. Которая считывает данные из буфера, а вот в буфер уже данные кладутся в пользовательском кольце, без строгой привязки к интервалам времени.
Так что если тебе нужно, чтобы скорость в COM-порт шла строго на 115 — она и будет идти с такой скоростью, а твоё прикладное ПО может просыпаться 18 раз в секунду, закидывать очередную порцию в буфер и засыпать снова, не мешая другим процессам.
Впрочем, я вижу, что задача сложнее, чем мне казалось, и это хорошо. Когда задача выглядит простой, где-то кроется засада.
В отрыве от аппаратной части — тебе нужно, чтобы по входному уровню звука (дробное число) выводился уровень 15-ти каналов (два байта)?
18 раз в секунду означает задержку в 55мс. Это очень заметно на глаз. А как потоки синхронизировать? у микросхемы UART свои часы, у звуковой карты — свои. А мы ещё и количество правок уменьшили с детерминированных 300Гц до хренпоймических 18-ти… Со стороны UART мы можем управлять паузами между пакетами, а вот повлиять на звуковой поток мы не можем. Поэтому привязываться нужно к часам звуковухи. Я пока не понимаю, каким образом это можно сделать в латентном кольце пользовательского ПО. Может, есть спец инструменты, вроде прерываний там каких-то? Вход — два канала звука (стерео). Выход — ну мне нужен открытый порт с настроенным драйвером. В него будут отправляться пакеты по 31 байт. Буфер может быть и жирнее, абы драйвер квантовал по 31 байт (32, если не поддерживает). Я попробую открыть так и настроить ещё один (два канала — два устройства).