TimeViewers / signalworks

MIT License
3 stars 2 forks source link

Feature Request: Support Audio Formats #13

Open j9ac9k opened 5 years ago

j9ac9k commented 5 years ago

It would be beneficial if signalworks would support the following audio formats as importable as Tracks.

lxkain commented 5 years ago

In other words, should we use SoundFile to load waveforms?

j9ac9k commented 5 years ago

What's SoundFile?

lxkain commented 5 years ago

https://pysoundfile.readthedocs.io

j9ac9k commented 5 years ago

@lxkain while it certainly looks like it could help, that dependency list would make it problematic to embed. It would be ideal if we could just pip-install.

I could certainly sing a different tune once we attempt to support those other formats without it.

j9ac9k commented 5 years ago

Re-reading it, it shouldn't be too bad if we make it an optional dependency for signalworks and handle wav files with scipy wav_read

@lxkain how do you feel about adding this as a signalworks optional dependency?

lxkain commented 5 years ago

That would be fine.

tuanad121 commented 5 years ago

SoundFile doesn't support wv1 and wv2.

lxkain commented 5 years ago

What are those formats?

Best curated list about this sort of thing is at https://github.com/faroit/awesome-python-scientific-audio#read-write

j9ac9k commented 5 years ago

we have a variety of formats, but these ones I think came from the TIMIT dataset, and are NIST sphere encoded (which soundaudio looks as if they should handle, but they aren't).

tuanad121 commented 5 years ago

for example 4M0C0106.WV1.zip

j9ac9k commented 5 years ago

@tuanad121 has integrated soundfile as an optional dependency; that still doesn't cover quite all our use cases but gets us most of the way there.

j9ac9k commented 5 years ago

@tuanad121 would you mind updating the original check list?

lxkain commented 4 years ago

See also #23. Unfortunately there is still no one-size-fits all solution for this, and it appears we will continue to need to interface with multiple libraries to load time-series (including audio) from files.