Skip to main content

Topic: Updating open source (under GPLv2) with zero experience (Read 2914 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Sparktank
  • [*]
Updating open source (under GPLv2) with zero experience
Software: PaulStretch (AKA Paul's Extreme Sound Stretch)
Author/Developer: Nasca Octavian PAUL
Type: Open Source
Licence: version 2 of the General Public License

My OS Environment(s): Windows XP (32bit)/Windows 7 (64bit)

I've contacted the author/developer some time ago and asked about the possibility of a few updates to the program. But he replied that he is busy with other projects so there will be no time for any updates.
So far, there haven't been any updates.

I can't make any offers to pay him to do any updates. I can't afford it. I sincerely doubt he'll budge for something meagre as $20.

The program works okay. But there is a large issue when saving the output file.

The output file has no name at all. It doesn't use the input filename as a default if no name is given; furthermore, no file extension is given, even as a default if no extension is given.

The default output filepath is defaulted to the location of the software itself.

The software does not install, it's a portable program by default when you download it from the SourceForge hosting site.
You just extract and use where ever you want.
For example, in my case, the default save path is "C:/Apps/Audio/paulstretch 2.2-2 (Portable)/"
There is a function to save your favorite folder paths, but that's a tedious process.

It would be nice if the program was updated to use the input filename as a default if none are given, use the last folder used for saving the output, and apply an extension by default if none given.
Like a preferences to handle these defaults if no settings are changed.
Example: defaults in options: "Default Save Folder=(string)"/"Default Save Format=ext:wav", etc

Looking at the source files (downloaded from the SourceForge host), they look like C++ programming (based on Google search for .cpp/.h/.fl files)

Main Feature requests:
+auto add file extension if not specified for rendering (e.g.: .wav)
+remember last used folder (separate memory for when "opening" and for when "rendering")
+add rendering log (to separate location or same folder as output file)

Optional feature requests: (seems like these will require more advanced programming skills than the previous requested updates; so not a priority)
+option to add [parameters] to output file name ("output [8x 12K Hann].wav")
+ability to use paulstretch as a Command Line Utility (CLI)
++allow piping coming from from other (CLI) software ("stdin")
(though the CLI might require much more work.)

The Question(s):
Does anyone know of any good sites to learn about C++ programming (relevant to these specific changes) for free?
Or any community support forums to help "zero knowledge" beginners?
Any help or pointers to other sites are indeed welcome.
I like to use "HD audio" in PaulStretch. "HD audio", lol.

  • sthayashi
  • [*][*][*][*]
Updating open source (under GPLv2) with zero experience
Reply #1
This pretty much doesn't answer your questions one bit, but for your main feature requests:
1st SHOULD be pretty easy, except that you may have to learn FLTK.  The developer may very well be willing to accept $20 for it.
2nd is easy for a developer, but a good homework assignment for someone learning programming languages.  BTW, while it's easy enough to do, but it's also easy to do badly as well.
3rd is fairly challenging as you're pretty nonspecific about the requirements.

I suspect one of the most difficult parts on this for you would be to recreate the build environment, which may end up taking you several hours to do on your own, just to be able to rebuild what you can get already.

BTW, it appears the author has a very similar program written in Python that can be run from the commandline.  You may wish to explore this for your CLI needs.

With respect to what you want to do, I have a feeling you'll actually want to look at the FLTK documentation first to see what needs to be done, which is where the filenames and filepaths become very relevant.

However, unless you know C++ well, this will quickly become a nightmare to manage.  Like I said, simply setting up the build environment will be extremely challenging, as you likely won't know what to do when things go wrong (and I can almost guarantee that things will go wrong on your first attempt).