views:

58

answers:

2

I am a web developer well-versed in XHTML/CSS, JavaScript, Perl, PHP, and XML/XSL. I would like to write a desktop application for music teachers that manipulates audio files. The app will:

  • Input one or more audio files
  • Let the user pick in and out points of several clips
  • Play those clips at the touch of a button with fade-in and -out
  • Render those clips out to new audio files

The application must:

  • Run on Windows, Mac, and Linux without tons of extra coding for each
  • Have a nice GUI for totally non-tech-savvy people (i.e. professors)

I've never built a desktop application before, and am prepared to learn a new language. From what I've read, an Adobe AIR app built with ActionScript and Flex seems to be the most straightforward. I'm not thrilled about learning such a proprietary system, though. Does anyone have suggestions for a better approach, preferably open-source?

Or, is this possible using AJAX through AIR?

Thanks!!

+1  A: 

Java would be the way to go if you're wanting to learn a new language that you can leverage for more than just this one time project.

Silverlight would be great if you could live without the Linux version.

JohnnyFever
thanks. Is there some sort of UI framework with Java that could be used with all the OSes, or would I have to build a different front-end for each? As for Silverlight, If I have to choose between MS and Adobe, I'll take Adobe.
carillonator
Yes, Java comes has several cross platform UI libraries. The one used most is the Swing library. I would give netbeans a try. It's free and has a very easy to use and powerful UI editor built in.
JohnnyFever
+1  A: 

I've used MP3DirectCut for similar purposes. I suggest you play with its features for skipping, looping, and marking before you settle on the design for your own application. I'm also reminded MP3DC saves your project, so you can open it again and all the selections are there. You will probably want something similar in your app.

As for language, I'd first find a suitable open source audio project to base off (Audacity comes to mind), then write in whatever the natives speak, or something that had good bindings to that language.

Hugh Brackett
thanks. I see Audacity is written in C++. Does that require a lot of work to have binaries and interfaces for all the platforms?
carillonator
Audacity is using wxWidgets for the UI on multiple platforms. Poking around in the source tree might give you an idea of the kind of things you have to do to work on the different platforms. I've got to say, Java would probably be easiest to get working on multiple platforms if you can locate suitable audio libraries (surely there are some). I know a guy whose biggest problem getting his Java app to work on Mac was that he had to rely on someone with a Mac to test it.
Hugh Brackett