fprintf(file, " %ldms\n", currentTime); // time in miliseconds
61
fflush(file);
62
63
}
64
}
65
}
66
67
fclose(file);
68
return 0;
69
}
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro
У тебя же два шифта - левый и правый. Так же, как альты и контролы.
Полагаю, что один сканкод это общий VK_SHIFT, а второй VK_L(R)SHIFT, ну и аналогично.
Цитата:
FiEctro писал: Как от него избавиться?
ДА НЕ КАК!!
Просто игнорируй тот из сканкодов, который тебе неинтересен.
XaeroX
Спасибо. Действительно срёт дополнительно ещё левым альтом.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Ещё такой вопрос, как можно средствами винды выводить звук асинхронно?
Пробовал с помощью Winmm использовать PlaySound, довольно просто его вызвать, и указывать флаги на синхронную и асинхронную загрузку, однако смешиваться он не умеет.
Попробовал с помощью mciSendString, вроде то что надо, но для каждого потока он в трее вызывает отдельный ffdshow audio decoder что немного выглядит нелепо, но зато звуки смешиваются
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Мде, лучше уж тогда библиотеки внешние юзать.
Чем лучше?
Тебе проще добавить в проект зависимость, за которой придётся следить, а то и править чужие баги, или потратить один день, разобраться и написать несложный модуль, который потом можно будет при желании как угодно расширять?
Добавлено 21-02-2023 в 10:58:
Цитата:
FiEctro писал: Как это должно работать?
Да в общем-то так же, как работает любой микшер - хоть виндовский WaveMapper или DirectSound, хоть линуксовая ALSA, хоть маковский CoreAudio.
1. Открываешь устройство
2. Устанавливаешь нужные параметры вывода
3. Заполняешь буферы семплами из твоих wav-файлов (в отдельном потоке или в специальной апдейт-функции)
4. Засылаешь буферы в устройство
А, ну придётся ещё код загрузки wav-файлов написать. И ресемплирования при необходимости. В кваке это всё тоже есть.
XaeroX писал: Тебе проще добавить в проект зависимость, за которой придётся следить, а то и править чужие баги, или потратить один день, разобраться и написать несложный модуль, который потом можно будет при желании как угодно расширять?
Я не настолько хороший программист как ты думаешь
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Можно кстати поподробнее про пункт 3 и ресемплирование? Я не очень понял этот момент.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Можно кстати поподробнее про пункт 3 и ресемплирование? Я не очень понял этот момент.
Ты создаёшь буфер с определённым сэмпл-рейтом, допустим 22kHz.
А вав-файлы бывают 11, 22, 44 и 48 kHz. Тебе надо при загрузке ресемплировать звук в битрейт твоего буфера. Посмотри, как это делается в кваке, там всё предельно понятно.
В халфе, впрочем, иначе - там вав-файлы не ресемплятся, а заводится несколько буферов для каждого семпл-рейта, фреймы аудио микшируются в соответствующем буфере, а потом буферы уже микшируются в общий буфер для девайса. Ну как-то так, этот момент Дядя Миша лучше прояснит, т.к. делал подобное в ксаше.
Дядя Миша писал: FiEctro в моём понимании что карту в блокноте делать, что средствами винды выводить асинхронно звук - это одно и тоже. Может тебе на завод надо?
Ну вот я и думаю лучше либы наверное заюзать, но все же интересно как оно работает. А по поводу пойти на завод это ты разработчикам Мелкософта предложи, не моя это прихоть. Вообще виндовые либы какие то чудоковатые.
Цитата:
XaeroX писал: Ты создаёшь буфер с определённым сэмпл-рейтом, допустим 22kHz.
А вав-файлы бывают 11, 22, 44 и 48 kHz. Тебе надо при загрузке ресемплировать звук в битрейт твоего буфера. Посмотри, как это делается в кваке, там всё предельно понятно.
В халфе, впрочем, иначе - там вав-файлы не ресемплятся, а заводится несколько буферов для каждого семпл-рейта, фреймы аудио микшируются в соответствующем буфере, а потом буферы уже микшируются в общий буфер для девайса. Ну как-то так, этот момент Дядя Миша лучше прояснит, т.к. делал подобное в ксаше.
Понятно, спасибо, поковыряю, хотя скорее врядли что то пойму, в коде кваки логика для меня не очень понятная.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: А по поводу пойти на завод это ты разработчикам Мелкософта предложи, не моя это прихоть.
Ну тогда надо вообще всем разработчикам ОС предъявить, чего мелочиться. Это в какой же ОС ты из коробки видел асинхронное проигрывание и микширование звуков? Самый простой вариант - DirectSound, но и он потребует кое-каких усилий.
Цитата:
FiEctro писал: лучше либы наверное заюзать
Сейчас те, кто хочет программировать, не вникая в низкий уровень, юзают SDL. Смотрел в этом направлении?
XaeroX писал: Сейчас те, кто хочет программировать, не вникая в низкий уровень, юзают SDL. Смотрел в этом направлении?
Да очень поверхностно. Кстати тоже хороший вариант.
Добавлено 21-02-2023 в 21:41:
Цитата:
XaeroX писал: Ну тогда надо вообще всем разработчикам ОС предъявить, чего мелочиться. Это в какой же ОС ты из коробки видел асинхронное проигрывание и микширование звуков?
Ну почему же оно как бы и реализовано, но как я писал выше очень странно и нелогично. Майкрософт и народ из гугла просто предлагает вызывать их напрямую что я и делал, а вы говорите что нужно писать в общий буфер. Вот и не понятно зачем они тогда людей путают?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!