> Onda is a lightweight format defined atop Apache Arrow for storing and manipulating sets of multi-sensor, multi-channel, LPCM-encodable, annotated, time-series recordings.
> This format is intentionally language-agnostic; any consumer/producer that supports Apache Arrow can read/write Onda-compliant Arrow tables. For the sake of convenience, the Onda specification resides here (in the Onda.jl repository) and leverages the Legolas framework to both define and version the Arrow table schemas relevant to the format. Terminology
> This document uses the term...
> ..."LPCM" to refer to linear pulse code modulation, a form of signal encoding where multivariate waveforms are digitized as a series of samples uniformly spaced over time and quantized to a uniformly spaced grid.
> ..."signal" to refer to the digitized output of a process. We refer to the "devices" (physical, or virtual) that sample processes to generate signals as sensors. A signal is comprised of metadata (e.g. LPCM encoding, sensor information, channel information, sample data path/format information, etc.) and associated multi-channel sample data.
> ..."recording" to refer a collection of one or more signals recorded simultaneously over some time period.
> ..."annotation" to refer to a piece of (meta)data associated with a specific time span within a specific recording.
I'm not sure if it's directly relevant for what I do, but I invariably learn a lot from reading Julia libraries; they tend to be high-quality. Certain higher quality than the average python library. This is what I'm gonna be doing tonight after dinner :-) Thanks for sharing.