Git Product home page Git Product logo

loopinloopout's Introduction

LoopINLoopOUT
-------------------------------------------
Sample, Loop, and Stem repository. The application is all about remixing, collaborating, creating, and sharing. 
 

- Dependencies: 
https://github.com/benalavi/waveform
This gem is used to generate waveform from wav to png
	- Depends on ruby-audio gem
	- Depends on oily_png
	- Depends on chunky_png
On OSX or linux you need to have: 
mac: brew install libsndfile
	 brew install ffmpeg
	 brew install imagemagick

loopinloopout's People

Contributors

ontehfritz avatar

Watchers

 avatar  avatar

loopinloopout's Issues

Explore: Global Activity

Explore section will show what is happening globally, New Remix challenges, Top banks, Top projects, Top loops and samples, Winners of challenges and other projects or banks a user may be interested in.

Clips: Audio paste bin

Allow users to create clips, this is quick short clips you want to share quickly, these will have file size limits and expire if haven't been accessed in N days.
Also small and easy url to access it.

Create desktop/sync application

Use mono c# for cross platform development:

Be able to sync projects to folder on users computer. Similar to drop box, but can choose any destination folder.
Create project locally
It will create the folders, drag files into folder or into application.
Files with the same name will be updated
Be able to use the application for most features.
Able to use app or web app.

Soundfiles: Limit length of sound files

Some restrictions need to be applied to soundfiles. This will only apply to audio sound files.
A limit of 2 mins for loops and one shots
30 minutes for mix-downs and remixes

Audio Player: Mini Player

I small version of the main player used for quick previewing.

  • Play a file
  • Stop
  • Show small version of waveform.

This will be used on the bank view and sound file update page

Remix: Add sorting to _remix_list

Add sorting to remix list sort by score, votes, favorite total, or newest. Remix list will also is used by remix challenge so this has to be taken into consideration as score and votes will show for RemixChallenge, but not Remix type.

Discussion: Tag sound files

Be able to use @ to tag a sound file. This will generate a link to the sound file. This way discussion won't get cluttered with comments for a specific file. This can be now made directly on the file.

Example, "Hey bro check out some comments I had on @glicthed_drums." Then clicked @glitched_drums and you will be directed to the comments.

Discussion: Reply to comments

Add a quick link to reply to comments, this will reference the original comment. Use anchors on each comment/replies to easily link to them in notifications and from emails. Use simple indentation for replies.

Audio Player: Finish features of main audio player.

Currently the player is based off of jplayer. It can currently:

Play an audio file from grid, also be able to stop and play another file in the sample grid.

Missing Features:

  • Stop and play button on the player itself
  • Change waveform when a new file is played
  • Retrieve current time of player

Activity Feed: Basic functions

Activity feed will keep the user up to date on projects, banks, and users being followed.
Track:
Followed user activity (new projects, banks, and files)
Projects (new files or changes)
Banks (new files or changes)

Create a genre table for projects and banks

Create a table that will parse genre from banks and projects, to be a genre cache. The cache table will contain a list of all genres, this will be used for searching and displaying all the genres on loop in loop out

Bookmark Banks

Book marking bank allows users to easily access and remember banks as well as get updates.

Discussion: @ tags for files and time in format mins:seconds

@ tags to reference files in a project as well as time. The @tag on files will generate a link to the file and the time will go to that spot on the audio clip. When clicked it will play the file in the audio player from the time position. If no time position then start the audio from the beginning.

Project: Remix

The purpose of this project type is to allow sharing of all the sound, loop and stems of song(s) and allow other users to download them and be able to upload a remix. However, this is not an official remix challenge. It is just to let users download the goodies, and be able to show what they did with them.

Features:
Upload files, stems, and sounds or choose from banks
Upload original file
Upload remixes
Show who has upload a remix

Remix Songlist: Show/hide features based on Remix or RemixChallenge

On the remix songlist, some features do not need to exposed, based on if it is Remix or Remix challenge.

Remix:

  • starred
  • delete (if creator)

Remix Challenge:

  • starred
  • score (if judging option is selected)
  • Remix place
  • Votes (if voting option is selected)
  • Judging link (if judging option selected)

Notifications: Basic functions

Users will be notified by a number events:
When someone has changed a project they own or part of (added a file, deleted a file, made changes to settings),
When your remix has been voted on or judged
When someone follows you
When a new person has been added to a project
When some uses @ tag on your username in discussion
When someone messages you

