Skip to content
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

Refactor with wavesurfer.js #6

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Refactor with wavesurfer.js #6

wants to merge 1 commit into from

Conversation

barrettk
Copy link
Member

@barrettk barrettk commented Oct 7, 2023

wavesurfer.js allows for manipulation of audio playback speed with pitch control, as well as an equalizer.

This is going to be a large effort (bigger than the last one)

@barrettk
Copy link
Member Author

barrettk commented Oct 7, 2023

I found an R package that creates a widget using some of the available pluggins, but it's horribly bugged and is no longer maintained. You can do some pretty cool stuff with it though, and I think the htmlWidget will save me some time.

If I utilize wavesurfer.js's plotting capabilities it would A) replace a LOT of the work I did when hooking up the howler module, and B) be a significant effort. I cloned the R package wrapper, and may spend some time refactoring that package before pulling specific components I plan on using. It's tough to say how this PR will go, but at the moment I havent found any real alternatives for altering playback speed and using an equalizer via a web audio player.

After I fix the package a bit the first task will be getting the two js packages to communicate without any lag or glitching. My biggest fear is that I do a lot of work just to have it be a mess at the end. The upside is that this PR will likely be the largest effort. After which we can focus on adding multiple audio tracks, a decent test suite, UI redesigns, and getting ready for an official release.

Aside

At some point I want to revisit electron.js for packaging up package tarball with an installation of R to make an executable we could pass around more easily, but that is not trivial (I did something similar for my senior design project, but I wasnt able to bundle it with an installation of R to make it truly portable).

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.

1 participant