I think it's a package of types for defining samples, not a collection of types which are sampled, so I don't think that would be clearer (unless I'm misunderstanding what the package is for).
On Sun, Mar 20, 2016 at 7:10 AM, Tony Kelman <[email protected]> wrote: > Would SampledTypes maybe be a bit clearer? Otherwise it reads a bit like > it would contain examples. > > > > On Sunday, March 20, 2016 at 2:31:28 AM UTC-7, Spencer Russell wrote: >> >> Hey there, Julians. >> >> So AudioIO has been languishing for some time now, and I’ve been busily >> working away at the next generation. One of the issues with AudioIO is that >> it was a lot to swallow if you just wanted to play or record some audio. >> I’ve been focusing on getting the fundamental APIs right, so that the fancy >> stuff can be built on top. >> >> There’s a new JuliaAudio <https://github.com/JuliaAudio> organization and >> 5 shiny new packages. They’re still pretty young, but most of them have >> good test coverage. I’m planning on registering to METADATA soon, but I >> wanted to solicit some feedback first. >> >> SampleTypes.jl <https://github.com/JuliaAudio/SampleTypes.jl> is the >> most important as it defines the architecture that glues together the rest >> of the packages. It defines a set of stream and buffer types that should >> make it easy to move sampled data around. It’s called SampleTypes instead >> of AudioTypes because it should be useful for any sort of >> regularly-sampled, multi-channel data (e.g. complex samples from an SDR, >> multi-channel EEG, etc.). The types are sample-rate aware, and the >> samplerate can be stored in real units using SIUnits.jl. That allows cool >> features like reading in data using seconds instead of samples. >> >> Part of the idea with SampleTypes is to make it really easy to plug in a >> streaming audio backend, for instance SampleTypes handles conversion >> between formats, channel counts, and sample rates (currently just linear >> interpolation), so the underlying device libraries don’t have to. SampleBuf >> (the buffer type) is an AbstractArray, and it should be pretty drop-in >> replaceable to normal Arrays, but with extra goodies. If there are cases >> where it doesn’t act like an Array please file an Issue. >> >> LibSndFile.jl <https://github.com/JuliaAudio/LibSndFile.jl> and >> PortAudio.jl <https://github.com/JuliaAudio/PortAudio.jl> used to be >> part of AudioIO, but are now separate packages. They wrap well-established >> cross-platform C libraries for interacting with files and real-time audio >> devices, respectively. >> >> LibSndFile has been designed to work with FileIO, so loading a file is as >> easy at `load(“myfile.wav”)` and it will figure out the format from the >> extension and magic bytes in the file header. >> >> PortAudio.jl has been massively simplified from what was in AudioIO. Test >> coverage is at 95%, but because PortAudio doesn’t provide a way to simulate >> input the tests aren’t very strong. They also don’t run on Travis. >> >> JACKAudio.jl <https://github.com/JuliaAudio/JACKAudio.jl> is a wrapper >> for libjack, a great audio routing tool designed for low-latency, pro audio >> applications. Unfortunately we’re not yet at the point where we can get >> super low latency from Julia, but it’s working pretty well now and I think >> there’s still room to tune it for better performance. >> >> RingBuffers.jl <https://github.com/JuliaAudio/RingBuffers.jl> is a small >> utility package that provides the RingBuffer type. It’s a fixed-size >> multi-channel circular ringbuffer with configurable overflow/underflow >> behavior. It uses normal Arrays and is not specific to this architecture, >> except that is assumes each channel of data is a column of a 2D Array. >> >> Here’s a screenshot from the PortAudio README that gives a good flavor >> for the sort of things these packages can do together: >> >> >> Please kick the tires and let me know what doesn’t work or is confusing. >> Also, if you maintain an audio-related package and want to plug into this >> architecture, I’d be happy to start growing the JuliaAudio organization >> both in maintainers and packages. >> >> -s >> >
