GithubHelp home page GithubHelp logo

flothesof / pyqtgraph-spectrographer Goto Github PK

View Code? Open in Web Editor NEW
34.0 3.0 7.0 1.21 MB

A pyqtgraph based spectrogram app using pyaudio.

License: MIT License

Python 0.50% Jupyter Notebook 99.50%

pyqtgraph-spectrographer's Introduction

pyqtgraph-spectrographer

This is a simple app to display a live spectrogram from microphone input (including waveform and frequency domain).

https://raw.githubusercontent.com/flothesof/pyqtgraph-spectrographer/master/assets/20191012_screenshot.png

Installation

conda

Assuming you have git cloned the repo and have a command prompt in the cloned directory, you can use conda to create an environment with all necessary dependencies:

>>> conda env create -f environment.yml

Note: I have developed this on MacOS and found out that using pyaudio (bindings for PortAudio) required additional steps such as installing PortAudio using brew. YMMV.

virtualenv + pip

You can also install dependencies for this project in a virtualenv using pip:

>>> python3 -m venv venv
>>> source venv/bin/activate
>>> python3 -m pip install -r requirements.txt

Note that on Ubuntu you might need to install the following packages beforehand: apt-get install python3-venv libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 python3-pyqtgraph.

Usage

From the root directory, activate the conda environment with the dependencies and run main.py

>>> conda activate spectrographer
>>> python main.py

pyqtgraph-spectrographer's People

Contributors

flothesof avatar remusao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pyqtgraph-spectrographer's Issues

What changes are needed for 32Bit Audio?

I verified that this program works great on a Jetson Nano with a USB Microphone that has 16bit depth. But, I'm having issues getting it to work with an I2S MEMS Microphone (SPH0645LM4H) that has a bit depth of 24bits (where you use 32bits transfers).

I successfully tested recording wave files with pyaudio with this microphone as long as I use pyaudio.paInt32 as the sample format. But, I can't figure out everything I need to change to get it work with the pyqtgraph-spectrographer.

I tried changing lines 21, and 33 of the microphone.py file, but then I didn't get anything on the waveform or FFT plot.

pyqtgraph api changes

There have been some changes to pyqtgraph - I think I've managed to fix most of the differences in the attached code
main.zip

Test with

Package             Version
------------------- -----------
contourpy           1.1.1
cycler              0.12.1
fonttools           4.51.0
importlib_resources 6.4.0
kiwisolver          1.4.5
matplotlib          3.7.5
numpy               1.24.4
packaging           24.0
pillow              10.3.0
pip                 24.0
PyAudio             0.2.14
pyparsing           3.1.2
PyQt5               5.15.10
PyQt5-Qt5           5.15.2
PyQt5-sip           12.13.0
pyqtgraph           0.13.3
python-dateutil     2.9.0.post0
setuptools          41.2.0
six                 1.16.0
zipp                3.18.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.