User Tools

Site Tools


gsoc2012_autodj_features

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gsoc2012_autodj_features [2012/07/28 08:21]
smstewart91 [TO DO]
gsoc2012_autodj_features [2012/08/11 06:14] (current)
smstewart91 [TO DO]
Line 8: Line 8:
 ====== Abstract ====== ====== Abstract ======
 The main goal of this project is to make AutoDJ sound more like a real DJ.  The main feature that would allow this is beatmatching support in AutoDJ. ​ Currently, AutoDJ only crossfades between two songs over a certain time interval, much like iTunes or other media players can do.  I plan to use the power that Mixxx already has, such as BPM sync and beat detection, to improve the way that AutoDJ handles transitions. The main goal of this project is to make AutoDJ sound more like a real DJ.  The main feature that would allow this is beatmatching support in AutoDJ. ​ Currently, AutoDJ only crossfades between two songs over a certain time interval, much like iTunes or other media players can do.  I plan to use the power that Mixxx already has, such as BPM sync and beat detection, to improve the way that AutoDJ handles transitions.
 +
 +All GUI changes that are mentioned have been added to Deere 1280x1024
  
 ====== Specifications ====== ====== Specifications ======
Line 20: Line 22:
   * Cut - Cut Song A at the cue out and immediately start Song B    * Cut - Cut Song A at the cue out and immediately start Song B 
   * Spinback - A short transition utilizing a spinback effect   * Spinback - A short transition utilizing a spinback effect
-  * Brake - Another short transition using a brake effect+  * Brake - Another short transition using a brake effect, slowing the song using the jogwheel
   * Echo FadeOut - Echo one beat of Song A while decreasing the volume, then start Song B   * Echo FadeOut - Echo one beat of Song A while decreasing the volume, then start Song B
  
 More transitions can be added simply by creating a method for them in the TrackTransition class. ​ There are many types of transitions,​ such as those using the EQ controls, that will not be added now, but could be added at a later time.  More transitions can be added simply by creating a method for them in the TrackTransition class. ​ There are many types of transitions,​ such as those using the EQ controls, that will not be added now, but could be added at a later time. 
 +
 +== Beatmatching Transition ==
 +The beatmatching transition uses a combination of transitions. ​ If the BPMs are similar (within 6% of each other), then the pitch slider and the sync button are used to match the songs' BPMs.  If the current song is faster than the next song, the current song is slowed down using the jog wheel (brake effect) as the crossfader is moved to the other deck.  If the current song is slower, a spinback transition is used to transition to the next song. 
 ===== Cue Points ===== ===== Cue Points =====
 Cue in/out points that are used by AutoDJ are a feature that was mentioned by people in the Mixxx community, and had already been started, so it has been added to this project. ​ It will be implemented differently than the version that was already started, however, which include fade in/out as well as cue in/​out. ​ The fade in/out option is being removed. ​ The transition time option that already exists adds the same functionality that the fade in/out offered. ​ The cue in would be used to mark the point where AutoDJ will start playing a track, while the cue out will mark the point where the next transition will start. ​ Decks currently load tracks at the cue point, so this will be the cue in point for AutoDJ. ​ This will help DJs who already have cue points defined in their library. ​ The cue out point will be added to the cue database, and a button will be added to the GUI, so that users can set the AutoDJ cue out point. Cue in/out points that are used by AutoDJ are a feature that was mentioned by people in the Mixxx community, and had already been started, so it has been added to this project. ​ It will be implemented differently than the version that was already started, however, which include fade in/out as well as cue in/​out. ​ The fade in/out option is being removed. ​ The transition time option that already exists adds the same functionality that the fade in/out offered. ​ The cue in would be used to mark the point where AutoDJ will start playing a track, while the cue out will mark the point where the next transition will start. ​ Decks currently load tracks at the cue point, so this will be the cue in point for AutoDJ. ​ This will help DJs who already have cue points defined in their library. ​ The cue out point will be added to the cue database, and a button will be added to the GUI, so that users can set the AutoDJ cue out point.
