freenode/#shirakumo - IRC Chatlog
Search
12:13:54
Shinmera
gingerale: mood: Once you're around: why kind of operations would you usually expect to be able to do easily with a sound system, beyond being able to say "start playing this" and "stop playing that" or "loop this indefinitely".
14:00:05
gingerale
Crossfade, loop from position x instead of beginning.. Will have to think on it proper but those are from the top of my head.
14:03:01
Shinmera
But if you want a bit more control you'd want to manage the mixer pipeline much more closely.
14:03:32
Shinmera
The two approaches are somewhat fundamentally incompatible, because in the former case the system has to assume a lot of properties in order to provide the convenience
14:11:55
gingerale
Separate libraries perhaps? The more higher abstraction built on top of the other.
14:12:53
Shinmera
And the problem is more that the line between just wanting a simple mixer and an actual audio system is blurred very quickly.
14:22:17
Shinmera
I mean, I'd like to have it, but it's something that would be part of the mixer pipeline rather than a specific property of the sound system
14:27:23
gingerale
I looked and asked around. Other features would be "pause" quite obviously, "pitch", and perhaps "stereo pan" or "3d position". I also hear a lot of recommendations for looking into how TurtleBrains did their audio system. As it's supposedly "absolute pleasure to work with."
14:28:30
Shinmera
If you just want to pan you add a "general" segment after the source. If youw ant 3d audio you use a "space" segment instead of a "linear mixer" segment.
14:35:46
Shinmera
The TurtleBrains API seems extrmeely minimal. Nothing more than just "create a sound" "play it" and then for each sound "start stop" "volume" "pitch"
14:45:48
gingerale
Hmm.. Yeah, I suppose it assumes you do all the mixing and effects elsewhere into an audio file
14:46:34
Shinmera
Eg when sonic goes fæst, you want a distortion and tonal shift applied when it happens
15:00:55
mood
Shinmera: start, stop, fade in/out, and seeking. That pretty much what I can come up with
15:02:34
Shinmera
The approach with mixed/harmony is that you should lay out a pipeline that fits waht you need once, and then not change it.
15:02:55
Shinmera
because compiling the pipeline needs to do graph stuff, buffer allocation, etc, and that's not real-time suitable.
15:07:20
Shinmera
You could get the same as SoLoud by allocating a fixed number of "filter slots" that by default are a noop to each source and mixer.
15:09:52
Shinmera
then bake all effect segments into the pipeline as usual and only activate them as needed.
15:22:13
Shinmera
Hm, actually it would be good to have an on/off switch for every segment in general.
15:28:42
Shinmera
I can't just not call the mix method on the segment, because that would leave stale data in the buffers.
15:30:16
Shinmera
But I also don't like the idea of complicating the average case of forcing every segment to implement an off switch
17:38:43
Shinmera
Another thing that would be useful is having volume control directly on source/drain channels.
17:39:51
Shinmera
But currently the buffer_to/from_channel functions don't take a volume parameter and are publicly exposed
17:42:30
Shinmera
You know, if I could actually compile together mix functions at runtime this could be a lot sweeter still, since often times the modifications are in-place and could be rolled toegether into a single loop when in a chain.