There is a json lib here that my colleage wrote for chipKIT (Microchip PIC32 Arduino Compatible boards). It may work with Arduino. At its core it makes calls to Arduino libs used in chipKIT. I believe it does make use of malloc, which from my understanding does not work so great on Arduino. Its maintained and used heavily but not documented.
Actually, the chipKIT Uno32 and Max32 boards based on the PIC32 that are Ardunio compatible seem more compatible to Arduino than DUE. Most pins on the chipKIT boards have 5V tolerant inputs where the DUE does not. This means that most Arduino shield will work with chipKIT but not DUE. I imagine that many people will end up frustrated with a DUE purchase to find out there existing sheilds don't work (and may even damage there SAM3A chips).
So my issue is that I am going to have many projects and many libraries and maybe 3-5 users. The libraries will be changing over time so I want to track them as sub modules, but git cannot track a project outside of the folder where it located.
Actually I figured out how to do it... If I have a library in the libraries folder it is included using the <>, if I put it in the project I can just include it using the local path using "". My libraries can just be duplicated in each project with the specific version needed for that specific project.
They way a light organ usually works is by using analog low, ban and high pass filters to isolate signal frequencies to trigger specific lights. Unless you used such filters on your audio signal prior to entering the ADC on the uC you will need to do this audio separation in software. The software technique to do this is call a discrete fourier transform (DFT) or its faster cousin the fast fourier transform (FFT).
It looks like someone has already done something like what you thinking about here:
I'm wondering if anyone has any suggestions for managing Arduino projects that use libraries using the git version control system. Since the library directory exists in the same directory as individual projects it seems impossible to make a library that is used by your project a submodule.