• Stars
    star
    152
  • Rank 244,685 (Top 5 %)
  • Language
    C
  • License
    MIT License
  • Created almost 8 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Complex Continuous Wavelet Transform

CCWT library for C and Python

Did you ever wanted to easily generate a spectrogram like this one?

spectrogram

Take the Tutorial with lots of examples and all features being explained.

Features

Complex continuous wavelet transformation

  • with a gabor wavelet
  • interfaces for C99, python2.7 and python3.5
  • using libFFTW for performance
  • and libPNG as possible output
  • 6 render modes
  • parallelization / multithreading support
  • customizable frequency bands
  • helper method for linear and exponential frequency bands

Dependencies

Ubuntu

sudo apt-get install libfftw3-dev libpng-dev

Arch Linux

sudo pacman -S fftw libpng

Mac OS

brew install fftw libpng

Installation

[sudo] pip[3] install ccwt

Documentation

ccwt.fft()

  • input_signal: Numpy 1D float32, float64, complex64 or complex128 array
  • padding: Zero samples to be virtually added at each end of the input signal, default is 0
  • thread_count: Default is 1 (no multi threading)

ccwt.frequency_band()

  • height: Height of the resulting image in pixels and number of frequencies to analyze
  • frequency_range: Difference between the highest and the lowest frequency to analyze, default is height/2
  • frequency_offset: Lowest frequency to analyze, default is 0.0
  • frequency_basis: Values > 0.0 switch from a linear to an exponential frequency scale using this as basis, default is 0.0 / linear mode
  • deviation: Values near 0.0 have better frequency resolution, values towards infinity have better time resolution, default is 1.0

ccwt.numeric_output()

  • fourier_transformed_signal: Numpy 1D complex128 array generated by ccwt.fft()
  • frequency_band: Numpy 2D float64 array generated by ccwt.frequency_band()
  • width: Width of the resulting image in pixels, can be the length of the input signal or less for downsampling
  • padding: Same value as passed to ccwt.fft()
  • thread_count: Default is 1 (no multi threading)

ccwt.render_png()

Same as ccwt.numeric_output() but with these additionally at the beginning:

  • file: File object to store the resulting PNG image
  • render_mode: indicating the color scheme for rendering, see include/render_mode.h for possible values
  • logarithmic_basis: Values > 0.0 switch from a linear to a logarithmic intensity rendering using this as basis

More Repositories

1

netLink

Socket and Networking Library using msgpack.org[C++11]
C++
214
star
2

curve_cad

Blender Addon: Bezier Curve CAD Tools for CNC Milling & Laser Cutting
Python
119
star
3

DOS-Emulator

Emulator of the IBM PC running DOS written in Rust
Rust
117
star
4

hair_guides

Blender Addon: Particle Hair Guides
Python
66
star
5

contrast_renderer

Contrast is a WebGPU based 2D render engine written in Rust
Rust
64
star
6

splatter

Splatter is a WebGPU based gaussian splatting engine written in Rust
Rust
60
star
7

geometric_algebra

Generate(d) custom libraries for geometric algebras
Rust
44
star
8

straight_skeleton

Blender Add-On: Straight Skeleton
Python
43
star
9

JSC-Standalone

Cross platform standalone binaries and build instructions of WebKit-JavaScriptCore
C
33
star
10

VulkanFFT

Fast Fourier Transform using the Vulkan API
C
31
star
11

riscv-llvm-templates

Code templates to get started experimenting with the RISC-V LLVM toolchain
C
14
star
12

UnikernelExperiments

TCP/IPv6-enabled Pine64+ bootloader
C++
13
star
13

MacInject

Command line tool and library to inject and execute program code into another process
C
10
star
14

WebSpectrogram

Web app port of "Complex Continuous Wavelet Transform"
HTML
8
star
15

FreeFormGradients

WebGL2 based implementation of distance transform and diffusion curves
JavaScript
8
star
16

rift

C
5
star
17

RiscV

Risc-V: Dis/Assember and Emulator
C++
4
star
18

complex_continuous_wavelet_transform

Complex Continuous Wavelet Transform
Rust
4
star
19

WebGL2Experiments

Prototypes and Game Design Documents for an idea I had long ago.
Rust
3
star
20

PrismCNC

Free auto CNC software written in JS and C++
C++
2
star
21

parallel_compute_algorithms

Python
1
star
22

Olypsum

A 3D game engine I wrote back when I was in high school
C++
1
star
23

LinuxSetup

Configuration: Arch Linux + Btrfs + Sway (Wayland) on a MacBook Pro
Shell
1
star
24

Digital-Fluids

WebGL cell based fluid simulation
JavaScript
1
star
25

DramaticCountdown

Red on black background seven segment countdown to a selectable date and time
HTML
1
star
26

ngCNC

Successor of the PrismCNC
JavaScript
1
star
27

rp2040_template

rp2040 Project Template in Rust
C
1
star