Generate audio waveform after upload

After uploading a audio clip generate waveform. The rails application will have to run a few steps in the background:

  1. Detect if the file is audio
  2. If file is not a wave file convert to wave with ffmpeg:
    ffmpeg -i "/path/to/source/file.mp3" -f wav "/path/to/output/file.wav"
  3. Generate waveform with ruby gem "waveform":
    waveform song.wav waveform.png (width and height can be specified)
  4. Take waveform image and update AudioFile object with image using paperclip attachment
    image.file = File.open("/path_to_images/image_name.png") #file attribute is paperclip field
    image.save

These will be lengthy operations so it will have to be done as cron job or a ruby background process. A flag can be used in database for status. Then displayed to user while processing.

Project: Challenge

This is for creative/technical challenges, they can be for fun or for prize. The purpose of this project type is to purpose some crazy musical idea and let people compete or show what they created. Example: Create a song using two notes. Create the best sound using a tin can and two of your favorite effects.

Features:
upload/download or choose from banks sound and loops
upload/download examples ... Links to youtube videos?
upload challenge submissions
judging or voting
show who is participating in the challenge

Flag sound files

This will allow users to highlight songs with in a bank or list all flagged sound files.

Project: Personal

This project type is for personal work, such as a song(s) working on. It is a great way to save projects from your daw so you can access files any where or simply just want to share the sounds or cool stems worked on.

When set to private only you can view.
When set to public everyone can download and listen to the files.

Features:

Upload sound files or pick from bank
Upload mixdown
Upload stems

Audio Player: Small Player

Create a small player that will have basic functionality

  • Load a file
  • Load it's waveform
  • Play, Stop, Pause

Ability to add preview file for non audio files

if the sound is a synth patch, midi sequence, max device or other sound file that can't be played by audio player. Allow the user to upload a preview file. The preview file will be an audio file that demos that patch, or potentially how to use it.

Same process as issue #1, except only allow audio files to be uploaded. Also max length of 30 seconds for a preview file.

Banks: Download all files

Compress all files into a zip file, the zip file will contain a folder of the bank name, and inside the folder will contain all the files from the bank.

Projects: Create projects

Allow the creation of projects there will be a few types:
Remix [Post original track, post stems, sound files, allow for posting/favoriting of tracks]
Remix challenge [Same as above, top remixes, scoring and rules]
Collaboration [Look for people to work with] song stems, sounds and master song
Creations ??? [Post music] Not sure of this yet, maybe use sound cloud for this.

Copy sound files

Copy sound files from any public bank to your own banks or collab banks

Project: Collaboration

This project type purpose is to collaborate with other lusers to create a song(s). When set to private only invited lusers can access the project. When public it is open to the community to contribute.

Features:
upload stems
upload or choose from banks
upload mixdowns
show who is collaborating

Profile: Basic attributes

  • Upload profile picture
  • Location [city and/or country]
  • Blurb [something about yourself]
  • Gear and software list
  • Battle station pic upload. [ a pic of your studio]

Copy banks

Copy another users bank into your own bank list. This is useful for customising the bank from someone else.

Add allow copy attribute added to bank

When converting clips to lower bit rate mp3, play progress always stops at 36 %

A strange issue happens, when I converted the clips to lower mp3 bit rate it only plays to 37 percent. Also this does not happen only on the web app, when I play the file on mac osx, it also has this issue.

Converting using: system('ffmpeg -b 192k -i "%s" -f mp3 "%s/tmp/waveform/%s.mp3"' % [path, Rails.root.to_s, filename])

Roles: Define roles

Roles for system:
system admin - has access to everything on the LILO system

Roles for project and banks:
Creator - The user that has created the project
Admins - Almost the same privileges as creator, but cannot delete the project or bank
Contributor - Allow user to add content
Contender - A user who has entered a remix or challenge submission

Project: Remix Challenge

The purpose of the remix challenge is more competitive than a simple remix project. This is allow lusers to download stems, loops and sounds. To create a remix of their own. There could be prizes and rules. Also it allows for a simple way to score the remixes. This can be done by specifying voting and/or scoring.

Features:
upload/download or choose from bank loops and samples
upload/download stems
upload/download remixes
upload/download originals
Voting on remixes
Scoring of remixes
if scoring is specified judges can be assigned.
Leader board on remix browsing. order by

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.