Google Summer of Code 2007

We've applied to be accepted been accepted into the Google Summer of Code for 2007. Last year we had several great projects, a great time and both got some work done and brought some new developers onto the team. Let's repeat that this year! So, my own personal ideas for projects are:
  • Scripting & Batch command support
  • Extend current OSC command set
  • Graph-based connection UI
  • MIDI interface (perhaps on top of the midi support from last year's GSoC?? perhaps!)
  • Beat detection (using aubio and/or VAMP plugins)
  • use Bias2OMF source code on SF.net to support OMF data handling
  • work out how to support AudioUnit plugin GUIs on OS X
  • Polish up SeX (Session Exchange) python app
  • MIDI interface/port selection dialog & infrastructure
  • Multichannel 3d Panning: algorithm(s) and GUI
  • Video tracks
  • YOUR IDEA HERE
Suggest more ideas in the comments. If you're a site editor, feel free to edit my list. If you're a student, start thinking about possible projects and your own application.

The one thing I’m really

The one thing I'm really anxious to use is a gui to display, edit and record midi data into an Ardour project (both piano roll and drum pattern)...

This is really holding me back to use Ardour full-time and dumping Windows+Cubase for good...

-H-

I would agree with harold.

I would agree with harold. I would love to start working with Ardour as my primary DAW in Linux but I just can't do it unless I have the piano roll gui for midi recording. I know you did some work with midi interfaces last year, is there any chance you can apply for more help on that this summer?

-Peace

How about a versioning

How about a versioning control system for Ardour sessions? Linux is a network OS after all.

Imagine sessions being saved on a web server and being able to lock and unlock tracks that you're working on as if they were any file in a CVS system.

It would basically be a CVS system for audio.
So the band wouldn't even have to be in the same room at the same time. And you'd save the hassle of sending tracks via email(which many often do).

Maybe the tracks would be uploaded to the web server after they are recorded locally, unless someone has a more clever idea.

You could even have bands formed through online collaborations even though they've never met in real life.

Overall, I think this would be a killer feature that would attract a lot of attention and turn people's heads.

See my comment:

See my comment: http://ardour.org/node/782#comment-2395

Ardour control surface

Ardour control surface prototype.

Maybe it's too early for this. But I just wanted to get the ball rolling.

But I think one thing Ardour will need in the future is a control surface specifically made for Ardour. Something that exploits many of the unique features found in Ardour that aren't available anywhere else.

I know that work is being done for a control surface API. But something made just for Ardour would be really great.

Do you mean like something

Do you mean like something based one http://www.midibox.org/ ?

Graph-based connection

Graph-based connection UI

Why don't you just incorporate Dave Robillard's flowcanvas library. http://dev.drobilla.net/index.fcgi/browser/flowcanvas

It what the node-based UI for Om (now called ingen I think) is based off of.

My suggestion: A nice n-1 panning interface with automation support.

It would be based off of

It would be based off of Dav's flowcanvas library, idealy.

I have been doing some drum

I have been doing some drum loops with Ardour so I'm proposing a looping mechanism.

The way I've been doing it now, is that I record say four bars of drums. Then I trim the beginning of the region to start one bar before the beat and the end to be two bars after the the end of the beat, so that I get a nice natural decay from the cymbals. I also have to make the regions transparent.

The way to make this easy would be to make it possible to create loop regions and a loop region editor. The loop region editor would allow you to define the start point and end point of the loops (excluding the one bar before and two bars after the beat I mentioned). You could also do automation on the loop that would affect all instances of the loop etc. Once you have created a loop region, resizing it would cause the loop to be repeated.

I implemented graphviz-using

I implemented graphviz-using automatic layout in FlowCanvas yesterday, which should be helpful for making a connection UI in Ardour that isn't too fiddly.

The biggest missing thing in FlowCanvas itself that would be sorely missing in Ardour is easily making multiple connections at once (Patchage would hugely benefit from this too, I just havn't gotten around to it yet..)

More than happy to update FlowCanvas as necessary though, if anyone does anything with it.

harold/mellifluent

harold/mellifluent life:

That's what I like to hear :)

I am applying again this year, and hope to complete the UI for last year's MIDI project this time around. The scope of what can be done will probably be just a piano roll editor for now, and the ability to add notes, apply operations (e.g. quantize) to the selection.. etc.

Top priority (rather than a big feature list) is to get the bread & butter of MIDI editing solid and in SVN trunk (and used!), as soon as possible after the SoC is finished.

Gonna toss out a few ideas

Gonna toss out a few ideas at once, not all of them I am even sure SHOULD be done, much less should be any sort of priority, not that my opinion really matters on priorities;)

Put in a vote for a good ambisonics based multichannel panner like has been tossed around on the mailing lists a few times;)

Also support for OSC probably wouldn't be a bad thing.

I personally wouldn't mind a few of the mechanisms discussed for theater playback on Ardour on LAU recently, but obviously I don't think that one is going to happen;) Trying to cover to many bases at once can be a bad thing obviously.

