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 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
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.

This is off-topic and I apologise, but I want to reply to the note about Rosegarden.

I don’t know whether you’ve tried RG 1.5.0/1.5.1, but the matrix editor has seen some improvement since earlier releases.

You can move, quick-copy and adjust durations of one or more notes at once by dragging on the body of the note, the body of the note with Ctrl pressed, or the right edge of the note, respectively, with the select tool. e.g. drag-select a bunch of notes then Ctrl-click-drag to copy them to a new location.

You can add new notes even when using the select tool, by dragging with the middle button pressed (admittedly not as handy as it used to be, now most middle mouse buttons are wheels), and you can switch between the draw and select tools using F2 and F3 keys. (The last two features were always there, but perhaps not everyone knows about them.)

The matrix also now has a better memory for the last grid and zoom settings you used for a segment, and has context help for mouse operations.

FWIW I’m one of those who thinks better interoperation with existing sequencers would be more effective than having complete MIDI editing in Ardour itself. That’s not just for the obvious reason that I work on one of those existing sequencers, but because, having worked on one of them for a while, I’m all too aware that doing note-based editing well is a bottomless pit for developer time, just as audio recording is.


The content of this message was deleted because it failed to display even a minimum level of politeness. This forum is not a venue for rants about any software, least of all software that isn't Ardour. If anyone has anything they would like to say regarding Rosegarden, please do so on their mailing lists and other support venues.

Let’s keep this friendly, okay? Rosegarden is valuable software and the Ardour developers appreciate its developer’s contributions to the community.

I’d second the plea for beat detection.

Quantization would be very useful.

– A

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 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.

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

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.

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…


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?


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:

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 based one ?

Graph-based connection UI

Why don’t you just incorporate Dave Robillard’s flowcanvas library.

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.

Yes, I do understand what you’re saying about Rosegarden. There should definitely be better interoperation between Ardour and sequencers.
But I think built-in would also be good. It gives
people a choice and some people like to do everything in one program.

For example, looks at how you could do everything in Ableton Live if you wanted to or ,if you felt like it, you could do all the editing and mixing in ProTools.

I think it’s a given that they should work on a built-in editor. In fact, I’d say it’s the number one requested feature now.

What I would like to see, in conjunction with MIDI recording and editing, and maybe ‘instrument’ support using DSSI and/or LV2, is a patch choosing dialog with a searchable patch list generalizing over all patches for all MIDI instruments known to the system. I don’t know if this is too early given that MIDI in ardour is still in an early phase, but here it goes anyway.

Basically, what it would do, if possible, is to collect patch information from softsynths (if possible) and use instrument definition files (there are already plenty of those in rosegarden and MusE syntax), to create a list of patch names, abstract from the type of device it applies to. When a patch is selected, the corresponding synth settings are applied to the MIDI track in question, and then that track would talk to the device that ‘owns’ the patch. The list would be searchable (thus searching for “piano” will bring up all piano sounds), and would instantly update the patch information to the track, so that the sound of the currently selected patch in the list can be tested without needing to close the dialog.

It would also be possible to use other panes in the dialog to choose patches by device.

I think this would be very user friendly, by abstracting away the underlying technologies. Is this something that people would like to see? Is it even possible?

My idea for several years now is a Playalong utility, something like band in a box, but capable of own ideas (variations), like communication and interaction with the a.i. There’d be an interface which let’s you select style, chords, tune, rhythm, bass line or even arangements and so on. It’d be pretty midi based. And the final version should be capable of imitating a whole jazz trio or something like that. A future version should be able of interacting with the user via midi instruments. Can anybody tell me if a project like this is appreciated in ardour, for I’d like to do it this summer and GSoC would just be the best way to get it done.

Midi Editing / interoperation with something like rosegarden is exactly what I need, too, in Ardour.

I often work with midi-tracks (midi-guitars, bass etc.) to record audio upon that. Rosegarden has no big audio editing functions, Ardour no midi (at the moment).

A interoperation between them, e.g. synchronized start and tempo-tracks would be cool, a complete new midi interface in ArdourX even cooler!