Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Convolving possible?
16-01-2014, 19:03
Post: #1
Convolving possible?
Hi Simon,

currently I'm not using MinimStreamer but only MinimServer on a Synology NAS.
I'm really happy with the work you've done so far and have to thank you.
Having read about the new MinimStreamer I immediately thought if this was a possibility to get real-time audio convolving onto my NAS.
Have you thought about adding such a feature and do you think it's possible?
A very nice example for real-time audio convolving which is unfortunately only available for Windows is the RoomEQ Plugin for Foobar.

Thanks

Claas
Find all posts by this user
Quote this message in a reply
17-01-2014, 10:57
Post: #2
RE: Convolving possible?
(16-01-2014 19:03)claas Wrote:  Hi Simon,

currently I'm not using MinimStreamer but only MinimServer on a Synology NAS.
I'm really happy with the work you've done so far and have to thank you.
Having read about the new MinimStreamer I immediately thought if this was a possibility to get real-time audio convolving onto my NAS.
Have you thought about adding such a feature and do you think it's possible?
A very nice example for real-time audio convolving which is unfortunately only available for Windows is the RoomEQ Plugin for Foobar.

Thanks

Claas

This feature seems useful, but I would expect it to be implemented by the player (or the speaker), not by the server.
Find all posts by this user
Quote this message in a reply
17-01-2014, 11:21
Post: #3
RE: Convolving possible?
(17-01-2014 10:57)simoncn Wrote:  This feature seems useful, but I would expect it to be implemented by the player (or the speaker), not by the server.

Ideally yes. The problem is that there are very few systems offering this.
E.g. using a Linn system with a Linn Majik DS (in my case) and Kinsky as ControlApp and MinimServer as Mediaserver it's impossible.

The same is true for people using a Squeezebox (in theory there are possibilities to do it, but in practice non of them works when the Server is running on a NAS).

Also I'm quite sure that with a Sonos system there are no solutions as soon as you use a NAS and a Tablet-Control-App instead of running a player on a PC or Mac.

So all these configurations where no PC/Mac is in-between would highly benefit from MinimStreamer offering this capability.

Thanks for considering.

Claas
Find all posts by this user
Quote this message in a reply
17-01-2014, 11:25
Post: #4
RE: Convolving possible?
(16-01-2014 19:03)claas Wrote:  Hi Simon,

currently I'm not using MinimStreamer but only MinimServer on a Synology NAS.
I'm really happy with the work you've done so far and have to thank you.
Having read about the new MinimStreamer I immediately thought if this was a possibility to get real-time audio convolving onto my NAS.
Have you thought about adding such a feature and do you think it's possible?
A very nice example for real-time audio convolving which is unfortunately only available for Windows is the RoomEQ Plugin for Foobar.

Thanks

Claas

Hi Claas,

your request made me curious and I've a few questions:
What are the usage scenarios for applying digital filters to the audio signal on the server side?
Which filters would you want to apply and how many filter coefficients would be useful for your purposes?
How would you determine those filter coefficients?
Find all posts by this user
Quote this message in a reply
17-01-2014, 11:35
Post: #5
RE: Convolving possible?
(17-01-2014 11:25)winxi Wrote:  What are the usage scenarios for applying digital filters to the audio signal on the server side?

You may know that no real-life room is perfect in terms of wavelength neutrality. That means that the music is "destroyed" by reflections and absorption of certain wavelengths by your room. Also no speaker behaves perfect. By applying a realtime-filtering you can adjust the music signal and by this compensate for negative effects. Goal: Better sound :-)

See also:
DRC
and
BruteFir

Quote:Which filters would you want to apply and how many filter coefficients would be useful for your purposes?

I'd apply one filter per room. The number of coefficients depend on a lot of parameters. I cannot answer that before I could try it with MinimStreamer :-)
Quote:How would you determine those filter coefficients?

I think I'll start here
Find all posts by this user
Quote this message in a reply
17-01-2014, 12:21
Post: #6
RE: Convolving possible?
(17-01-2014 11:35)claas Wrote:  I'd apply one filter per room. The number of coefficients depend on a lot of parameters. I cannot answer that before I could try it with MinimStreamer :-)

I would be interested in exploring the possibility of adding a plug-in capability in a future release of MinimStreamer to enable third-party processing of an linear PCM stream (WAV, L16, L24 or AIFF). The plug-in would need to be an executable that reads the original input stream from standard input and writes the modified output stream to standard output. The plug-in would need to have its own configuration file that is separate from the minimserver.config file.

There would need to be some mechanism for MinimStreamer to inform the plug-in about the input stream parameters (MIME type, bit depth, sample frequency, channel configuration). For WAV and AIFF streams, the stream header provides this information. For L16 and L24 streams, some other mechanism would be necessary.

