- [Breaking changes] Maven repository migrated from BinTray to Maven Central. Updated the guides and related documentation. Also, the
filesystems
andmetrics
projects naming has changed to fit under the maven group IDio.wavebeans
- [Breaking changes] SampleArray renamed to SampleVector as well as it has wider API and usage overall.
- [Breaking changes] Now based on Kotlin 1.4. Previous Kotlin versions are not guaranteed to work.
- Kotlin 1.4.21
- [ #31 ] Flatten operation.
- [ #86 ] Managing and controlling WAV and CSV outputs
- Output as a function
- Inverse FFT implementation
- Window functions are available as separate convenience functions
- Resample operation
- An automatic resampling for wav-file inputs
- Monitoring: metrics system, internal collectors and Prometheus exporter. More in docs.
- Improvements on SampleVector type, i.e. arithmetic operation with scalars, an operation on two non-nullable vector gets non-nullable result.
- [ #82 ] Concatenation operation
- File systems support:
- File System abstraction for a better support of different location types of operations on files.
- DropBox implementation as File System, follow usage guide.
- HTTP Service improvements:
- [ #62 ] HTTP API improvements. Audio and Table service no longer require some parameters (sampleRate, sourceType) which can be inferred from the table itself.
- HTTP service now may stream data out of the table with the help of Audio Service.
- HTTP Service is CORS-enabled
- Table Output improvements:
- If the table is based on finite stream the audio streaming to support the end of the stream as well.
- Specific Table API for Samples and SampleArrays
- Table implementation can now be provided as a parameter.
- Introduced remote table driver implementation and leveraging it in HTTP service, so now HTTP service may provide access to tables while running in distributed mode. More details in documentation
- Better contextual documentation for Table Output.
- Other:
- Introduced SampleArray type for performance optimization of certain use cases.
- [ #59 ] Switched internal communication to gRPC.
- [Bugfix] 24bit wave file storing and fetching hasn't been working properly.
- [Bugfix] The table output is not correctly measuring time markers for complex objects
- [Internal] Wav Writer slighly refactored to be more reusable in different parts of the system.
Entering the new era with actual distributed processing. Now it's still Work In Progress though have some abilities to play around with.
- The first version of evaluation in Distributed mode. Follow the docs.
- Proper multi-threaded mode that doesn't require serialization in place. Follow the docs.
- [ #52 ] Custom class that requires measurement needs to implement
Measured
interface. See updated section of documentation - A first version of Developer zone -- a bunch of documents explaining ideas and architecture behind WaveBeans.
- Execution: Breaking changes
Overseer.eval()
now returns different type of result. Follow docs - CLI: Using Kotlin Scripting as main engine. No need to install Kotlin SDK anymore
- Support of different window functions:
- Documentation
- Implementation for Sample type:
- Generic implementation for any type
- Better support for types using through HTTP/Table service, distributed execution and measuring for different purposes:
FftSample
Window<T>
List<Double>
- Detecting valid classloader depending on the environment you're running in (i.e. regular app, Jupyter, scripting, etc)
- Kotlin version upgrade to 1.3.70
- WaveBeans API is no longer exposing Kotlin Experimental API.
- CLI: Using kotlinc to compile script.
- Documentation: restructured to publish on wavebeans.io
- HTTP API: introduced HTTP interface for accessing internal resources
- Table: added querying over HTTP API
- Inputs: using List as input
- Operations: merge operation can merge streams of different types
- Output: writing samples to in-memory table for later querying
This is the very first release of WaveBeans. It is considered to be Alpha version -- free to use but without any guarantees regarding quality and if API remains the same.
What's being released:
- Inputs:
- Operations:
- Outputs