Сделать скриншот - минутное дело: нажал кнопку, и готово, а вот со звуком всё иначе. Пока запустишь редактор, дождёшься загрузки и найдёшь нужную кнопку - момент уже упущен. Мне хотелось, чтобы со звуком было так же легко: услышал, нажал хоткей, забрал файл - и всё это без установки громоздких программ, где ненужных функций больше, чем у меня терпения искать среди них кнопку записи.
Такая программа сидит в моём трее уже несколько лет. Когда-то я набросал её на Delphi, и она тихо висела в памяти, записывая звук по горячей клавише. Но старые баги никуда не делись: уведомления зависали, окно не сворачивалось, да и просто не хватало нормальной работы с каналами. И вот на днях я решил за неё взяться - не латать старый полумёртвый код, а переписать всё с нуля на C#.
Принцип оставил тот же: «нажал → нажал → забрал готовый файл». Но переписанный код развязал руки для нормальной работы с аудио. Система и микрофон теперь пишутся параллельно, причём их можно развести по разным дорожкам, чтобы работать с голосом в отрыве от остального звука.
Появились и удобные детали - например, короткий сигнал перед стартом. Правда, этот писк неизбежно попадал в сам аудиофайл, поэтому пришлось научить движок узнавать собственный сигнал и вычитать его из записи, не вырезая то, что звучало на тот момент фоном.
Но главное, что принесло обновление - фоновый буфер. Программа теперь умеет держать в памяти последние несколько секунд эфира. Бывает же: услышал что-то интересное, и в голове мелькает «надо было записать». Теперь это делается одной настройкой: жмёшь кнопку, и программа сохраняет то, что уже прозвучало.
И в этом есть своя радость: собрать лёгкую вещь ровно под ту задачу, которая тебе нужна. Не ставить очередной неповоротливый комбайн, который тормозит систему и раздражает чужой логикой, а выточить инструмент по собственной мерке. Закинул в трей - и пользуешься.