If the plug-in is changing these parameters for the output stream, there would also need to be some way for the plug-in to inform MinimStreamer of the changed values.

If such a plug-in capability were to be supported in the future, would you be interested in developing a plug-in for this? Which stream types from the above list would you want to process in the plug-in?
Find all posts by this user
Quote this message in a reply
17-01-2014, 18:08
Post: #7
RE: Convolving possible?
(17-01-2014 12:21)simoncn Wrote:  I would be interested in exploring the possibility of adding a plug-in capability in a future release of MinimStreamer to enable third-party processing of an linear PCM stream (WAV, L16, L24 or AIFF). The plug-in would need to be an executable that reads the original input stream from standard input and writes the modified output stream to standard output. The plug-in would need to have its own configuration file that is separate from the minimserver.config file.

There would need to be some mechanism for MinimStreamer to inform the plug-in about the input stream parameters (MIME type, bit depth, sample frequency, channel configuration). For WAV and AIFF streams, the stream header provides this information. For L16 and L24 streams, some other mechanism would be necessary.

If the plug-in is changing these parameters for the output stream, there would also need to be some way for the plug-in to inform MinimStreamer of the changed values.

If such a plug-in capability were to be supported in the future, would you be interested in developing a plug-in for this? Which stream types from the above list would you want to process in the plug-in?

Dear Simon,

unfortunately I'm not a software developer and thus I'm not too confident that I'll be able to develop such a Plugin.
But maybe you yourself are able to implement it?
Today you are also "controlling" FFMPEG for transcoding from within MinimStreamer, not?
Some projects that come into my mind that might be useful for an on-the-fly-convolver-Plugin are
BruteFIR for applying the FIR filter
JACK for routing the signal: File->BruteFIR->MinimStreamer->Output

Then the users could use FIR-filters which they create with whatever solution they want to use.

Some things that come into my mind regarding file formats:
From my point of view FLAC and ALAC in all flavours regarding bit-depth and sampling frequency have to be supported. Maybe this could be achieved by a path:
File->MinimStreamer-Transcode-to-WAV->BruteFIR->MinimStreamer->Output

What do you think?

Claas
Find all posts by this user
Quote this message in a reply
17-01-2014, 18:28
Post: #8
RE: Convolving possible?
(17-01-2014 18:08)claas Wrote:  Dear Simon,

unfortunately I'm not a software developer and thus I'm not too confident that I'll be able to develop such a Plugin.
But maybe you yourself are able to implement it?
Today you are also "controlling" FFMPEG for transcoding from within MinimStreamer, not?
Some projects that come into my mind that might be useful for an on-the-fly-convolver-Plugin are
BruteFIR for applying the FIR filter
JACK for routing the signal: File->BruteFIR->MinimStreamer->Output

Then the users could use FIR-filters which they create with whatever solution they want to use.

There is no possibility that I could implement a convolving plug-in.

Quote:Some things that come into my mind regarding file formats:
From my point of view FLAC and ALAC in all flavours regarding bit-depth and sampling frequency have to be supported. Maybe this could be achieved by a path:
File->MinimStreamer-Transcode-to-WAV->BruteFIR->MinimStreamer->Output

What do you think?

Claas

This is what I have in mind for the possible plug-in support, except that plug-ins should be able to process big-endian linear PCM (L16 and L24) as well as little-endian linear PCM (WAV).
Find all posts by this user
Quote this message in a reply
17-01-2014, 18:36
Post: #9
RE: Convolving possible?
(17-01-2014 18:28)simoncn Wrote:  There is no possibility that I could implement a convolving plug-in.

Ok, that's a pitty.

Maybe someone with more coding talent than me but similar wishes can do it.

Another idea: Do you think it'll be possible to implement compatibility with VST plugins?
Then one could discuss with Mathaudio if they would release a Linux-Version of their RoomEQ VST Plugin.
Find all posts by this user
Quote this message in a reply
17-01-2014, 18:47
Post: #10
RE: Convolving possible?
(17-01-2014 18:36)claas Wrote:  
(17-01-2014 18:28)simoncn Wrote:  There is no possibility that I could implement a convolving plug-in.

Ok, that's a pitty.

Maybe someone with more coding talent than me but similar wishes can do it.

Another idea: Do you think it'll be possible to implement compatibility with VST plugins?
Then one could discuss with Mathaudio if they would release a Linux-Version of their RoomEQ VST Plugin.

The VST plug-in interface is based on a C/C++ API, which is very different from the interface to external stream processing programs that MinimStreamer is using. Perhaps someone (not me) could implement a translation layer.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)