Getfunkt

Alternatives To Getfunkt
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Demucs6,72628 days ago15December 07, 2022226mitPython
Code for the paper Hybrid Spectrogram and Waveform Source Separation
Invoke28
6 years agoJavaScript
Invoke is a full stack web application inspired by SoundCloud. It utilizes Ruby on Rails on the backend, a PostgreSQL database, and React.js with a Redux architectural framework on the frontend.
Soundmap24
10 years ago1CSS
A heatmap for songs
Sawteeth12
3 years ago22C++
A sound synthetizer, tracker and replayer, similar to AHX.
Soundcloud212
2 years ago4JavaScript
SoundCloud-2 is a clone of SoundCloud built using Rails, PostgreSQL, React, Redux, HTML5, CSS3, CSS, AWS, Wavesurfer.js and Webpack.
Sound Macleod7
5 years agoJavaScript
A full-stack web app for music sharing inspired by SoundCloud
Getfunkt5
7 years agoJavaScript
Transcribe3
2 years ago39mitTypeScript
A Web App for Transcribing Songs
Lyrictor2
a month ago11gpl-3.0TypeScript
Web lyric editor
Thunder2
9 years agoRuby
A Rails / Backbone.js clone of the popular music sharing site Soundcloud
Alternatives To Getfunkt
Select To Compare


Alternative Project Comparisons
Readme

GetFunkt

GetFunkt live

GetFunkt is a full-stack web application inspired by SoundCloud. The backend is built with Ruby on Rails; the database is PostgreSQL, and the frontend is done in React.js with a Flux framework.

Features & Implementation

GetFunkt is a single-page app, which allows for seamless audio playback throughout navigation. The audio player is rendered in the parent component, allowing other components to render without disrupting the user experience.

Song Rendering and CRUD

In the database, Songs are stored in one table, with a user_id column denoting the owner of the song (i.e. the user that uploaded it to the site). Each Song object has an audio file and an image file (album art), making combined use of Paperclip, Figaro, and Amazon Web Services.

Upon login, the router redirects to the user's Stream, which is an index of songs that either belong to the user or that the user has liked. From there, the user may navigate to the Discover feed, which, for the purposes of this small-scale demo, is every song in the database that the current user does not own or does not currently like. This can be easily scaled by returning a small number of randomly chosen songs, by returning songs based on a shared attribute (such as artist or genre), or by returning songs from users that the current user follows.

Users may also visit other users' pages, which list the songs that that user has uploaded.

Songs may be uploaded via the Upload link at the top of the page. Users must input a title, artist, audio file, and image file to successfully upload a song to GetFunkt.

Users may also edit and delete their own songs directly in their Stream.

Users can play a song by clicking on its album art, title, or artist. Songs can be switched simply by clicking another song. The basic audio controller at the bottom of the page provides play, pause, tracking, and volume capabilities.

Other Features to Implement

In the future, I'd like to implement user following, search functionality (directly searching by song title, as well as by artist/user/tag/genre), and waveforms. Most of this can be done with no further tools than the app already makes use of, but for waveforms I plan to either use an external JS library or use Canvas.

Popular Songs Projects
Popular Waveform Projects
Popular Media Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Songs
Waveform