I am sure there must be other non-Development Team programmers out there like myself who like to adapt the Audacity code to suit their own needs. What is the best way for us to share and discuss these code changes? What is the best way for non-programmer users to try out these adapted versions of Audacity?
Recently I have been posting small code changes on this forum – wherever they seem to best apply. Sometimes though the amount of code changes are just too much for the forum interface – it becomes unwieldy. Because these are actual changes to the source code only someone who can compile Audacity may experience the adaption. In another thread I offered some thoughts about having a “trusted” Audacity community member review code changes, compile executables and put them on some file repository. I do not mind putting compiled custom versions of Audacity which I have created on my website (and I have just done so) but anyone who downloads and uses such an executable is taking a lot on faith.
I can’t see any obvious place to share code than here. You can attach a file with .patch extension up to 1 MB - should be enough?
Where is the thread about having a “trusted” Audacity community member review code changes and compile executables?
Obviously we have nightly builds. De facto I use the Windows Unicode Release nightlies for trying out experimental uncommitted code. There is more or less a Team consensus about that being OK, but I only include modifications that have been raised on -devel or feedback. The Mac nightlies are pure SVN HEAD.
For the sake of user confusion I am really not keen on any other alphas floating around on web sites unless the site makes clear these are totally unofficial builds with an appropriate health warning, and src/Audacity.h is modified to make this clear (e.g “private_build_by_edgar”). If the audience is programmers, mostly this shouldn’t be necessary.
What enhancements are your changes directed to, and is there anything in existing P3 bugs or even below where you feel you could provide a patch? I know you have some reservations about providing patches and their being modified / delayed before being committed but I’d hope some of your changes are things that could be considered for committal. Obviously since I’m no more than a cut-and-paste programmer (if that), I can only recommend/lobby for changes that I think are useful.
After a stable release I will talk about enhancements.
I think I will stay out of the deep end – supplying bug patches was a less than pleasant experience. Just as an example, I was working on one P3 for which I could see the problem but the code was so abstruse I was having a very hard time understanding it. I posted numerous messages to –devel and got a lot of comments which boiled down to “figure it out for yourself, we’re not here to teach you the Audacity code base “. After about three weeks of work (many hours each day ) I finally got it “fixed” – the bug was gone . I posted the patch ; the developer who was primarily responsible for that code (one of the ones saying “figure it out for yourself…” ) , took my patch, modified it , thereby making the fix much simpler and applied it . He could easily have produced the modified code in just a few minutes if he had been willing to answer my questions in the first place by looking at the problem code which I had identified. Instead, I ended up spinning my wheels literally for weeks .
I can understand this attitude if I were supplying code for very obscure feature enhancements; but when I am trying hard to fix bugs which are in the bug database (and at that time I had a track record of some modest success ), that attitude seriously discouraged me from trying to be a “team” player . This exact same thing happened on at least three occasions. I have absolutely no problem with my submissions being modified, and I would not be concerned if I were never given any credit (and that is not a problem because any time anyone has modified any of my patches they have said so in the commit description). What I really have a problem with is that the Developers seem very reluctant to communicate – at least in public, and especially with newcomers.
I also have a problem with the perceived lack of progress being made by the Developers. I started working with the Audacity code base over a year ago; at that time the program had been in “feature freeze” for some time (I know not how long) due to the anticipated imminent release of the “stable” version. At that time there were only a few bugs blocking that release; it is my perception that two or three of these bugs have been “fixed” (removed from active status) and three or four have been added (or promoted).
In the year that I have been following the Audacity code I have seen one programmer promoted to Developer. I have not seen any newcomers welcomed aboard. In fact, I’ve seen a number of newcomers leave in discouragement.
This has gotten ridiculously long, there’s no possible excuse for your devoting as much time as it must have taken for you to read this to this topic! Sorry!! I will get off my high horse now and go back to editing audio – I have over 800 hours of raw audio to edit.
Edgar, personally I think much of what discourages you is about the lack of time that everyone has given we have a “volunteer” , free of charge “business model”. Plus I think there is a degree of (possibly natural) developer elitism that tends to surface because of that lack of time. A business would have time for a proper arrangement for developing skills and “rope-teaching” for less experienced programmers, and promptly reviewing/committing patches.
Also note we lost one very experienced developer at the end of last year. But I hope you are encouraged that Vaughan now seems to be finding the time to push things forward much faster than hitherto.
Lately I’ve been having some extra free time and I was thinking about maybe taking my chances in digging into audacity’s source code and try to make some changes, either correcting bugs or adding new features… After reading edgar’s testimonial I got a bit apprehensive about this though…
I understand that this is probably one of the common issues of free software (I have some friends who are founders of my country’s national free software association, so I believe I can say I have a somewhat deeper knowledge of how free software projects can be). Programmers have very little free time and they don’t want to spend their little time wasting their knowledge with some “script-kiddies” who think it’s cool to add their name and a few lines of code to an important free software project. The drawback here is that they eventually might be missing the opportunity of having some good programmers contributing good code to the project…
I think this is where a project manager should step in and “play its magic” and make things happens and put the right people doing the right things at the right moment… Unfortunately this is one of the points where free software projects often gracefully fail. Probably because most of them can’t afford having a dedicated project manager and usually this task is thrown up to the shoulders of someone who already has 1 million tasks to work on…
I’m an electronics engineer, not a programmer. Though I have some experience in programming I can’t say I’m an experienced programmer and I have not coded in C/C++ in the last couple of years (maybe more for C++). The C programming I’ve done has been mostly on a much lower level than this and I have very little experience in gui programming. Nonetheless I think I’ll have a look at Audacity’s source code and give it try, but I won’t bother the developers nor try to take their time until I’m sure I can contribute with something really useful. So I guess no worries about that on my behalf