110 posts
  • Has been part of the Envato Community for over 6 years
  • Has sold $40,000+ on Envato Market
  • Interviewed on an Envato blog
  • Has collected 10+ items on Envato Market
+2 more

Right, I know that this topic has been discussed before, but I really want to make a proper effort to get the attention of Envato and get them to sort this out.

I am loving AJ at the moment, makes me good money, and I love the community that they have created.


My biggest frustration is the watermark!!!! I am non exclusive, so upload my tracks to other sites as well, and not one of them ask the authors to manually apply the water track and create the preview file / zipped file, e.t.c. They all have automatic ways to do it.

So I am proposing that Audio Jungle Implement Automatic watermarking on tracks and automatic zipped files

i.e. all we have to do is upload one MP3 file, and some clever computer code handles the rest. I KNOW that this can be done as many other sites have software and code that do it automatically. I also have been passed some code that will do the watermark automatically, but I do not understand enough to use it yet, sorry its so long, if someone out there can tell me how this works that would be great!!!

I know that this can be done, and would make so much more sense for everyone involved!

using System; using System.IO; using System.Windows.Forms; using SoundForge;

public class EntryPoint { public string Begin(IScriptableApp app) { }

string strWildcard = GETARG("Wild",".wav");
string strOutputType = GETARG("Filetype",".wav");
// pick a folder to process
string strSourceDir = SfHelpers.ChooseDirectory("Choose a folder to process all files from.", @"c:\Audiobank");
if (null == strSourceDir)
   return "no source directory - quitting";
// pick an output folder
string strOutDir = SfHelpers.ChooseDirectory("Choose a folder for the output files.", @"c:\Audiobank\watermark");
if (null == strOutDir)
   return "no destination directory - quitting";
// choose an output format
ISfRenderer rend = app.FindRenderer(null, strOutputType);
if (null == rend)
   return "no renderer - quitting";
ISfGenericPreset tpl = rend.ChooseTemplate(IntPtr.Zero, 0);
if (null == tpl)
   return "no render template - quitting";
// now process them until we are done or the user hits cancel
foreach (string strFilename in Directory.GetFiles(strSourceDir, strWildcard))
   // make an output filename using the input filename and the output folder name with a new extension based on the render format.
   string strBase    = Path.GetFileNameWithoutExtension(strFilename);
   string strOutfile = Path.Combine(strOutDir, strBase + "." + rend.Extension);
SfStatus result = ProcessAFile(app, strFilename, strOutfile, tpl);
DPF("{0} : {1}", strFilename, result.ToString());
if (result == SfStatus.Cancel)
return null; // return null for success, an error string otherwise

public SfStatus ProcessAFile(IScriptableApp app, string strFilename, string strOutfile, ISfGenericPreset tpl) { SfStatus result = SfStatus.Success; }

// open the file
 ISfFileHost file = app.OpenFile(strFilename, false, true);
/ add code here to process the file */
ISfFileHost filePop = app.OpenFile(@"c:\Audiobank\watermark.wav", true, true);
Int64 ccLength = file.Length;
Int64 ccMix    = filePop.Length;
Int64 ccStep   = file.SecondsToPosition(21.0);
Int64 ccStart  = 0;
if (filePop.SampleRate != file.SampleRate)
   DPF("rate doesnt match - quitting");
ISfFileHost filePops = app.NewFile(file.DataFormat, false);
if (ccStart > 0)
   filePops.InsertSilence(0, ccStart);
SfAudioSelection aselPop = new SfAudioSelection(filePop);
for (Int64 ccPos = ccStart; ccPos + ccMix < ccLength; ccPos += ccStep)
    filePops.OverwriteAudio(ccPos, 0, filePop, aselPop);
    if (ccMix < ccStep)
       filePops.InsertSilence(ccPos + ccMix, ccStep - ccMix);
file.MixAudio(new SfAudioSelection(file), 1.0, 1.0, filePops, new SfAudioSelection(filePops));
// wait for processing to finish
result = file.WaitForDoneOrCancel();
if (result != SfStatus.Success)
   return result;
// save the file under the new name and given format
file.RenderAs(strOutfile, null, tpl, null, RenderOptions.RenderOnly);
result = file.WaitForDoneOrCancel();
return result;

public void FromSoundForge(IScriptableApp app) { ForgeApp = app; //execution begins here app.SetStatusText(String.Format(“Script ‘{0}’ is running.”, Script.Name)); string msg = Begin(app); app.SetStatusText(msg != null ? msg : String.Format(“Script ‘{0}’ is done.”, Script.Name)); } public static IScriptableApp ForgeApp = null; public static void DPF { ForgeApp.OutputText(sz); } public static void DPF { ForgeApp.OutputText(String.Format(fmt, args)); } public static string GETARG { string val = Script.Args.ValueOf(key); if (val == null) val = str; return val; } } //EntryPoint

404 posts
  • Has referred 1+ members
  • Has sold $100+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Located in United Kingdom
+2 more

But then we have the problem of hackers. The raw files will be available on the server somewhere, which is unfortunate we have people like this.

3094 posts
  • Member of the Envato Team
  • Has sold $40,000+ on Envato Market
  • Has been part of the Envato Community for over 8 years
  • Joined an Envato Football competition
+18 more
Envato team

Thanks for the feedback, Catch22Music. :) Automatic watermarking is something we have considered in the past and are currently looking into, but we cannot guarantee if/when this will roll out due to the time it takes to develop and implement into the site. We know it can be done, but it’s never that easy unfortunately. ;-) For example, if we were to implement such a feature, we’d have to find a way to automatically add the watermark to short, 1 – 3 second sound effects without completely destroying/covering the original sound effect. We would also have to consider the volume of the watermark so that it could be heard on louder pieces, but not be too overbearing on quieter pieces.

