Skip to content

Sound processing using FFT #375

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 34 commits into
base: master
Choose a base branch
from

Conversation

Unknown15082
Copy link
Member

Description

Created a new modules (sound_fft) for sound processing and analysis.
Modified plotly for visualizing sound in time domain and frequency domain.
Introduced a list of APIs for students to create their own sound filter and apply them to sound.

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

  • Test A
  • Test B

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Unknown15082 and others added 30 commits February 19, 2025 12:41
Currently eliminating the first and fourth quarter of frequency
playFFT takes in a filter, which for now can be created with lowPassFilter
added minimal buggy example
Added methods to plot time-domain and frequency-domain samples in the plotly module.
Added direct conversions between Sound and FrequencyList in sound_fft

- Added definition for FrequencyList type.
- Added public methods sound_to_frequency and frequency_to_sound for direct conversion between Sound and FrequencyList types.
- Copied the functions next_power_of_2 and sound_to_time_samples from sound module into sound_fft module. Hopefully they can be deleted from sound module eventually.
- Added sound_fft/sound_functions.ts to allow sound_fft to use some select functions from sound, as there are still issues with importing.
Renamed `draw_sound_frequency_samples_2d` to `draw_sound_frequency_2d`. The new `draw_sound_frequency_2d` takes in a `FrequencyList` instead of `FrequencySamples`, and plots the full graph (up to sample rate) instead of half.

Also removed `draw_sound_time_samples_2d`.
Added frequency augmentation
Fixed issue where long sounds cannot be converted to frequencies
Made low_pass_filter and high_pass_filter symmetric
Merge source-academy/modules into Unknown15082/modules
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants