Quote from Mark Waples on October 10, 2021, 6:15 pmHi I am developing a media player with preloaded mp3's and I want to protect the mp3 tracks from being copied as I have to pay a royalty fee for the music.
Is this at all possible?
Mark
Hi I am developing a media player with preloaded mp3's and I want to protect the mp3 tracks from being copied as I have to pay a royalty fee for the music.
Is this at all possible?
Mark

Quote from impactband4u on October 10, 2021, 7:47 pm@mark-waples
If you Embedded the mp3 tracks into your program, they can listen to the Embedded tracks and not copy it, BUT there is NO WAY that you can protect the mp3 files! Most soundcards can record music that play direct into a DAW program. So they can make copies easily.
If you Embedded the mp3 tracks into your program, they can listen to the Embedded tracks and not copy it, BUT there is NO WAY that you can protect the mp3 files! Most soundcards can record music that play direct into a DAW program. So they can make copies easily.
Quote from Mark Waples on October 10, 2021, 10:48 pm@impactband4u
thank you for the prompt reply - just as I thought :(
thank you for the prompt reply - just as I thought :(

Quote from impactband4u on October 10, 2021, 11:14 pm@mark-waples
If you want to sell music files?, the only way to protect it from being copied without paying for it would be to make a 30 or 60 second etc. demo of each track for example, or add a voice over, click sound, etc, over your music files. If they like the music file, they can then buy the complete mp3 file from you. But if you have like 10 000 tracks, it will take some time! :(
Unfortunately there is no other way to protect ANY music file!
Greetings
If you want to sell music files?, the only way to protect it from being copied without paying for it would be to make a 30 or 60 second etc. demo of each track for example, or add a voice over, click sound, etc, over your music files. If they like the music file, they can then buy the complete mp3 file from you. But if you have like 10 000 tracks, it will take some time! :(
Unfortunately there is no other way to protect ANY music file!
Greetings

Quote from Vadim on October 11, 2021, 7:16 am@ mark-waples
There is another approach - since the music will be loaded into your program (for example, files with music will be in a protected archive), you can use the subroutine to keep track of which programs are running. And if some sound recording program starts running in your computer, you can automatically shut down the program with a message that the program is not running at the same time as the recording program in order to protect the rights to the musical work. You can even make it so that your program shuts them down.
For example, you could call such a subroutine every quarter of a second using a timer (the text file should have lines with the window titles from your forbidden programs, because the code below checks the titles of the windows that appear in the system):
:monitoring
SetVar "[TitleH]" "[Title]"
zmGetForegroundWindow "[HWND]"
zmGetWindowTitle "[HWND]" "" "[TitleH]".blacklisting
FileLen "[PubDir]BlackList.txt" "[BlackLen]"
Loop "1" "[BlackLen]" "[i]"
FileRead "[PubDir]BlackList.txt" "[i]" "[BlackStr]"
SearchStr "[BlackStr]" "[TitleH]" "[blacklist]" ""
If "[blacklist]" "<>" "0"
GoSub "QuickExit"
EndIF
EndLoop
ReturnUsing the zmFunctions plugin (Peter Pavlov) https://visualneo.com/forum/topic/loc-file-for-zmfunctions
But this will not give a guarantee, because there can always be a program that you did not take into account. However, for 95% of users this approach will work - they will not spend a lot of time to learn how to bypass protections (for example, connecting an external recording device instead of speakers).
@ mark-waples
There is another approach - since the music will be loaded into your program (for example, files with music will be in a protected archive), you can use the subroutine to keep track of which programs are running. And if some sound recording program starts running in your computer, you can automatically shut down the program with a message that the program is not running at the same time as the recording program in order to protect the rights to the musical work. You can even make it so that your program shuts them down.
For example, you could call such a subroutine every quarter of a second using a timer (the text file should have lines with the window titles from your forbidden programs, because the code below checks the titles of the windows that appear in the system):
:monitoring
SetVar "[TitleH]" "[Title]"
zmGetForegroundWindow "[HWND]"
zmGetWindowTitle "[HWND]" "" "[TitleH]"
.blacklisting
FileLen "[PubDir]BlackList.txt" "[BlackLen]"
Loop "1" "[BlackLen]" "[i]"
FileRead "[PubDir]BlackList.txt" "[i]" "[BlackStr]"
SearchStr "[BlackStr]" "[TitleH]" "[blacklist]" ""
If "[blacklist]" "<>" "0"
GoSub "QuickExit"
EndIF
EndLoop
Return
Using the zmFunctions plugin (Peter Pavlov) https://visualneo.com/forum/topic/loc-file-for-zmfunctions
But this will not give a guarantee, because there can always be a program that you did not take into account. However, for 95% of users this approach will work - they will not spend a lot of time to learn how to bypass protections (for example, connecting an external recording device instead of speakers).

Quote from impactband4u on October 11, 2021, 8:18 am@vadim
The problem is.... there are hundreds of recording software out there. If you think you blacklist them all, a new one pops up :). The other thing is that i can play the music file on the computer and connect my soundcard's output to another computers input and record the music file into a DAW program there.
I worked with music files for years and never found a music file that cannot be copied or duplicate at some point.
Greetings :)
The problem is.... there are hundreds of recording software out there. If you think you blacklist them all, a new one pops up :). The other thing is that i can play the music file on the computer and connect my soundcard's output to another computers input and record the music file into a DAW program there.
I worked with music files for years and never found a music file that cannot be copied or duplicate at some point.
Greetings :)

