Skip to content

Future Adaptations to the FX Module #9

@Watermelanie

Description

@Watermelanie

The purpose of this module is to create filter functions to modify input sound waves for greater flexibility in the audio that is produced from user input.

Currently some basic filter functions that are implemented include apply_filter, get_notes, change_volume, stretch_audio, change_pitch, and add_chords.

  • apply_filter: This is the base function where we call other filter functions for each note.
  • get_notes: This gets all the note slices from an input signal using note onset detection method. Future improvements include cleaning up visual plots (perhaps adding an optional argument for displaying graphs).
  • change_volume: This changes the amplitude of audio samples. Future improvements include cleaning up clipping of audio waves and creating a more efficient/enhanced implementation.
  • stretch_audio: This changes the duration of audio samples. Future improvements could include more robust time stretching and pitch scaling methods, such as implementing a phase vocoder. These slides give a high-level overview of the problem.
  • change_pitch: This changes the pitch of audio samples. Makes use of stretch_audio.
  • add_chords: This adds notes to audio samples to create chords. Future improvements include adding a variety of chords.
  • overlap_notes: The idea of this function is to overlap notes by a factor. This needs to be freshly implemented.

Basic tests for most of these functions have been implemented in tests.py. There needs to be more comprehensive tests created.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions