User Tools

Site Tools


mixxx_macros

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
mixxx_macros [2020/05/20 06:42]
xerus [Timeline] block CW 26
mixxx_macros [2020/06/04 14:02] (current)
xerus [CW 23] clean up
Line 3: Line 3:
 //By Janek Fischer (xerus/​xerus2000)//​ //By Janek Fischer (xerus/​xerus2000)//​
  
-{{ :​gsoc_2020_proposal_janek_fischer_-_mixxx_macros.pdf | Proposal }}+{{ :​gsoc_2020_proposal_janek_fischer_-_mixxx_macros.pdf | Official GSoC Proposal }}
  
 ===== Introduction ===== ===== Introduction =====
Line 10: Line 10:
 But sometimes, more sophisticated automation can be helpful - maybe you want to skip a breakdown, shuffle around verses, loop an intro a specific way or deliberately repeat certain parts. Handling that while messing with effects and getting the next track ready can be tricky; that is where Mixxx Macros come in. With this feature implemented,​ it will be possible to record specific moves while playing a track and store them in a rack, to be used when it gets hot. But sometimes, more sophisticated automation can be helpful - maybe you want to skip a breakdown, shuffle around verses, loop an intro a specific way or deliberately repeat certain parts. Handling that while messing with effects and getting the next track ready can be tricky; that is where Mixxx Macros come in. With this feature implemented,​ it will be possible to record specific moves while playing a track and store them in a rack, to be used when it gets hot.
  
-===== Timeline ​=====+===== Details ​=====
  
 +==== Data Format ====
 +
 +  * reference cues vs timestamps
 +    * timestamps: used by Serato Flip, persistent, but hardly editable; can break when track offset changes (when music file is swapped out)
 +    * cues: can be moved, but that could also [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197284228|accidentally mess up a flip]] and cues can't currently be shifted; add [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197283721|confirmation dialog similar to when deleting a track in a playlist]] to avoid breaking things -> but then cue needs to be aware of the Macros it's used in
 +    * how relevant is editing afterwards, how can we facilitate it?
 +    * Serato Flip [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197286852|"​just works"​]] - Flip is fixed after recording, not blocking any hotcues or any chance of breakage
 +
 +
 +==== Name ====
 +
 +"​Macros"​ sounds like something to be triggered manually at any time - the point of flips is that they usually happen automatically.
 +
 +Suggestions:​ Spin, Routines, Twist, MicroFlow, Mow
 +
 +"​Routines"​ sounds nice, is [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197282607|descriptive]] and [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197421948|well-received]] - [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197282525|we don't need to sell it either]]. Only complaint is that it might be a little bland
 +
 +==== Discussion ====
 +
 +  * Recording could be implemented using [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197293806|data emitted from the engine on cue jumps]] (not a signal, realtime!)
 +  * [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197532422|Use developer window/​shortcuts for debugging controls]], implement them first and then look at skins.
 +  * [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197984243|Macros are bound to one track - beware of scope creep]]
 +  * [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​197984726|Should be usable from a controller - keep number of controls at minimum]]
 +  * [[https://​mixxx.zulipchat.com/#​narrow/​stream/​109171-development/​topic/​Macros.2FSaved.20Hotcue.20Routines.2F.22Serato.20Flip.22/​near/​198009610|Might activate actual loops - user can then disable it]]
 +
 +===== Timeline =====
  
 CW 21: Establish Timeline, work on open PRs, initial survey & discussion\\ CW 21: Establish Timeline, work on open PRs, initial survey & discussion\\
 CW 22: Survey existing Serato Flip uses & collect input CW 22: Survey existing Serato Flip uses & collect input
  
-**June ​- Design Phase:**+**June**
  
-CW 23: Review the design ​of how Macros will be structured ​\\ +CW 23: Work out details ​of the format ​\\ 
-CW 24: \\ +CW 24: Start implementation of data structures, controls\\ 
-CW 25: \\+CW 25: Create recording infrastructure ​\\
 <​del>​CW 26</​del>​ (blocked) <​del>​CW 26</​del>​ (blocked)
  
-Deliverable:​ Format specification, tbd+Deliverable:​ Format specification ​with examples
  
-**July ​- Coding Phase:**+**July**
  
-CW 27: \\ +CW 27: Design controls & integrate into a skin \\ 
-CW 28: \\ +CW 28: Tie it all together ​\\ 
-CW 29: \\ +CW 29: //​Buffer// ​\\ 
-CW 30:+CW 30: //Buffer//
  
-Deliverable:​ Implemented controls with mapping to a skin and controller+Deliverable:​ Implemented controls with mapping to a skin and controller, working recording system
  
-**August ​- Refinement Phase:**+**August**
  
-CW 31: \\ +CW 31: Refine UX & Integrate into other Skins \\ 
-CW 32: \\ +CW 32: Enable Import from Serato & explore possibilities for sharing ​\\ 
-CW 33: \\ +CW 33: //​Buffer// ​\\ 
-CW 34:+CW 34: //Buffer//
  
 Deliverable:​ Integration with other tools (Serato Flip, Export/​Import,​ Edit Dialog, Auto DJ?) Deliverable:​ Integration with other tools (Serato Flip, Export/​Import,​ Edit Dialog, Auto DJ?)
  
-===== Details ​=====+===== Log ===== 
 + 
 +==== How I work ==== 
 + 
 +I tend to branch out to other open source contributions when I want to work on something - I am almost unable to idle ;) \\ 
 +Evidence of that are regular reports on GitHub: https://​github.com/​search?​q=xerus2000&​s=created&​type=Issues \\ 
 +However, this can also lead to delays in what I was supposed to work on. 
 + 
 +I currently use https://​notion.so to take notes and may link some pages here as proof of work - but these are personal working areas and not optimized for general understanding. I will always incorporate results into this wiki page when appropriate. 
 + 
 +==== CW 21 & 22 ==== 
 + 
 +  * Work on general PRs: https://​github.com/​search?​q=author%3Axerus2000+user%3Amixxxdj+updated%3A2020-05 
 +  * Code Style discussions (Zulip & PRs) 
 +  * Planning & initial Research: https://​www.notion.so/​xerus/​Mixxx-Macros-GSoC-Research-5ab430eb8f0a41efafc075c220029560 
 + 
 +==== CW 23 ==== 
 + 
 +  * revisited & summarized Zulip discussion in wiki page (timeline, details) 
 +  * sifted through reddit (https://​www.reddit.com/​search?​q=serato%20flip) - summary for now in Notion 
 +  * plan community call 
 +==== CW 24 ==== 
 + 
 +Mo: 
 + 
 +Tu: 
 + 
 +We: 
 + 
 +Thu: 
 + 
 +Fr: 
  
mixxx_macros.1589971343.txt.gz · Last modified: 2020/05/20 06:42 by xerus