View Single Post
Old 11-14-2011, 11:36 PM   #9
Human being with feelings
Join Date: Nov 2011
Posts: 18

> Simple Audio Selection and auto latency measuring to show a user there estimated latency.
> In line with this maybe a Direct Monitor option, so if a persons latency is too high for local loopback channel then a direct monitor option could mute local and use original source.

I played with monitoring latency on the weekend because it bothers me that there is an audible delay. After adding some instrumentation I found that the estimated latency of 5 ms was not being achieved, in practice the latencies were all over the place, often 15-20 ms.

Achieving good monitoring performance in Ninjam will require refactoring the audio processing callback. It does way too much work today, including some calls that may block.

As a test I ran just the audio code copying input to output without the rest of Ninjam and latencies never reached 15-20 ms, they were lower and more predictable.

So at the moment I find the software monitoring a bit of a mis-feature since it performs poorly. These low latency issues are only a problem if we want to support software monitoring. The rest of Ninjam does not need low latency.

> An Auto Levelling option that could with one click adjust all users volume sliders to get an even mix, maybe even a realtime normalize function to fix low output's on a client's output.

Yes! Awesome idea. It can be a chore when different users come in at different volume levels and you need to tweak it manually. Since the client has audio data for the next interval it can easily look into the "future" to normalize levels.

> User's Channels to ASIO Channels, so user 1 = 1/2 user 2 = 3/4 and so on, this will be useful for live events, then the main audio streamer could route these outs into REAPER or other DAW or Audio Host.
> This would allow Eq'ing, other FX's and better mixing for the final out the listener would hear.

This sounds like you don't want Ninjam to do mixing. Instead it should output all channels to a software routing system (ASIO, JACK, etc). This is definitely doable although it's something that ReaNinjam could do instead of the stand-alone client. But if someone contributes patches for this I'd merge it.

> Maybe rather than adding addition features these could be more a app based system, so people could write app's for NINJAM, which then some programmers could even sell which will encourage people to program more for it and more to use it.
> On this same idea maybe if possible to even give NINJAM VST Host abilities too.

In theory a Ninjam client could be implemented as a VST host and each component in the audio path could be a plugin. That would be very flexible but also means a more complex user interface where maybe a DAW is better suited.

My feel on these sorts of features is that Wahjam as a stand-alone Ninjam client should be simple and allow a musician to get jamming without knowledge of digital audio or recording. Users who want to tweak the signal chain and have total control would go with ReaNinjam.

Thanks for sharing your ideas!
stefanha is offline   Reply With Quote