Though complete seperation of GUI and engine would allow for the above to happen a bit easier, by redesigning the GUI and implementing seperate timeline control it could be possible for someone else to design it based off the same engine, but most of the GUI work would stay seperate, which I think would be ideal, especially given that then work could be done editing cues inside the program itself. I believe that one is on the plate for a future release.

And I am going to toss out a request for video tracks as well, though again not sure on my opinion on it as apparently XJadeo does well though I haven't used it but so much. Can Ardour seperate the audio from a video file that XJadeo is playing and use that?

Seablade

If the Ardour control

If the Ardour control surface isnt outside the realm of this project, I would love to become involved. I am an Electrical Engineering Technologist with a specialization in electronics relating to audio and I am always looking for cool projects to become involved with. I have always wanted some way to contribute to Ardour, but I always thought I was too much of a hardware guy to be of much help.

-Peace

the problem with control

the problem with control surface projects is that the core of the work is already done. on the h/w side, we have the fabulous midibox project; on the s/w side, ardour has supported generic MIDI CC control for a long time and now supports most or all of Mackie Control Protocol.

These are a couple of ideas

These are a couple of ideas that could fit well into summer's projects:

  • Beat detection: "the answer to the nightmare of drums recording"
    Something that ardour is lacking are means to do beat detection and conform regions to a grid.
    One rather simple tool of a commercial daw soft is the "Tab-to-transient" feature, this moves the edit cursor to the next transient on the selected track, this way you can for instance follow a drummers track, splice the region in order to separate the beats and, once finished you could select the spliced regions and conform them to a 4/4 16th grid for instance.

    ... if only freecycle could be linked somehow to an ardour track ....

  • Multiple persistent clipboards:
    Some other daw soft has borrowed this feature which comes originally from a video editing software. The concept is simple, you can create an amount of "clipboards" which can contain several entities, be them a set of plugins, tracks settings, automation data ... this clipboards belong to the application and are therefore persistent (they're saved to disk), and they can contain whatever might be copied.
    This way you could for instance save into a clipboard an empty track with the plugins you use the most, give it a meningful name and later, on a new session recall this persistent clipboard and paste the tracks from this clipoard on your new session. Same stuff with plugins, you can create a chain of plugins with particular settings that can be added (pasted) at any time to any track.
  • your second item is in

    your second item is in mantis as #1209 - template components.

    the first idea is something that was submitted last year, it would be great to see that happen. especially since the fundamental technology (libaubio) already exists.

    I’d second the plea for

    I'd second the plea for beat detection. Also pitch correction would be wonderful.

    Another thing I miss is the ability to keychain plugins (like having a kick trigger the compressor on a bass) - maybe it's already doable, and I just didn't find out how :)

    Regards

    Sidechains are a happy

    Sidechains are a happy side-effect of the MIDI stuff from last year. They will likely become user-visible whenever instrument plugins do.

    There are several

    There are several compressors with the sidechain feature already available. There is just no way to wire it correctly with Ardour's current linear plugin setup. (Hence the interest in a node based graph editor)

    This does bring up an interesting point though. I've always thought of the graph editor on a per channel basis. (i.e. the graph editor only shows plugins and connections for the current track) but for something like a sidechain compressor, you would need the ability to patch into a source from another track.

    [beat detection] is

    [beat detection] is something that was submitted last year, it would be great to see that happen. especially since the fundamental technology (libaubio) already exists.

    I've mentioned this before, but for this kind of thing you might consider making using Vamp plugins.

    Chris

    iTunes integration would be

    iTunes integration would be nice.

    Maybe something as simple as listening and recording podcasts for a start.

    Okay Ardour it is and DAW

    Okay

    Ardour it is and DAW what we need to punch on it ?

    MIDI - Pianoroll editor like Rosegarden or Seq24 or Muse Sequencer or LMMS it is all open source ? Why not colaborate to make a whole Daw and knock out Cubase ?

    :D
    - Zynaddsubfx and other synth instrument support (after piano roll editor and midi implementation)

    - Beat slincin/Beat loop/Time stretch

    - Editor window for waveforms ?! like all audio editor (just somethin)
    - Vst support/Dssi

    Video Tracks ?! maibe use some mplayer code and some ffmepg ? but MIDI Sequencing is the top one feature wee are waiting!!!!!

    Ardour for Midi/Audio/Editing compositon and Video sync
    Rosegarden for advanced midi compositing and printing

    Let make what gimp it is for Art People and Blender3d, Ardour be for Audio and Midi

    By the way Control Surfaces and etc can be added after it is just on step after Midi recording and editing (i mean with mouse and with midi keyboard)

    The graphic UI it is ok maybe some theme support and some documentation about making themes for it!

    Plugins I think with the

    Plugins

    I think with the coming ardour 2.0 release, something that I think will be needed is more plugins.

    I know that ardour supports VST, but more native plugins(perhaps using DSSI,LADSPA,etc) would be great.

    I think one of the things that define the usefulness of ProTools are the variety of great plugins that come with it.

    Of course, some things are easier than others. Maybe some plugins for using with vocals would be nice (something like Waves Vocal plugins). Or maybe just some good effects in general would be nice.

    LADSPA support is already

    LADSPA support is already there. There's also the start of AudioUnit support that needs to be finished.

    Not to be a broken record,

    Not to be a broken record, but the lack of MIDI editing is the only thing keeping me from becoming a full-time user as well. The day I know that MIDI is editable in Ardour, I'm planning on becoming a full subscriber (I'm really really looking forward to that day). After using SONAR in windows for so long, I haven't been able to settle for anything less. Rosegarden has a good start in terms of midi, but their piano roll setup is nowhere near as clean as it should be. The big thing that they're missing (and that Ardour should have) is smart mouse controls. Having a tool to put down notes is great, but after that it's great to be able to perform different actions just by moving certain places on the created note. Clicking and dragging the left side of the note moves it forward/backward along that given note; clicking and dragging the middle of a note moves it up and down the scale, changing the note (which would be audible, duh); clicking and dragging on the front end of a note will make the note longer or shorter. Sure all piano rolls generally have these options, but not all of them let you do it without constantly switching tools and pressing buttons. I was hoping the Rosegarden team would implement a style like this one, but Aurdor could have this professional setup right from the start. I'm so excited to watch this project continue to evolve!

    MIDI editing GUI is

    MIDI editing GUI is definitely the thing that Ardour misses. However, it could be nice to create a new (and more efficient) GUI for midi editing rather than using typical piano-rolls (like Blender does for the 3D editing GUI). Why not having a mix between the old trackers GUI (i.e. ImpulseTracker) and piano-rolls (i.e. to keep note length and velocity updatable quickly)?

    Hmm ImpuseTracker ? Velocity

    Hmm ImpuseTracker ? Velocity and all can be automated give it a break ?

    Pianoroll gui style editor it is all wee need for now ?
    Wanna get an ImpulseTraker with Pianoroll yeah... there it is another open source with that in mind allready!

    Before bubbling around with hall of features let it continue the last year Summer Code that mean MIDI and Midi editor like all midi editor

    Even on the playstation it is comming some Music Apps that are Traxxpad and Beatrator (or what it is his name)

    First focus let it bee Pianoroll style midi editor gui and some tools !

    Second Beat slincin/Beat finder etc

    This are the things that give the power of creeating music not just mixing sound

    Okay ?

    Plugins ?

    Okay for music composition wee need a couple of plugin and they are the Instrument plugin :

    - 1 advanced sampler (needed badly wen comes the midi creation) (wav support rest soundfont2 and other mai came along wee need for start just a sampler simplier with volume control ,panning,analog filter,key maping of samples (or not wee have ladspa))

    This it is the plugin wee need it to bee very stable I Mean VERY stable ! It will be used all the time so need it to be NATIVE

    - 1 a synth plugin basic one for the techno mumbo jumbos :) and bass lines (this it is no priority the sampler is the needed ! I can make a synth with a sampler so ... :D wee need that sampler)

    I can live with ladspa plugins automated with Midi instrument (sampler) and the actual Ardour2 features so ?

    I think this are the main things Midi editor gui etc ,and main Advanced Sampler (not to hard to do,map a wav file to a note ? hmm it is just like the editig thing)

    And last if will be time the Video track (i think it is more easy to do and let the hard part and important one to be first we have an app that plays the video in sync with jack ...so wee can stuck one it until midi part it is finished)

    I wanna use Ardour with Blender3d,I`ve read that Blender will get the 3d Audio in this summer and other things (Hope so)

    I have no possibilty to buy an real DAW software , tired about using demo software and mumbo jumbos

    I hope my ideeas are welcome and fit in!

    I can beta test the app if it is needed to report bugs etc

    Maybe someone inform me haw can i sqash some bug "log" when i digg one and send it!

    I’d second the plea for

    I’d second the plea for beat detection.

    +1
    Quantization would be very useful.

    -- A

    I think it’s pretty clear

    I think it's pretty clear by now that a good gui for editing midi-tracks is a much wanted feature.

    I agree that it's bad that with some applications you constantly need to change the tool (by clicking buttons) just to change different properties.
    The idea of having multiple areas (one for each property) per note is nice, and will increase productivity.
    I don't think implementing something like this is very hard. (at least I hope it isn't)

    Probably the best solution is a compromise between your idea and the old skool method: a few areas per note (I don't think you can put very much areas on each note, only the commonly used ones, because notes should be small because you want to view many notes simultaneously ), and a small amount of buttons in the toolbar.

    As has been pointed out

    As has been pointed out elsewhere, a tap tempo function would complement the midi-side real well. By this I mean a way to create a tempo map that follows a freely played piece by means of tapping a midi-note or the space-key on every beat. Ofcource one would have to be able to edit out mistakes afterwards.
    Tempo sync for plugins would be great as well.
    Also one more vote for sidechaining.