• These commercial threads are for private transactions. diyAudio.com provides these forums for the convenience of our members, but makes no warranty nor assumes any responsibility. We do not vet any members, use of this facility is at your own risk. Customers can post any issues in those threads as long as it is done in a civil manner. All diyAudio rules about conduct apply and will be enforced.

symphonic-mpd

I'm a member of SMPD forum group that is trying to internationalize SMPD.
So, I would like to add some explanations about the GPL. This explains why SMPD's software is open to the public on a membership basis.

SMPD was released to the public in late 2017. At this time, there was no membership system and anyone could download it. I don't know if the kernel source has been modified at this point. The PhileWeb forum was used to exchange information for the development. This forum is the Japanese version of diyAudio.
In late 2018 a version using Xenomai as the real-time kernel was released and thorough tuning for higher sound quality has begun. It seems that the scale of modification of the kernel source code has become large around this time.

In March of last year, a PhileWeb member interested in this tuning requested disclosure of the source code.
Papalius rejected this request because it was before version 1.0 was released and it was not ready to be released. And he set up a dedicated forum where only members could download SMPD and write/exchange information for development. Therefore, I think it's better to discuss the source code in a dedicated forum. Thank you for your understanding.

I would like to add about SMPD membership registration.

Anyone who writes in this thread is unconditionally admitted as a member. If you are interested in SMPD even if you haven't written in this thread, please send me an email with the reason why you are interested in SMPD. If there is no problem, I would like to approve it. As Papalius' first message says, my email address is "kubotayo@jcom.home.ne.jp".
When Papalius is focused on development, I think it would be faster if you sent an email to my address.
 
Thank you @kubotayo for your post.
I downloaded and ran SymphonicMPD back in 2017...

It was an interesting concept but did not encompass any of my i2s devices at the time and did not work with USB devices.

I checked in regularly on progress but eventually found I was no longer able to download and run newer versions.

If my post here admits me as a member I would be interested to download and try an updated version..???

Have you a link that would facilitate this ?

Bob
 
A slight addition to the last message.
Delete the sentence "Anyone who writes in this thread ..." at the beginning of the last phrase.

Then change the second sentence "If you are interested in SMPD even if you haven't written in this thread, please...." to the following (this will be the opening sentence of the last phrase).

"If you are interested in SMPD, please send me an email with the reason why you are interested in SMPD and your handle(nick name) in SMPD forum."
 
I will not engage into a technical discussion since apparently there is and will be none here.

But the GPL issue is obvious - a modified kernel driver is GPL and its source code must be provided along the compiled binaries to users. It does not have to be distributed publicly, but the users' right to publish (and further modify) the code cannot be limited in any way. It does not matter whether it is finished, as long as the compiled code is distributed.

The standard way is to publish the patches of the driver on github or other source-code management website.

BTW even a completely new linux kernel module is GPL, unless it employs some complicated shims like the infamous NVIDIA driver and even that is questionable (lawyers argue).
 
The source code must be made available to users of the binaries. It does not have to be published. If someone who legally gets hold of the binaries asks, he must be provided the source which he can modify or publish at his own discretion.

If the aforementioned club member using binaries compiled from the modified source asked and was declined (for whatever reason)... that is certainly against GPL. But as the saying goes Where there's no plaintiff, there's no judge.
 
Hi, HenrikEnquist

The SD images of symphonic-mpd include a variety of open software, including the GPL, and the works of the symphonic-mpd Research and Development Club, which I organize.

The smpd R&D Club works contain two kernel modules that serve as engines for music playback.

If you are of the opinion that kernel modules should also be strictly GPL-covered, we offer the following options
In other words, we provide an SD image with these kernel modules removed.
Spotify Connect will be able to produce sound with only the modification of spotifyd.conf.
shairport-sync and mpd can be sounded out if you enable the ALSA backend, rebuild it, and change the conf file appropriately.
The legal status of kernel modules is complicated and (as far as I understand it) depends on country. But we can simplify it to two groups:
- 1: New modules, written from scratch. Can be closed source in some countries, GPL in other.
- 2: Modified existing GPL modules. Simple, always GPL.


Which group does the symphonic-mpd modules belong to?



My personal opinion is that they should all be open source. There is also a statement from the kernel developers on the topic:
Position Statement on Linux Kernel Modules

We, the undersigned Linux kernel developers, consider any closed-source Linux kernel module or driver to be harmful and undesirable. We have repeatedly found them to be detrimental to Linux users, businesses, and the greater Linux ecosystem. Such modules negate the openness, stability, flexibility, and maintainability of the Linux development model and shut their users off from the expertise of the Linux community. Vendors that provide closed-source kernel modules force their customers to give up key Linux advantages or choose new vendors. Therefore, in order to take full advantage of the cost savings and shared support benefits open source has to offer, we urge vendors to adopt a policy of supporting their customers on Linux with open-source kernel code.
Full statement here:Kernel Driver Statement — The Linux Kernel documentation
 