Quote from Vadim on October 11, 2021, 8:55 am@impactband4u
Yes, this type of defense is like a tug-of-war.) It is always harder to defend than to circumvent. There is no such thing as an absolute defense. That goes for what's on the screen as well (images, videos). Of course, this needs to be understood. Usually it's all about the balance of effort and result. If the result of the protection satisfies the creator of the protection, then why not protect. If it is easier for the user to pay than to bypass the protection, then he will pay or refuse to use the application. Only when designing a protection, one should try to make sure that it does not interfere with good users who do not intend to infringe on anyone's rights.
It is also possible to use psychological ways (or related to the psychology of personal responsibility). For example, it is possible to mark audio files, when passing them to a particular user (for example, by adding a special noise to some part of the audio file). In this case, the user can be warned that by the file it is always possible to recognize from whom it escaped to the net. This could stop the file from being distributed, because that is the problem, if I understand correctly. But in this case, it would be necessary to maintain a database in which audio files of users or their signatures, hash sums, etc. would be stored.
Yes, this type of defense is like a tug-of-war.) It is always harder to defend than to circumvent. There is no such thing as an absolute defense. That goes for what's on the screen as well (images, videos). Of course, this needs to be understood. Usually it's all about the balance of effort and result. If the result of the protection satisfies the creator of the protection, then why not protect. If it is easier for the user to pay than to bypass the protection, then he will pay or refuse to use the application. Only when designing a protection, one should try to make sure that it does not interfere with good users who do not intend to infringe on anyone's rights.
It is also possible to use psychological ways (or related to the psychology of personal responsibility). For example, it is possible to mark audio files, when passing them to a particular user (for example, by adding a special noise to some part of the audio file). In this case, the user can be warned that by the file it is always possible to recognize from whom it escaped to the net. This could stop the file from being distributed, because that is the problem, if I understand correctly. But in this case, it would be necessary to maintain a database in which audio files of users or their signatures, hash sums, etc. would be stored.
Quote from Mark Waples on October 11, 2021, 9:39 am@impactband4u
@vadim
Thanks both - I recognise that this is a common issue and DAW software will always be an problem.
I did think maybe I could encrypt the MP3s and at the point of playing decrypt the file on the fly.
This way would at least stop the files from being presented "in plain view" for the casual copier.
I am not too worried about the daw situation as my intended audience is small and niche.
I am only talking about 50 mp3's max.
Thanks both - I recognise that this is a common issue and DAW software will always be an problem.
I did think maybe I could encrypt the MP3s and at the point of playing decrypt the file on the fly.
This way would at least stop the files from being presented "in plain view" for the casual copier.
I am not too worried about the daw situation as my intended audience is small and niche.
I am only talking about 50 mp3's max.

Quote from Vadim on October 11, 2021, 12:23 pm@mark-waples
If you nest the mp3s, they will be automatically extracted to the temporary files folder during playback and you can copy the file from there. Therefore, this method is not suitable. To play the file on the fly you can try the new VisualNEO Win features for handling zip archives. I haven't tried it myself yet, I don't know if it will work.
If you nest the mp3s, they will be automatically extracted to the temporary files folder during playback and you can copy the file from there. Therefore, this method is not suitable. To play the file on the fly you can try the new VisualNEO Win features for handling zip archives. I haven't tried it myself yet, I don't know if it will work.
Quote from Mark Waples on October 11, 2021, 12:54 pm@vadim
I think even with the zip feature you will still have to extract the zip content to a folder and in doing so will expose the files.
I think even with the zip feature you will still have to extract the zip content to a folder and in doing so will expose the files.

Quote from Vadim on October 11, 2021, 1:03 pm@mark-waples
If I understand correctly, the new commands allow you to use a memory stream instead of a file. Take a look at the commands that work with MimeStream. For example FileToMimeStream.
https://winhelp.visualneo.com/Files1.html#ZipString
If I understand correctly, the new commands allow you to use a memory stream instead of a file. Take a look at the commands that work with MimeStream. For example FileToMimeStream.

Quote from HPW on October 11, 2021, 1:05 pmHello,
Yes, when using the zip features you would get it into a MIME-Stream.
I did a quick googling after "delphi play mp3 from memory" and get some links to read.
For example:
https://stackoverflow.com/questions/6235673/how-to-play-mp3-file-from-memory-in-delphi
So when someone would write a plugin with the BASS Audio Library it should be possible to play mp3 from memory.
But the licensing seems either expensive or does not allow it to use in multiple products.
So it seems technical possible, but not sure if it make sense here.
Regards
Hans-Peter
Hello,
Yes, when using the zip features you would get it into a MIME-Stream.
I did a quick googling after "delphi play mp3 from memory" and get some links to read.
For example:
https://stackoverflow.com/questions/6235673/how-to-play-mp3-file-from-memory-in-delphi
So when someone would write a plugin with the BASS Audio Library it should be possible to play mp3 from memory.
But the licensing seems either expensive or does not allow it to use in multiple products.
So it seems technical possible, but not sure if it make sense here.
Regards
Hans-Peter

Quote from Talker on October 13, 2021, 4:30 amimpactband4u is correct. It's impossible to secure your recordings. The only secure way is to let the target audience hear only part of the verse and part of the bridge/chorus.
It's not just DAWs that make it easy to record anything that's playing on your computer, it's also any screenrecorder out there :-(. Indeed, anyone with a high-quality microphone in his smartphone could hold it in front of a good quality speaker and record it that way.Another relatively secure option would be to register your music with a music publisher. At least on YouTube and Spotify that would probably work. I know that YouTube checks every new upload for possible copyright issues. I'm a songwriter myself. Must've compose about 200 songs. At one point, while uploading a remix of one of my older songs "I got caught". YouTube detected that it sounded too much like an existing song (my own original recording! LOL).
Vadim is raising an interesting psychological issue. It reminds me of securing one of my own software plug-ins. I didn't want to set up a complete activation system/server because it was way too costly. Besides I didn't want to hassle customers with anything like that. I don't have all that much customers, so I have the time to create custom packages only meant for one specific person. Since I'm using a setup packer that offers the option to show a boot screen during setup (very similar to the ones that you can set in NEO) I decided to show the customer's email address in that. Furthermore, in the Control Panel --> Programs and Features --> My Program, I showed his name as "version info". Finally, I put his name in the UI of one of my plug-ins. You'll get the picture :-). Nobody would want to spread out that program on the Internet!
I really like Vadim's idea to "blacklist" certain running applications. Of course taking the "high ground" would be to stop your own application upon detection of such a blacklisted application. But frankly, killing the blacklisted application itself is sweeter, LOL.
That reminds me of a simple C# project (also with a timer) I made a while ago that kills that annoying "Software Reporter Tool" that has been included in Chrome a while ago. It made my CPU work overtime. Anyway, I finally decided to switch to Microsoft Edge (Chromium based browser) which doesn't have this problem.
impactband4u is correct. It's impossible to secure your recordings. The only secure way is to let the target audience hear only part of the verse and part of the bridge/chorus.
It's not just DAWs that make it easy to record anything that's playing on your computer, it's also any screenrecorder out there :-(. Indeed, anyone with a high-quality microphone in his smartphone could hold it in front of a good quality speaker and record it that way.
Another relatively secure option would be to register your music with a music publisher. At least on YouTube and Spotify that would probably work. I know that YouTube checks every new upload for possible copyright issues. I'm a songwriter myself. Must've compose about 200 songs. At one point, while uploading a remix of one of my older songs "I got caught". YouTube detected that it sounded too much like an existing song (my own original recording! LOL).
Vadim is raising an interesting psychological issue. It reminds me of securing one of my own software plug-ins. I didn't want to set up a complete activation system/server because it was way too costly. Besides I didn't want to hassle customers with anything like that. I don't have all that much customers, so I have the time to create custom packages only meant for one specific person. Since I'm using a setup packer that offers the option to show a boot screen during setup (very similar to the ones that you can set in NEO) I decided to show the customer's email address in that. Furthermore, in the Control Panel --> Programs and Features --> My Program, I showed his name as "version info". Finally, I put his name in the UI of one of my plug-ins. You'll get the picture :-). Nobody would want to spread out that program on the Internet!
I really like Vadim's idea to "blacklist" certain running applications. Of course taking the "high ground" would be to stop your own application upon detection of such a blacklisted application. But frankly, killing the blacklisted application itself is sweeter, LOL.
That reminds me of a simple C# project (also with a timer) I made a while ago that kills that annoying "Software Reporter Tool" that has been included in Chrome a while ago. It made my CPU work overtime. Anyway, I finally decided to switch to Microsoft Edge (Chromium based browser) which doesn't have this problem.