GSoCIdeas

From Toplap
Jump to navigation Jump to search

SuperCollider

ChucK

Netclock

  • Implementing network clock sharing libraries
  • Contributing ports to Mac OS X and Windows to the PTPd project

Fluxus

  • See: http://savannah.nongnu.org/task/?group=fluxus
  • UI improvement:
    • features:
      • positioning the text cursor with a mouse
      • traditional lisp autoindent / reindent (modelled after, and probably reusing indentation code of DrScheme)
      • autocompletion (function names from current namespace, verbatim text from current script)
      • API help as you type (at least parameter names/amount of a function, optional abstract of the reference guide)
      • copy and paste with other applications
      • jumping between words by holding a key (CTRL?), other editing niceties that most text editors have
      • more efficient display - only draw what should fit on the screen. Currently draws too much text and slows down considerably for large files
      • fix cursor positioning errors and glitches
      • auto line-breaking of text
      • split screen estate between the editor and REPL shell (so the error messages / interaction with interpreter is available in context)
    • implementation:
      • consider reusing functionality of the existing editor / text widgets, without obscuring the visuals. One possible approach is to factor out the GLUT and use a more feature rich toolkit (artm-qt branch is long way along this route already). Once toolkits are switched, a new text widget may be derived from the toolkit's, inheriting the editing functionality, but overriding the rendering to be visuals friendly (e.g. making the renderer to fill the widget background, allow text transparency and outlines etc).
    • restrictions:
      • recording / playing back user interaction should remain intact and extended to support any new features of the UI (e.g. splitting the screen to open the REPL sub-window, resizing editor window, pasting from the outside world etc)
    • skills: c++, GUI programming, custom widgets implementation, OpenGL
    • difficulty: moderate to hard
  • improvement of audio analysis functions:
    • improve the fft of fluxus by making the number of harmonic groups that (gh) uses optional
    • implement new fluxus-audio algorithms like:
      • beat detection
      • bpm detection
      • pitch detection
      • filtering of audio (bandpass to get different frequency ranges)
    • skills: c++, audio algorithms, jack
    • difficulty: moderate to hard
  • Windows port
    • port Fluxus and all of its modules to Windows
    • difficulty: moderate
    • skills: c++, GLUT, Cygwin or mingw, Scons
  • Bugfixes
    • Various minor bugs and issues are making the life of new users difficult. We could very much use help fixing these. Have a look at the Bugs and Tasks list at Savannah and address those which we currently aren't able to progress. This tasks would involve fixing the existing code. You will gain a great overview of all our code, and the libraries used by Fluxus including the Open Dynamics Engine, FFTW, liblo, glew, libsndfile.
    • difficulty: moderate
    • skills: c++, scheme, comfortable with visiting many different pieces of code in a large project
  • Animation System
    • Implementing some sort of animation system - could be a simple sequencer that triggers events at certain intervals (e.g. a keyframe-based approach), or a more advanced timeline system with nested timelines inside. Needs some discussion, planning, experimenting, and thought.
    • difficulty: advanced
    • skills: c++, scheme, realtime animation
  • New modules
    • Develop new modules/bindings in order to extend the capabilities of Fluxus. The implemented modules are open for discussion, but we would encourage some of the following: OpenCV (computer vision), ARtoolkit (augmented reality), Arduino (electronics prototyping), TUIO (multitouch tables).
    • difficulty: moderate
    • skills: c++, scheme, PLT Scheme C API and/or Foreign Interface

Others

  • Implementing new live coding language