User Tools

Site Tools


gsoc2020ideas

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
Next revision Both sides next revision
gsoc2020ideas [2020/01/29 15:58]
daschuer [Student Project Ideas for Google Summer of Code 2019]
gsoc2020ideas [2020/02/26 08:10]
hlzhs
Line 1: Line 1:
-====== Student Project Ideas for Google Summer of Code 2020 ======+===== Student Project Ideas for Google Summer of Code 2020 ======
     
 This page lists the suggested projects for students working on Mixxx as part of [[https://​summerofcode.withgoogle.com/​|Google Summer of Code 2020]]. Each of these projects represents something that we think would make a really big difference to our users and that we as a development team are really excited about. If you are interested in applying to GSoC, read [[gsocadvice|GSoC Advice]] before applying or getting involved. This page lists the suggested projects for students working on Mixxx as part of [[https://​summerofcode.withgoogle.com/​|Google Summer of Code 2020]]. Each of these projects represents something that we think would make a really big difference to our users and that we as a development team are really excited about. If you are interested in applying to GSoC, read [[gsocadvice|GSoC Advice]] before applying or getting involved.
      
 A GSoC application that simply repeats the project description will //NOT// be accepted. We expect you to think about the feature and how it aligns with Mixxx'​s goals, describe potential use cases and propose a plan for implementing a solution. Only students that are active members of the Mixxx community are accepted. If this is not the case yet, just say hello at https://​mixxx.zulipchat.com and discuss your Ideas and use cases with us. A GSoC application that simply repeats the project description will //NOT// be accepted. We expect you to think about the feature and how it aligns with Mixxx'​s goals, describe potential use cases and propose a plan for implementing a solution. Only students that are active members of the Mixxx community are accepted. If this is not the case yet, just say hello at https://​mixxx.zulipchat.com and discuss your Ideas and use cases with us.
 +
 +====== Preferences Redesign ======
 +Mixxx'​s preferences window has grown with the many features added to Mixxx over the years. Sometimes the design of the preferences has been an afterthought compared to working on the feature that the preferences affect. As a result, the preferences window has become quite complex and can be overwhelming to new users. ​
 +
 +The structure of the preferences code has sometimes been an afterthought too. Writing and editing code for Mixxx'​s preferences can be a hassle, as you may experience working on the GUI design. Some parts of the preferences have code that is over 10 years old which don't follow Mixxx'​s current coding conventions. One issue with the code is that there is no conventional way to specify the default values for preference options in a single place, so this can lead to subtle bugs when different default values are used in different places. Part of this project would involve cleaning up the code for every page of the preferences to use the same coding conventions that are easy to maintain and make it easy to add new preference options.
 +
 +A strong applicant for working on this project would have links to GUI designs they have done before. Experience doing UX testing by observing people using software would be an advantage.
 +
 +
 +====== AutoDJ Improvements =======
 +Users have proposed many ideas for improving AutoDJ. Many users have suggested features to make it easier to plan the timing when tracks will play in AutoDJ:
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1293980
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1467156
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1568928
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1523252
 +
 +Users have suggested ways to make AutoDJ more intuitive to use:
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1727747
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1095287
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1334279
 +
 +There have also been suggestions for alternate ways to have AutoDJ mix the tracks:
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1766164
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1807647
 +  * https://​bugs.launchpad.net/​mixxx/​+bug/​1384873
  
 ====== Measures, Downbeats, Bars and Phrases ====== ====== Measures, Downbeats, Bars and Phrases ======
Line 16: Line 41:
 Most tracks have a 4/4 measure but Mixxx should also allow less common measures like 3/4 or 7/8.  Most tracks have a 4/4 measure but Mixxx should also allow less common measures like 3/4 or 7/8. 
 This would be major benefit compared to other DJ software that assumes that all music has a 4/4 measure, which is incorrect for lots of music. ​ This would be major benefit compared to other DJ software that assumes that all music has a 4/4 measure, which is incorrect for lots of music. ​
-Currently Mixxx is not aware of bars and measures. It would be part of the project to place bars on the auto detected beat grids by a new editor and visualize them on the waveform. 
- 
-Some preliminary work for drawing this information on the waveforms has been [[https://​github.com/​mixxxdj/​mixxx/​pull/​1918|started]]. However, for this to be really useful Mixxx needs a way to store the new time signature and downbeat information in the database and an intuitive user interface for users to edit this information. 
  
 The project might be extended towards a sync feature using this new info or into a feature that auto detect bars and phases. The project might be extended towards a sync feature using this new info or into a feature that auto detect bars and phases.
  
-A strong application will list some specific tracks with different time signatures that will be used for testing the new features. Students with backgrounds in music theory and/or playing percussion instruments are encouraged to apply for this project, but these are not requirements and we welcome your application if you do not have that experience. ​  ​+A strong application will list some specific tracks with different time signatures that will be used for testing the new features. Students with backgrounds in music theory and/or playing percussion instruments are encouraged to apply for this project, but these are not requirements and we welcome your application if you do not have that experience. 
 + 
 +====== Saved Hotcue Routines ("​Flips"​) ======= 
 + 
 +Cue point juggling, sliding faders //and// playing with effects can be quite difficult if you want to do it all at once. 
 +This can be mitigated by allowing to pre-record your hotcue jumps, so that they will be triggered automatically when a certain track position is reached. Serato DJ Pro calls this feature [[https://​serato.com/​dj/​pro/​expansions/​flip|"​Serato Flip"​]] - [[https://​www.youtube.com/​watch?​v=xD3QP4Qfmlk|here'​s an example]] where you can see it in action. 
 + 
 +This project'​s scope includes implementing the data structures and [[mixxxcontrols|Mixxx Controls]] necessary to save these kinds of edits, adding support to Mixxx' engine code and designing a GUI for recording them. 
 + 
 +Related Launchpad Issue: https://​bugs.launchpad.net/​mixxx/​+bug/​1768113 
 + 
 +====== Syncing with external clocks ======= 
 + 
 +It can be fun to go beyond pure DJing - you can produce your own live music and incorporating it into your sets. To be able to do this seamlessly and keep in sync with the other audio sources, a lot of hardware like drum machines, grooveboxes,​ etc. support syncing from/to external clocks. 
 +Some DJ Controllers even have an integrated drum computer (e.g. the [Roland DJ-505]) that can be synced to the currently playing track. However, Mixxx currently does not support clock I/O. 
 + 
 + 
 +In this project you should integrate support for syncing to different clock sources and targets. This  should be implemented in a generic way, so that Mixxx is able to support different protocols. 
 +Building upon this, support [[https://​en.wikipedia.org/​wiki/​MIDI_beat_clock|MIDI beat clock I/O]] and [[https://​ableton.github.io/​link/​|Ableton Link]] should be implemented. 
 + 
 + 
 +Related Launchpad issue: https://​bugs.launchpad.net/​mixxx/​+bug/​682221 
  
 ====== Changing Tempo Tracks ====== ====== Changing Tempo Tracks ======
Line 50: Line 94:
 We recently implemented the import/​export of MusicBrainz IDs according to the [[https://​picard.musicbrainz.org/​docs/​mappings/​|Picard Tag Mapping]] proposal. The next step is extending the MusicBrainz client for retrieving and the Mixxx database and storing those IDs. Afterwards your proposed features can be added based on these IDs. We recently implemented the import/​export of MusicBrainz IDs according to the [[https://​picard.musicbrainz.org/​docs/​mappings/​|Picard Tag Mapping]] proposal. The next step is extending the MusicBrainz client for retrieving and the Mixxx database and storing those IDs. Afterwards your proposed features can be added based on these IDs.
  
-=== Custom Tags === +Retrieval of UUIDs and a new network communication layer is already ​work in progress: ​[[https://github.com/​uklotzde/mixxx/tree/musicbrainz|uklotzde/​mixxx:​musicbrainz]].
- +
-One essential feature that Mixxx is missing is the ability to assign and manage custom tags to tracks. We have already ​collected some ideas what and how to store this information ​in [[https://bugs.launchpad.net/mixxx/+bug/1743702|Launchpad #1743702]]. MusicBrainz records user-provided tags and ratings in their libary which could be used as a starting point and for synchronization. +
-In the Mixxx database simple textual tags could be stored in an inverse index Tag String -> Track ID. It should also be possible to attach the custom tags of a track to the file by exporting/​importing them as file tags. +
  
 ====== Aux Tracks ====== ====== Aux Tracks ======
Line 77: Line 117:
 ====== Something Else! ======  ​ ====== Something Else! ======  ​
      
-As always with Summer of Code, you aren't limited to the suggestions we've made here. If you've got a great idea for a project involving Mixxx then we're looking forward to hearing about it. We recommend spending more than a few days using Mixxx and participating in the community to develop a better understanding ​nof areas where Mixxx could use improvement. Our bug tracker is full of wishlist bugs and other ideas scattered throughout, so if you browse through it, you may find many more ideas for GSoC projects. ​+As always with Summer of Code, you aren't limited to the suggestions we've made here. If you've got a great idea for a project involving Mixxx then we're looking forward to hearing about it. We recommend spending more than a few days using Mixxx and participating in the community to develop a better understanding ​of areas where Mixxx could use improvement. Our bug tracker is full of wishlist bugs and other ideas scattered throughout, so if you browse through it, you may find many more ideas for GSoC projects.
      
-**IMPORTANT:​ You should [[gsocadvice|contact us]] first to get feedback if you're going to submit a proposal for your own project idea!**+**IMPORTANT:​ You should [[gsocadvice|contact us]] first to get feedback if you're going to submit a proposal for your own project idea!** ​We very rarely approve ideas students propose. If you're not already experienced with DJ equipment, we recommend sticking with one of the ideas above.
gsoc2020ideas.txt · Last modified: 2020/03/31 17:30 by be.ing