Giter VIP home page Giter VIP logo

linx's Introduction

Linx

This README outlines the details of collaborating on this Ember application. A short introduction of this app could easily go here.

Prerequisites

You will need the following things properly installed on your computer.

Installation

  • git clone <repository-url> this repository
  • cd linx
  • npm install
  • bower install

Running / Development

Code Generators

Make use of the many generators for code, try ember help generate for more details

Running Tests

  • ember test
  • ember test --server

Building

  • ember build (development)
  • ember build --environment production (production)

Deploying

Specify what it takes to deploy your app.

Further Reading / Useful Links

linx's People

Contributors

wolfbiter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

linx's Issues

index page

can showcase top-rated mixes/transitions. will also have a list of the different available streams? and a quick explanation/sign up?

"users"

i should look into meteor's account package for that

bug with pathing

steps to reproduce:

  1. play witohut you
  2. select till tonight as 0th queued song
  3. select baker street as 1st queue song
  4. baker street replaces till tonight :(

add upload page

the page must include instructions about how/what to upload, as well as a waveform gui to line up transitions

thoughts about keyshifting and extended "transitions"

keyshifts are issues because a transition from song A to song B must start with song A in it's natural key and end with song B in its natural key. since pitch can't be shifted mid-song like bpm, this means transitions can't be made with songs that have had their keys changed. unless...

the idea of a transition can be extended beyond song A to song B. an involved transition - like a world class live mix - might entail song A to song B to song C (maybe even mixing all three songs in at points, such that songs A, B, and C all overlap). if this is the case, then song B can be safely pitch shifted (so long as songs A and B are their natural keys at the start and end of the transition respectively). Of course, this can be extended to an arbitrary number of songs - the key point here is that a transition is no longer A to B, but is now song 1 to song n

"streams"

"users" have "streams" that they follow. you can have your own "stream" if you pay a subscription!

default streams would be things like: dubstep stream, prog house stream, moombahton stream. would i also have a wildcard stream? and should the default streams be "guest" streams in taht anyone can listen, and the transitions are chosen based on user selections (present votes > past votes, all weighted by genre such that that stream's type of music was favored)

add user-preference "toggles" for which nodes to display

idea: have default be the only nodes showing are the queued nodes, the only transitions are queued transitions + available transitions from the last node

toggles:

  1. toggle past nodes's visibility
  2. toggle edges back to queued nodes / past nodes (make sure to color these differently!)
  3. toggle edges from queued nodes that are not the end node

new data structure: a "mix"

  1. a mix is a list of transitions, with metadata like name, rating, genre, etc
  2. mixes can be created by saving a queue (any other way?)
    • save it to mongodb
  3. saved mixes can be loaded into a current queue
    • do they replace hte current queue? or start on the earliest song? or maybe you select where it starts?
  4. how do users access their own / other peoples's mixes? there has to be a master list, like songs. but where will this fit in the gui? a separate tab? a series of dropdowns? on the user page? #31
  5. [graph] should mixes have special coloring? (even deeper) maybe highlight possible mixes on hover?

add ability to pause/skip

note: dunno if skip is possible, and pause will be relatively involved considering that you cannot start a source once it's been stopped. i'll have to keep current pos data in the buffer, and make a new source offset to that pos in order to implement pausing

fix all my database access methods

in accordance with this email thread's proper usage of meteor.method():

"In principle, a method can perform completely different actions on the client and server, for example showing a loading indicator on the client and talking to a remote API on the server. Calls to Meteor.methods on the client define the client behavior, and calls to Meteor.methods on the server define the server behavior.

For methods that operate on the database, often the same implementation will do for both. The client version affects the client-side database (the browser-side "cache" of documents subscribed to) and the server-side version affects the real database. When the client hears back, it "snaps" to the result of the server-side mutations; the client-side database mutations are discarded (or undone, depending on how you think about it). If a client-side method calls other methods, these secondary calls are not remoted to the server. The server-side version will either call the same methods on the server, or not, as it sees fit.

So any client-side method impl you provide is just a "simulation" and doesn't have to be accurate (it may not be able to be). The hope is that you typically get the simulation impl for free because it's the same as the server impl!"

uploader controls

maybe add key commands and mouse commands legends to the tooltips

mouse

  • click: seek
  • double click: start at seeked location
  • scroll forward: zoom in on hovered track
  • ctrl + scroll forward: nudge zoom in
  • scroll backward: zoom out on hovered track
  • ctrl + scroll backward: nudge zoom out
  • click and drag: move track horizontally
  • ctrl+click and drag: nudge track horizontally

kbd

  • space: playpause
  • right: seek right
  • left: seek left
  • ctrl+right: nudge seek right
  • ctrl+left: nudge seek left
  • up: place green cue on hovered track
  • down: place red cue on hovered track

make intro help page which pops up on first login

  • use cookies to determine browser's first login, like how just-dice does, to alert a help screen
  • also point out that help can be brought back up from the help button, which is on the... nav bar?

or maybe just do tips on/off with hoverovers? hmmm...

playSource seems to ignore the "offset" argument for the song "koala"... ?

not really sure what to do here. i wonder if it's web audio api messing up - i can't reproduce it for any other songs, and the offset is being passed in just the same as the others (confirmed via print statements)

currSong: koala mixer.js:186 228.093292 mixer.js:187 playSource offset: 228.093292

convert the beatfn mailing list to this project

so it would be like the mailing list of everyone who's got access to the experimental version (i'd give them the invite and hey the intro message could give the info necessary to log in to the app). the email list would be could because then users can easily email me bugs / see each other's comments about the project.

thoughts? @peterpanning @ahdinosaur?

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.