Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
baa8583
feat: Add flexible signal analysis for all waveform types
google-labs-jules[bot] Sep 25, 2025
fb5af7e
feat: Add waveform synthesis and unified error handling
google-labs-jules[bot] Sep 25, 2025
fa73aa3
feat: Add waveform synthesis, error handling, and docs
google-labs-jules[bot] Sep 25, 2025
199bd42
feat: Add dynamic synthesis, LFO modulation, and ergonomic API
google-labs-jules[bot] Sep 26, 2025
3386f90
Fix formatting and linting issues
amrali Sep 26, 2025
f814c3b
Add trunk config and fix some fmt issues
amrali Sep 26, 2025
d8e92f1
feat: Add comprehensive signal analysis module
amrali Sep 27, 2025
ae229be
refactor: Update core modules for signal analysis integration
amrali Sep 27, 2025
92dd933
build: Add dependencies for signal analysis
amrali Sep 27, 2025
2042a21
examples: Update examples to demonstrate signal analysis features
amrali Sep 27, 2025
c36cf6c
Format stft module
amrali Sep 27, 2025
75ab1d0
Fix small clippy issues
amrali Sep 27, 2025
0342030
Replace deprecated github actions in the main workflow
amrali Sep 27, 2025
9c09f37
Remove .trunk from the repo
amrali Sep 27, 2025
992f915
Upgrade publish workflow
amrali Sep 27, 2025
1029465
Fix formatting issues
amrali Sep 27, 2025
4b2a89e
Fix clippy issues
amrali Sep 27, 2025
6554793
Add trunk to .gitignore
amrali Sep 27, 2025
804d136
Fix yaml linting issues
amrali Sep 28, 2025
54de617
Consoliadate tests
amrali Sep 28, 2025
6a1e679
Add optimized quantization module with iterator-based API
amrali Oct 1, 2025
8003c4a
Simplify spectrum function signature and optimize analysis module
amrali Oct 1, 2025
ece45ba
Update core API to support float-based precision and quantization
amrali Oct 1, 2025
90464d6
Update examples and documentation for new float-based API
amrali Oct 1, 2025
fc83e38
Add optional diagnostics feature for expensive tests
amrali Oct 1, 2025
714df48
Remove old monolothic tests
amrali Oct 1, 2025
94cb1bc
Remove duplicate quantization code from wave module
amrali Oct 1, 2025
45ed280
Add modular tests for analysis
amrali Oct 1, 2025
51d6692
Remove Wave::quantize() convenience method for better API design
amrali Oct 1, 2025
8f1bd22
refactor(quantization): reorganize module into separate files
amrali Oct 2, 2025
1200b65
refactor(wave): reorganize module into separate files
amrali Oct 2, 2025
c64edc8
refactor(waveform): reorganize module into separate files
amrali Oct 2, 2025
a9f0355
refactor(lib): make wave and waveform modules public
amrali Oct 2, 2025
70e2c1a
docs(readme): update README with comprehensive feature documentation
amrali Oct 2, 2025
1022404
docs(readme): refocus documentation for scientific and engineering au…
amrali Oct 2, 2025
8bf55f0
fix(docs): fix failing documentation tests in README examples
amrali Oct 2, 2025
936d544
Add image to readme file
amrali Oct 2, 2025
77f0793
Update todo list in readme
amrali Oct 2, 2025
6fd17e7
Update cargo-install github action
amrali Oct 2, 2025
20f83d7
Apply suggestions from code review
amrali Oct 2, 2025
4dd96e8
Fix overflow check in wave iterator
amrali Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: 2

updates:
- package-ecosystem: "cargo"
directory: "/"
- package-ecosystem: cargo
directory: /
schedule:
interval: "daily"
interval: daily
46 changes: 15 additions & 31 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: CI
permissions: read-all

on:
workflow_dispatch:
Expand All @@ -7,9 +8,9 @@ on:
- opened
- synchronize
paths:
- '**.rs'
- '**.md'
- '.github/workflows/main.yml'
- "**.rs"
- "**.md"
- .github/workflows/main.yml

push:
branches:
Expand All @@ -31,27 +32,19 @@ jobs:

steps:
- name: Checkout the source code
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: rustfmt, clippy

- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
run: cargo fmt --all -- --check

- name: Run cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all --all-features -- -Dwarnings
run: cargo clippy --all --all-features -- -Dwarnings

test:
name: Test
Expand All @@ -64,45 +57,36 @@ jobs:

steps:
- name: Checkout the source code
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true

- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test
args: --all --all-features
run: cargo test --all --all-features

coverage:
name: Coverage
runs-on: ubuntu-latest

steps:
- name: Checkout the source code
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
uses: dtolnay/rust-toolchain@stable

- name: Install Tarpaulin
uses: baptiste0928/cargo-install@v1
uses: baptiste0928/cargo-install@v3
with:
crate: cargo-tarpaulin

- name: Generate coverage report
run: cargo tarpaulin --skip-clean --engine llvm --out Html --out lcov

- name: Upload coverage data to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
files: ./lcov.info
17 changes: 7 additions & 10 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
name: Publish
permissions: read-all

on:
workflow_dispatch:
push:
# Pattern matched against refs/tags
tags:
- '*'
- "*"

jobs:
publish:
name: Publish
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Install stable Rust toolchain
uses: actions-rs/toolchain@v1
- name: Install Rust
uses: dtolnay/rust-toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy

- name: Publish to crates.io
uses: actions-rs/cargo@v1
with:
command: publish
args: --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ Cargo.lock
# Ignore code coverage
lcov.info
tarpaulin*

# Ignore .trunk directory
.trunk/
23 changes: 23 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
// Rust configuration
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"cargo": {
"args": ["build"],
"filter": {
"name": "main",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
28 changes: 14 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.
email, or any other method with the owners of this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

## Pull Request Process

1. Update the README.md with details of changes to the interface, this includes new environment
1. Update the README.md with details of changes to the interface, this includes new environment
variables, exposed ports, useful file locations and container parameters.
2. Increase the version numbers in any examples files and the README.md to the new version that this
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
3. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
3. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
do not have permission to do that, you may request the second reviewer to merge it for you.

## Code of Conduct
Expand All @@ -30,21 +30,21 @@ orientation.
Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting

### Our Responsibilities
Expand Down
8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,17 @@ resolver = "2"
[dependencies]
libm = "0.2"
num-traits = { version = "0.2", default-features = false }
num-complex = { version = "0.4", default-features = false, features = ["libm"] }
rustfft = { version = "6.4", default-features = false }

[dev-dependencies]
doc-comment = "0.3"
hound = "3.5"

[features]
# Optional diagnostic tests that are expensive and produce verbose output
# Usage: cargo test --features diagnostics
diagnostics = []

[profile.release]
lto = true
Expand Down
Loading
Loading