Line 33: Line 38:
  
 The AutoDJ class will also provide ControlObjects for the AutoDJ controls, including fade now, skip next, shuffle playlist, and enabling AutoDJ. ​ This will allow users to control AutoDJ using a keyboard or controller and not just the buttons in Mixxx. The AutoDJ class will also provide ControlObjects for the AutoDJ controls, including fade now, skip next, shuffle playlist, and enabling AutoDJ. ​ This will allow users to control AutoDJ using a keyboard or controller and not just the buttons in Mixxx.
 +
 +===== Fade Now =====
 +The Fade Now functionality has been expanded to be available even when AutoDJ is not on.  Buttons have been placed on either side of the crossfader, and pressing either one will cause a transition to occur (according to the settings in AutoDJ).  ​
 +
 +=== AutoDJ ===
 +When AutoDJ is enabled, Fade Now will cause the transition to occur. Once the transition is over, the next track will be loaded, as if AutoDJ had transitioned at the normal cue point.
 +
 +=== Library ===
 +Using the Fade Now button while AutoDJ is not enabled will cause the transition to occur, but once the transition is over, nothing else occurs. ​ No tracks are stopped from playing or ejected from the deck. Pressing the Fade Now button during a transition will stop the transition.
 ===== Crossfader ===== ===== Crossfader =====
 Users will be able to take control of the crossfader while AutoDJ is transitioning if they choose to.  If AutoDJ detects that the user is moving the crossfader, it will give up control to the user.  AutoDJ will take back control for the next transition, or the user can use the Fade Now option to transition at a later point in the song. Users will be able to take control of the crossfader while AutoDJ is transitioning if they choose to.  If AutoDJ detects that the user is moving the crossfader, it will give up control to the user.  AutoDJ will take back control for the next transition, or the user can use the Fade Now option to transition at a later point in the song.
Line 68: Line 82:
     * Using cue points: DONE     * Using cue points: DONE
     * Using beatmatching:​ INPROGRESS     * Using beatmatching:​ INPROGRESS
 +  * Create branch to merge into trunk
  
 ==== Open Issues and Bugs ==== ==== Open Issues and Bugs ====
-  * AutoDJ does not take control when one or two decks are already playing +  * AutoDJ does not take control when one or two decks are already playing ​- sometimes 
-  * AutoDJ does not disable automatically when the playlist is over+  * <del>AutoDJ does not disable automatically when the playlist is over</​del>​
   * Cue out marker does not update in waveform overview until the cursor is moved   * Cue out marker does not update in waveform overview until the cursor is moved
     * Same thing occurs with hotcues     * Same thing occurs with hotcues
   * Cue out markers cannot be set after a long period of testing   * Cue out markers cannot be set after a long period of testing
   * Cue out markers are sometimes set in the wrong place when they are created   * Cue out markers are sometimes set in the wrong place when they are created
-  * Beatmatching transition cannot handle songs when the BPMs are out of range of the pitch slider +  * <del>Beatmatching transition cannot handle songs when the BPMs are out of range of the pitch slider</​del>​ 
-  * Tracks not loading at cue point after restarting AutoDJ +  * Tracks not loading at cue point after restarting AutoDJ ​- sometimes 
-  * Pitch slider should be adjusted as soon as a track is loaded during beatmatching+  * <del>Pitch slider should be adjusted as soon as a track is loaded during beatmatching</​del>​ 
 +  * <​del>​If using beatmatching transition with a short transition time at the end of a song, the song may end before transition is complete if the brake effect is being used</​del>​ 
 +  * <​del>​Crossfader jumps to finished position if cue point is passed on Deck B while transition to Deck B is still happening</​del>​
  
 ====== Discussion ====== ====== Discussion ======
gsoc2012_autodj_features.1343478094.txt.gz · Last modified: 2012/07/28 08:21 by smstewart91