I am the proud (!) owner of a 70% code-complete JUCE application for an MI/Audio product. I have a customer for the product who is willing to fund development to completion, but I do not have sufficient personal cycles to do this work myself. I am therefore looking for you, if these fit:
- Solid C++ programming skills.
- Good working understanding of JUCE and related tools.
- PC/Win32 and/or Mac development (C++/JUCE).
- Experience with audio/DSP; you do not have to know how to design filters - but plugging them together coherently is definitely a plus.
- Solid understanding of the fundamentals of concurrency / multithreading.
- Can-do attitude
- Good written / verbal communication skills. With these, I do not mind where in the world you are working from.
- Commander in chief of a vast robot army ready to do your every bidding…
The contract will likely run for a few months, and may lead to more work of a similar nature in future. I am looking to build long-term relationships with people that I can do business with. My company enjoys a great reputation based on excellent service to clients, outstanding reliable products and beautiful, shiny, teflon-coated code output. Adding someone to the team who can increase this output without compromising quality - and if possible enhancing it - is my goal.
Interested? Rate is negotiable, subject to skills and experience. Let me know what your expectations are.
email: firstname.lastname@example.org with the subject: JUCE MI Contract
In the email please:
Detail your experience. Be honest please; an honest developer who knows their weaknesses is a better developer, and more capable of rising to challenges. I can offer training and help to cover shortfalls if the basic capabilities are there.
Tell me what gets your juices flowing when you are working on a project.
Tell me what your availability is. This position will be starting in the next 30 days and ramping to full-time SAP.
Provide a C++ code snippet to solve the following. JUCE may or may not make an entrance - up to you:
The blocking function ‘float *getOutputBlock(uint32 &uSize)’ produces a block of uSize float values to be passed to the function ‘void processLargeDoubleArray(double *pdArray)’ where pdArray is of fixed size ‘kProcessArraySize’.
Write a loop suitable for embedding in a user thread, that accepts the results from ‘getOutputBlock’ and marshalls them to call ‘processLargeDoubleArray’ with the same sequence of values, converted to doubles. A-priori it is not known how uSize relates to kProcessArraySize, and this relationship may vary between calls.
The loop should terminate when ‘getOutputBlock’ returns NULL. If there are remaining values not yet passed to ‘processLargeDoubleArray’, those values should be suffixed with zeros to pad to ‘kProcessArraySize’ and passed to processLargeDoubleArray before terminating the loop.
What I am looking for:
- Clean, well documented, readable code
- Good use of the tools at your disposal
I hope this piques your interest and look forward to hearing from you.