You are here

Default Audio Editor

Hi Rui,
After working on a little project this evening, I noticed something I think would be very easy to implement, but is not yet present. On audio clips, when right clicking on them, what about adding a menu item "Edit Audio". This would load the audio file into an editor, preset by the user somewhere within Options dialog.

I only noticed this as I was needing to normalize about 10 wav files, and had to keep reloading Audacity for each track I'd add, as I discovered they were low level.

Not a show stopper by any means, just a convenience, and a time saver.


rncbc's picture

Yep, having access to an external audio sample editor would be nice and convenient in most situations.

But... there's a catch: once you save the changes made to the audio file how is it going to notify qtractor that you're done with it and thus recache the clip into session? That's the tricky part: once you change the files externally you'll start having inconsistencies that will be only cleared upon a complete session reload. Not quite seamless I say.

Unless... one might keep all external editing files booked and scan periodically for a file-system status change (eg. fstat) and thus get the clip reset on the spot. Hey... that sounds like a brand new sub-project on its own to me :D

Anyway, got this one noted.

rncbc aka Rui Nuno Capela

Yes, I had thought of that even before posting the original comment. I figured notification would be a not-so-easy thing to implement, which is why I just thought after editing, I'd simply reload the audio file.

However, since you did bring it up, perhaps some type of a "Refresh Clip" item directly below the "Edit Audio" menu item that would reload the given audio into the selected clip. This completely bypasses a need for notification. Sure, it leaves it up to the user to do this, but still perhaps better than what we presently have.

Just another nickels worth of ideas. ;)


Maybe Rui don't need, because Rui make it just for fun...
BUT a small donation will always help for buy some legally software, just for fun, testing or compare features..
In the TODO list to ASK, someone have maybe forget this feature too:

Com on guys..we have ONLY RUI that listen and create in some days our dreams...ONE less montly outside Dinner mean a lot of new fast Qtractor features...

rncbc's picture

Thanks Domenik
you are already a awesome promoter and I just hope to live worth for the praise :)
rncbc aka Rui Nuno Capela

On the topic of how to tell Qtractor to reload an audio clip that has been edited in an external program, you might look at how Cakewalk Pro Audio 9 did it. If you edited an audio clip in an external program (Soundforge), as soon as you saved the clip and exited Soundforge, Cakewalk asked if you wanted to reload that audio file. I suppose they used a semaphore of some sort to tell CW that it had changed.

rncbc's picture

the issue here is that qtractor has to know exactly when the editing file changes, not when the nominated editor process exits. i know there's plenty of options to do just that and i might think of it when i get a few more bugs squashed :)

thanks for the heads-up.

File notification is something I have noticed over the years has not been a very easy thing within Linux. Perhaps there is a good reason for it, I really don't know. Back in my Amiga days, I used to use file notification calls as often as I used toilet paper ;), and it was very easy to use within most programs, and a godsend when writing Arexx scripts. Literally, my Amiga would call my cell phone and play back any messages that were just received, all via file notification and before caller ID even existed (here at least). I did have a fancy "PhonePak" card which handled the messages, but everything else was my own custom arexx scripts.

What options are available for file notification under Linux? I have not checked recently, but surely there is something out there. One nice thing the Amiga had which Linux does not, was an Arexx port in every program released for the Amiga. All the Amiga programs I wrote were completely remote controllable via arexx. A commercial product even existed that would allow one to compile arexx scripts statically as stand alone programs ($20 bought a license for this one). Arexx allowed any, or multiple programs to be controlled via a single script. Nice stuff, and I certainly miss those features. I realize there is a Linux version of REXX available (Regina), but without the ability to control external programs, it's nearly worthless.



first, it's fun to revive a 14 year old thread. :-)

Second, has the situation changed, is there hope for an external audio file editor?


rncbc's picture

still the same after all those 14 years :)

silly question to keep it in the funnzy zone: does it still matters? i mean, when everybody and the kitchen sink does audacity and nothing else?


LOL! I came here to also ask the same. This would be an immensely helpful add-on. Maybe the refresh can happen when the child process is closed?

1. In options, set path to external audio editor
2. Right click on clip to open in audio editor
3. Audio editor opens based on path to clip
4. User edits, saves, closes editor
5. Clip refreshes

On #4, if the user doesn't close editor, then any issues are on them! :D

rncbc's picture


one or both of the following must or would have to be implemented:
1. start run, track of the main child process of the editor being run and trap its termination (could be done with QProcess);
2. track the audio file being edited externally and watch for fstat's mtime changing in the background (could be done in a watchdog thread or in the main-forms slow-timer slot...);

as always patches or PR's are welcome :)

I better start learning C then! :D

scott.thomason's picture

You don't have to write your own file monitoring routines anymore, there are things like inotify/fanotify nowadays...

rncbc's picture

yeah right, but it would be a lot more simple to monitor it internal and periodically (eg. via pretty standard old-POSIX fstat()) while the external editor QProcess is up and running and close it when it terminates (you'll have to watch for the process anyway, so using inotify/fanotify might look overkill :)

thanks anyway

rncbc's picture

or better yet, Qt/C++ :)

Add new comment