Applications for Google Summer of Code 2012 are about to start, and Julian agreed that it'd be very cool to have students work on Juce during that time.
For those of you who're not familiar with SOC, it's a big Google-funded event where they pay selected students to work on Open Source projects. The goal for google is to improve open source projects, some of them they might use themselves, and certainly also to discover future hires.
Applying students who get through the selection process get to work on interesting projects, they get payed quite a lot (around $5K), they obviously improve their resumes and in the process they get used to work with a community and might face problems and requirements they've not faced in their studies yet. In a word, for students it's Bazinga!
For organizations, well, you get free interns! Plus $500 for each project getting through. The only thing to do is to present a convincing application and get the interest from prospective students. I volunteered to do the boring administrative blabbering because it's (of course) in my interest to see some of these projects get into the trunk (but if you really want to do it, I won't fight over it, don't worry…)
If you need more information, there's a FAQ on the official page: http://www.google-melange.com/gsoc/homepage/google/gsoc2012
First Step: Listing Subject Ideas
I propose we list subject ideas we might have for students. It's time for you to dig out the things you've never had time to work on. Please mention as well if you'd be OK to mentor a student working on the given subject. Knowing that according to Google, mentoring can take up to 5 hours a week. But to be honest, I know a couple of students who did the program in the past years and they never required that much attention.
All you have to do is to introduce them to the world of juce, guide them and check their work (fill evaluation forms). You still need the technical ability to code in correct C++ though, because if the student gets stuck, and no one on the forum can help, you'll have to provide the support. But we can organize ourselves to give each students 2 mentors. That's actually recommended by google and would also give us less to do.
I start with a couple of ideas I saw on the forum, and I'll update the post with your ideas:
Formats / Protocols
- 1.VST3 wrapper
- 2.VST3 hosting
- 3.OSC support
- 4.LV2 Hosting - Host LV2 Plugins
- 5.beat detection algorithm
- 6.Audio to MIDI conversion
- 7."Smart Musical Arrangement" assistant
- 8.multicore AudioProcessorGraph processing
- 9.Music Score support
- 10.Office 2010-like "Ribbon toolbar"
- 11.PostScript Renderer
- 12.Direct2D Graphics Renderer - Hardware accelerate graphics rendering on Windows, required for WinRT/Win8ARM support
- 13.Shared Memory (multi-platform) class
- 14.WinRT Port - So Juce Applications can run on Windows 8 ARM
- 15.NaCl Port of Juce
- 16.Complex languages rendering on Linux/Android using Pango
- 17.PostScript Parser
- 18.Wayland port of Juce. Wayland is the next-gen X server and will hit 1.0 release in few month
- 19.Integrate juce with the OS specific accessibility APIs (VoiceOver on mac etc), allowing blind users to use juce apps
Other ideas? Support for a specific (open) format? Algorithms? C++11 fun stuff?