That is why the current manual watermarking process offers greater flexibility to the author, because either the single watermark or the 1-minute looped watermark (download from our Wiki) can quickly be added to a piece of audio to produce the watermarked preview. It literally only takes seconds to add it to your DAW which can then be bounced to produce the preview file.

Not everything is as black and white and as easy as it sounds unfortunately, but I do think it’s a great suggestion, thanks for sharing your thoughts! :)

70 posts
  • Has been part of the Envato Community for over 6 years
  • Has referred 10+ members
  • Has sold $10,000+ on Envato Market
  • Sells items exclusively on Envato Market
+3 more

Just an idea, but Envato or somebody else could always make a simple offline “envatoifier” app (adobe AIR or something) that you can download and drag your files onto. That way people can choose to do things their own way or let the app watermark your music for you.

110 posts
  • Has been part of the Envato Community for over 6 years
  • Has sold $40,000+ on Envato Market
  • Interviewed on an Envato blog
  • Has collected 10+ items on Envato Market
+2 more

Tom h that sounds like a gud idea!!!!

I appreciate that this may make the files easier for hackers to get at them as they will be on the server, but every other company manages to find a suitable way around this so it can be done!!

Even if we created some sort of software available to all authors on Audio Jungle who could just drag the files into it and it automatically does it for you.

I appreciate that adding the watermark on a track only takes seconds, which it does. But when you have a batch of say 100 tracks to upload, this can get tedious importing the file, then making it 4 minutes long (I feel that this should be the length of the extended watermark, as most music tracks on here are around 3 minutes), then exporting.

If there was some software that you could just drop a batch load of wavs or mp3s in and click export, and it automatically did it all for you!!!!!

Obviously then if the reviewer thought that a particular track needed a louder or quieter watermark they could let the author know and soft reject the track, but I imagine this would only be the case for a very small amount of tracks, the majority of tracks would work fine!

p.s. sorry about all the code, didnt know how else to include it, it all came out quite messy!

Kind regards

89 posts
  • Has been part of the Envato Community for over 6 years
  • Has referred 1+ members
  • Has sold $1,000+ on Envato Market
  • Has collected 10+ items on Envato Market
+3 more

I have just been doing it in DAW ’s with the watermark on it’s own channel and i just save a project file then load and replace the other sounds. The only problem is as a lot of the stuff is sound effects i have made so far that i usually have to position the watermarks around so it works and also adjust the volumes sometimes. If it’s music though i suggest saving a preset/project file or a few variations as that has been saving me time right now and would probably be simpler for longer music.

Rather than a app though they could just have it automatically adds it looped to the preview sound just how graphics get a image overlay at graphicriver. which i think would be better. So it just asks if you want to use your own or envato’s with your own as the default setting. As said though it might not always sound good so i think the current system works quite well or at least for me it is but automatic option could be good also.

Helpful Information

  • Please read our community guidelines. Self promotion and discussion of piracy is not allowed.
  • Open a support ticket if you would like specific help with your account, deposits or purchases.
  • Item Support by authors is optional and may vary. Please see the Support tab on each item page.

Most of all, enjoy your time here. Thank you for being a valued Envato community member.

Post Reply

Format your entry with some basic HTML. Read the Full Details, or here is a refresher:

<strong></strong> to make things bold
<em></em> to emphasize
<ul><li> or <ol><li> to make lists
<h3> or <h4> to make headings
<pre></pre> for code blocks
<code></code> for a few words of code
<a></a> for links
<img> to paste in an image (it'll need to be hosted somewhere else though)
<blockquote></blockquote> to quote somebody

:grin: :shocked: :cry: Complete List of Smiley Codes