I am still struggling to understand the points....
If smpd was for public/sales/distribution, the source code would need to be available to end users. But, smpd must be regarded as internal use in the current circumstances.

Do you mean the following statement is wrong?

GNU General Public License - Wikipedia

<Terms and conditions / Use of licensed software>

In purely private (or internal) use—with no sales and no distribution—the software code may be modified and parts reused without requiring the source code to be released.

For sales or distribution, the entire source code need to be made available to end users, including any code changes and additions—in that case, copyleft is applied to ensure that end users retain the freedoms defined above.
 
Hi, phofman ,HenrikEnquist

Thank you very much for your feedback.

The kernel module built into symphonic-mpd is written from scratch.

One is the implementation of Real-Time Driver Model (RTDM) for the Xenomai kernel.
A playback engine that bypasses the ALSA library and ALSA driver to feed PCM frames to the serializer's FIFO, similar to how an FPGA buffer playback is done on a tiny FIFO on a raspberry pi.

The other kernel module implements a ring buffer to receive PCM data from playback software running on the Linux kernel (mpd, shirtport-sync, spotify connect, etc.) and pass it to the real-time domain of the Xenomai kernel in a lockless.

Tuning the DMA is a small part of the effort we are doing with symphonic-mpd, which is implemented by modifying the source of the Linux kernel.
However, there is no doubt that phofman is far more knowledgeable and experienced about I2S in raspberry pi. Please forgive me that these sources are unlikely to help you, and that the content is of little value to you.

If you are familiar with the terms of the GPL, could you please tell us whether the smpd R&D Club, which runs the official forum, is an "organization" as defined by the GPL?
In other words, once we know the exact conditions under which an organization would qualify as an "organization" under the GPL, we hope to run the smpd R&D Club according to those conditions.
 
Hi, TNT

I am an audiophile and the main target of this product is me.
In other words, this product is aimed at audiophiles.

This is a joke, but there aren't many software, commercial product or open source, that actually improves sound quality.
Therefore, it is a worthwhile product for users of playback environments where the sound quality is improved by this software.
 
This is the opening part of the original English "Frequently Asked Questions about the GNU Licenses".
The Japanese translation of that is linked by NORIF in his message.
"The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization."
Frequently Asked Questions about the GNU Licenses
- GNU Project - Free Software Foundation


I think this answers phofman and HenrikEnquist's question, so I quoted it.
 
My understanding of GPL is that those receiving compiled code are entitled to receive the source code from which the binary was built, under the same terms as the original code - i.e. GPL. GPL allows them to distribute and modify the code as wished, provided the result is again distributed under GPL.

Since the binaries are not distributed publicly, the same holds for the source code. But every club member entitled to receive the binary is also entitled to receive the source code. And he cannot be prevented from distributing the code further outside of the club as it is his right provided by GPL.

But I am a technician and care about technology. How does the real-time xenomai driver improve quality of the RPi I2S signal when all it does is feeding samples into the output PCM interface FIFO, just like the regular linux I2S driver? What effect on sound does it have whether the samples are written into the FIFO with 5ms or 5us delay, as long as they are written continuously and the FIFO is kept filled optimally? Samples from the FIFO are clocked-out with hardware clock, independent of any software (apart of setting some clock generation params which does not apply for I2S slave mode, preferred for RPi).
 
I would like to add to what phofman already said:

symphonic mpd obviously uses mpd ( Music Player Daemon ) which is released under the GPL as well and it´s author is very clear about it:

"The most important part is: you must provide the source code of all GPL components in your product.
This implies that all of your MPD modifications/patches must be freely available. If you believe that your patches should be exclusive to your product, keep in mind that your product is already standing on the giant shoulders of hundreds of other people who made MPD what it is today. Be part of the community, and don’t fight against it.
The GPL also implies that you must not use any proprietary libraries."

( Commercial Products running the Music Player Daemon )
 
If you go public under GPL you have to release everything so that others can land at exactly the same code you're publishing. It's clearly outlined.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

If you keep it for yourself. No need for releasing anything for obvious reasons.

Ask Tim from Moode. He's been there too some years back. The trouble starts if somebody issues a complaint.


However.

Nice project. Exactly the strategy I'm following, implementing and blogging about since years.

Luckily the audio interfaces are getting better and better and all these major efforts show less and less impact.

Betting on I2S. Hmmh. I got back to USB a while ago. USB audio is much more flexible.

What I don't like at all is an all MPD approach.



Good luck with the project.
 
Last edited:
My understanding of GPL is that those receiving compiled code are entitled to receive the source code from which the binary was built, under the same terms as the original code - i.e. GPL. GPL allows them to distribute and modify the code as wished, provided the result is again distributed under GPL.

Since the binaries are not distributed publicly, the same holds for the source code. But every club member entitled to receive the binary is also entitled to receive the source code. And he cannot be prevented from distributing the code further outside of the club as it is his right provided by GPL.
This exactly my understanding as well. There is no need to give the sources to us here unless the image is made available as well. But any member of the club that receives the image also has a right to recieve the sources. And then if that member decides to release it to the public then he or she is free to do that.