Commit graph

70 commits

Author SHA1 Message Date
72bbdec7d9 Fix audio engine initialization 2022-10-11 17:49:22 +03:00
31e1e84c69 Support dynamically changing audio::oscillator frequency 2022-10-11 17:48:27 +03:00
6f6add1cab Add distortion effect 2022-10-08 21:31:44 +03:00
87e865d025 Make sure Karplus-Strong generated sound is the same in both channels 2022-10-08 21:31:38 +03:00
af2bab53b9 Add Karplus-Strong guitar generation algorithm 2022-10-08 19:49:11 +03:00
8048496535 Implement pitch control audio effect 2022-10-08 19:07:30 +03:00
e74f5957c0 Add frequency resampler & use it in mp3 decoder 2022-10-08 18:22:17 +03:00
e517e14986 Implement mp3 support 2022-10-08 17:42:03 +03:00
3255aaf15d Move loading raw & wav tracks from engine to free functions 2022-10-08 14:36:24 +03:00
5b0834f097 Support non-owning audio::recorder 2022-10-08 14:35:45 +03:00
ce5ccfde70 Turn audio::duplicator into a track 2022-10-08 14:16:50 +03:00
f46b080a69 Support creating audio::recorder directly from samples 2022-10-08 14:05:13 +03:00
2c59879630 Support loading WAV audio 2022-10-07 23:40:03 +03:00
f617f50930 Implement loading raw audio tracks 2022-10-07 23:05:17 +03:00
227236568b Implement audio pause control 2022-10-07 22:03:27 +03:00
81fabbbf02 Add audio callback profiling 2022-10-07 15:28:30 +03:00
a80487abbc Add audio compressor knee 2022-10-07 13:09:49 +03:00
59f83aec12 Add audio compressor 2022-10-07 11:18:38 +03:00
e7d3bc45d1 Remove linear filter from volume control, use simple multiplication instead 2022-10-06 23:30:23 +03:00
8111af2c54 Add decibel to gain converters 2022-10-06 23:30:01 +03:00
bd16679b97 Implement stereo audio volume control 2022-10-06 16:24:42 +03:00
acc2fd486e Implement looping effect 2022-10-06 15:55:14 +03:00
63f7e9c32a Implement audio::duplicator properly (using recorder) 2022-10-06 15:45:39 +03:00
e4871da0c5 Add audio::recorder 2022-10-06 15:45:23 +03:00
9d58904a66 Add truncate effect 2022-10-06 15:17:46 +03:00
3e9814aee4 Add audio::duration type & use it for effect duration parameters 2022-10-06 15:02:47 +03:00
3890fa0b02 Make audio::stream::played() atomic 2022-10-06 13:51:35 +03:00
d19c93af33 Support retrieving the number of already played samples from a stream 2022-10-06 13:12:14 +03:00
62af785c08 Support retrieving length of a stream 2022-10-06 13:05:42 +03:00
bc1bbcb306 Rename volume attack -> smoothness 2022-10-06 12:41:31 +03:00
9b3afc9865 Use channel class for main audio output 2022-10-05 22:55:30 +03:00
26b44a9fa3 Make audio channel a separate class 2022-10-05 22:55:30 +03:00
cab34558ce Support replacing a mixing channel stream 2022-10-05 22:55:30 +03:00
bb31fe79c9 Add fade in & fade out effects 2022-10-05 22:55:30 +03:00
6c213f9c45 Add audio stereo aggregator 2022-10-05 22:55:30 +03:00
d346f7b50d Add audio stream duplication 2022-10-05 22:55:30 +03:00
65f71e54a8 Reimplement basic waveforms using a complex oscillator 2022-10-05 22:55:30 +03:00
61919a264e Add silence audio stream 2022-10-05 22:55:30 +03:00
94216ce638 Add volume control effect 2022-10-05 22:55:30 +03:00
b3e583283a Audio library rewrite: re-implement engine using SDL_Audio & change API 2022-10-05 22:55:28 +03:00
061c74ea54 Log number of sound mixing channels 2022-10-02 15:50:07 +03:00
4490123a64 Support dynamically changing 3d sound source position 2022-10-02 15:18:10 +03:00
3f758e845d Add 3d mono audio effect 2022-02-25 18:52:00 +03:00
c4ead52fd6 Rename audio::convert to audio::pack and add audio::unpack 2022-02-25 18:49:47 +03:00
df2003cbf6 Support locking audio via audio::engine 2022-02-25 14:53:12 +03:00
0fa0cbbc09 Support audio::stream on_stop callback 2022-02-25 14:52:48 +03:00
425d41eae4 Remove hardcoded value of 128 in favor of MIX_MAX_VOLUME macro in audio::engine 2022-02-25 14:52:17 +03:00
3e38bb2672 Add audio::convert(sample) 2021-06-25 13:51:56 +03:00
3feb2776c1 Support owning track data 2021-06-25 13:51:51 +03:00
dd40936769 Reduce audio buffer from 4 Kb to 1/4 Kb 2021-06-25 13:45:19 +03:00