Skip to content

Rosuav/appension

 
 

Repository files navigation

========= appension

Web player for devil glitch extension

  • Infinite glitch - the longest pop song ever

A few years ago Chris Butler decided to extend The Devil Glitch into infinity. Dozens of artists began writing and recording verses to contribute and re-assembling the gigantic track became rather resource-intensive.

We looked for an internet Music Player with a gapless playback feature, but found none. Chris' friend Henry Lowengard suggested with do something with the Echonest API and it's python companions, PyEchoNest and Remix. I didn't know Python, but was interested in learning and we decided to forge ahead in this direction.

Found my way to Peter Sobot's Forever.fm codebase (or a version of it), forked it and started reading and tinkering. Before long I realized I was way out of my depth and dug up a mentor named Chris Angelico with whos help Infinite Glitch was born.

Echonest API has been migrated to a new API that doesn't expose the Track Analysis attributes so we need to replace it.

Minimum Viable Product Requirements

  • Work with Audio Streams (as opposed to complete files)
  • Insert streaming tracks --- gap-lessly --- into output stream randomly
  • Write streams out to a single track

Admin

  • Sequence of tracks for Single Rendered File
  • Trim start time either in milliseconds or “beats” for use in transitions

This would probably give us something that works, but lacks certain current functionality.

Additional Current Features

  • Crossfade between tracks
  • Combine tracks --- required for the Recording Studio
  • Normalize and Limit track volumes

What can Amen do?

The Amen echo_nest_converter AudioAnalysis object contains a reference to the original file as well as list of analysis data:

  • sections
  • bars
  • beats
  • tatums
  • segments

It looks like sections, tatums and segments may not yet be implemented. As far as I can tell the amen.synthesize function is what renders an final audio file, but as we're dealing with streams we may need to handle differently. Possibly RealAudioStream from Forever.fm will work, or maybe some variation on a Threading object.

For combining the two elements in the Recording Studio, the PyDub might be perfect. It doesn't support streaming so not sure if we could use it to crossfade streaming PMC or any other type of audio data very easily.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 86.8%
  • CSS 5.2%
  • HTML 4.8%
  • Python 3.1%
  • Other 0.1%