We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Rosegarden: A Slumbering Giant

00:00

Formal Metadata

Title
Rosegarden: A Slumbering Giant
Subtitle
How a 20-year old OSS project is still going strong
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Rosegarden is an open-source Linux MIDI, Audio sequencer and Notation editor, originally created for a university project in 1992 and is still going strong over 30 years later. The current incarnation of Rosegarden for Linux was kick-started in 2001 by Chris Cannam, Guillaume Laurent and Richard Bown. In this talk, one of the original creators of this legendary piece of OSS history takes you through the project's history and analyses some of the critical elements for its continued success to this day. The 'current' version of Rosegarden was actually a complete bottom-up rewrite that started in 2001. The previous incarnation (Rosegarden 2.1) was initially written for IRIX and then ported to other UNIX variants, including in 1995, Linux. The current version has not significantly changed since its original architecture was settled in 2001-2004. What's so good about it that keeps it working to this day? How many people are working on it now? And what do current users think of the project and where is it going next? Join Richard for an entertaining and exciting ride through Linux audio history as well as the history and architecture of Rosegarden.
14
15
43
87
Thumbnail
26:29
146
Thumbnail
18:05
199
207
Thumbnail
22:17
264
278
Thumbnail
30:52
293
Thumbnail
15:53
341
Thumbnail
31:01
354
359
410
Goodness of fitMultiplication signStaff (military)NeuroinformatikPoint (geometry)Musical ensembleTheory of relativity
SoftwareAnalogyMusical ensemblePointer (computer programming)MIDIOcean currentTrailComputer-assisted translationMultiplication signTouchscreenDigitizing
Goodness of fitLink (knot theory)Universe (mathematics)Web pageQR codeSoftwareMereologyOpen sourceDecision theoryProjective plane
Session Initiation ProtocolState transition systemFingerprintMobile appMultimediaKinetische GastheorieMoving averagePositional notationText editorPower (physics)Home pageOcean currentSoftware maintenanceRepository (publishing)Presentation of a groupProcess (computing)Different (Kate Ryan album)Cycle (graph theory)SoftwareFormal languageProjective planeDistribution (mathematics)Computer animation
SoftwareIndependence (probability theory)Focus (optics)Multiplication signMixed realitySource codeStatisticsFocus (optics)Software engineeringProjective planeSoftwareBitMereologySoftware developerTerm (mathematics)Computer animation
Open sourceSoftwareConnectivity (graph theory)Core dumpBitAreaNumberEnterprise architectureProjective planeComputer animation
Beer steinSoftware bugView (database)Physical systemLaurent seriesLeast squaresTranslation (relic)Projective planeFamilyWebsiteFood energyOpen sourceLine (geometry)Multiplication signAdditionShape (magazine)Universe (mathematics)CodeSoftware developerTranslation (relic)Digital photography2 (number)Computer animation
Projective planeSequenceData miningComputer sciencePositional notationUniverse (mathematics)Text editorComputer animation
Musical ensemblePositional notationText editorHand fanWeb-DesignerBitSystem callComputer animation
Silicon Graphics Inc.Text editorPositional notationGUI widgetFilm editingSet (mathematics)Event horizonObject-oriented programmingSource codeProcess (computing)Computer animation
Nominal numberLine (geometry)SineSPARCIRIS-TMIDISilicon Graphics Inc.NumberProjective planeTouchscreenWorkstation <Musikinstrument>Universe (mathematics)Game theoryObservational studyComputer scienceMultiplication signSpecial unitary groupPeer-to-peerEnterprise architectureNeuroinformatikExecution unitData miningComputer animation
Point (geometry)Gateway (telecommunications)BitComputer clusterCuboidComputer animation
Exponential functionConnected spaceSoftwareDependent and independent variablesWebsiteValue-added networkTelecommunicationReal numberLine (geometry)Boss CorporationCodeNetzwerkverwaltungTDMAUniverse (mathematics)Computer animation
Logic AudioServer (computing)CodeComputer clusterCuboidRange (statistics)Source codeTable (information)Computer animation
Logic AudioMusical ensembleMultiplication signComputer hardwareLogicProcess (computing)Right angleStructural loadBitWindowCASE <Informatik>Row (database)EmulatorPlug-in (computing)Office suiteProduct (business)Point (geometry)Computer simulationSoftwareComputer animation
InterprozesskommunikationFormal languageMusical ensembleObject-oriented programmingDomain nameSoftwareMultiplication signStack (abstract data type)Bit rateConnected spaceType theoryPhysical systemPoint (geometry)Java appletRevision controlGUI widgetOpen setTracing (software)Software development kitEvent horizonTelecommunicationSet (mathematics)Software developerNumberEuler anglesWhiteboardMereologyExterior algebraData modelHypermediaBitInterface (computing)Software engineeringMIDIComputer animation
Multiplication signPoint (geometry)Real numberComputer animation
Interface (computing)TelecommunicationBitSequenceGraphical user interfaceMultiplication signVirtual memoryComputer fileMechanism designProcess (computing)Computer animation
Computer configurationPoint (geometry)Semiconductor memoryTemplate (C++)Virtual memoryStandard deviationComputer fileMathematicsRevision controlLibrary (computing)Process (computing)MappingCompilation albumSoftware testingMultiplication signSource codeCore dumpVirtual machineComputer architectureCode refactoringHypermediaCovering spaceBitNeuroinformatikControl flowBuildingSequenceType theoryConfiguration spaceAreaAbstractionMIDIParameter (computer programming)Keyboard shortcutMultiplicationComputer animation
Connected spaceMultiplication signMereologyVirtualizationBus (computing)Software development kitVirtual machineRoutingExterior algebraCore dumpKernel (computing)Computer animation
MIDICore dumpMarkup languageAlgebraComputer architecturePower (physics)Different (Kate Ryan album)Computer architecturePlug-in (computing)Sinc functionComputing platformMarkup languageMusical ensembleBitStandard deviationComputer fileWindowLetterpress printingPositional notationINTEGRALType theoryComputer animation
TelecommunicationComputing platformSelf-organizationMultiplication signComputer architectureCode refactoringGodElectronic mailing listBlock (periodic table)Software developerPoint (geometry)CodeAngleExpert systemDefault (computer science)Revision controlPatch (Unix)NumberWeb crawlerRight angleComputer architectureCore dumpComputer animation
Data storage deviceMultiplication signBuildingSoftwareComputer animation
Musical ensembleStructural load2 (number)Multiplication signPolar coordinate systemKeyboard shortcutSoftwareComputing platformMultimediaComputer hardwareFamilyComputer animation
WindowEntire functionVirtual machineProduct (business)BootingMobile appMoment (mathematics)Level (video gaming)Digital photographyComputer animation
Self-organizationPoint (geometry)Computing platformOpen sourceWhiteboardEvent horizonWebsiteWindowGroup actionSoftwareCollaborationismComputer animation
Decision theoryStructural loadPoint (geometry)Sheaf (mathematics)Digital photographyFamilyComputer animation
NP-hardTotal S.A.WindowContinuum hypothesisFrequencyCodeCodeSource codeSign (mathematics)Line (geometry)Computer fileStability theoryWorkstation <Musikinstrument>Musical ensembleVisualization (computer graphics)BitCartesian coordinate systemWhiteboardMultiplication signSoftware bugWordProduct (business)Term (mathematics)NumberComputer animation
Open sourceCodeUnit testingMultiplication signComputer architectureSoftware developerCode refactoringWage labourAxiom of choiceGoodness of fitNumberTheory of everythingGraphical user interfaceSoftware testingBitComputer animation
Type theoryDifferent (Kate Ryan album)Office suiteCodeNumberOpen sourceProcess (computing)Computer animation
Multiplication signComputer animation
Point (geometry)Type theoryCurvePoint cloudUnit testingCodeComputer animation
Musical ensembleBitSoftwareSinc functionDemo (music)Roundness (object)
Program flowchart
Transcript: English(auto-generated)
Great pleasure to be here. Can you all hear me at the back all right? Can you yep? Thank you Yeah, wow what was them? Thank you to the organizers and for the staff for inviting me here great pleasure to be here and
Yeah, if you asked me a year ago Would I be here? I'll be like no because I hadn't actually heard of false Apologies at that point secondly if I'll be to be told that I'll be talking about Rose Garden Which is something I've not worked on myself for a very long time not contributed to I'd be doubly surprised
However, I think it's important to look back sometimes and I've called this Talk a slumbering yeah, Rose got a slumbering giant now I thought I didn't really think when I was putting this submission in as well So I thought a slumbering giant that made sense to me at the time who knows what slumbering actually means
Okay, I should explain it because I was thinking about maybe changing so slumbering actually means not quite sleeping But also not quite awake either And it's kind of in relation to the fact that Rose Garden has been around for a very long time And maybe just as a show of hands as well how many people have? Used okay, let's start off simply how many people have used computers to make music
Okay, so we've got about 20. Maybe that's pretty good keep your hand up if you use Linux to make music Okay, that's actually more. I think it's weird, okay About the same maybe how so how many people have heard of Rose Garden? Okay, it's not bad impressed. Okay. Good good stuff
So Rose Garden started actually longer than 20 years ago Let me show you so This is the kind of current Rose Garden, this is how it looks kind of now and if you're familiar with Linux so I'm sorry with music software. You're not by the way. I've got a pointer
Can you see it? Yeah, it's cool. I usually just use it to torture cats But this is the first time I've actually used it on a presentation So yeah, if you unfamiliar with digital audio workstations, I'll give you a little tour So we have down here some instruments and you can map to those tracks and they're either MIDI tracks
Which is musical instrument digital interface Tracks or you can have audio tracks. So and this is how Rose Garden essentially works. It allows you to compose allows you to Record into it from a digital instrument or from an analog instrument and then you can
Edit it on the screen just to go back to the beginning the talk today as well. It's going to be about the history of Rose Garden It's going to be about How I believe that good engineering practice could talk
Is interesting talk the last talk from Brian about Using the latest tools and technology to understand how our open-source software can be better So as part of this talk I'm gonna look at how Rose Garden was put together in the first place and why I believe It's still around because of the way it was put together and because of some of the design decisions that we made
During the creation of it. Oh, yeah, if I didn't mention there's a QR code If you want to scan that you can get to a page where there'll be some links I also also share this at the end Rose Garden was Really a kind of a labor of love. It was almost an accidental success, but it was kind of done deliberately
In a way that doesn't really make any sense, but Rose Garden came about originally from a university project So it's actually a lot older than 20 years. It's almost 30 years old. In fact is over 30 years old And then it became something of its own thing. So just diving back into how it looks these days again. So we've got a
A piano roll editor on one side and a notation editor on the other and this was one of the great powers of the original Rose Garden as well. It had both notation editing and MIDI editing too and this is the current Rose Garden homepage where you can download it and you can see how often it's raised
So up here you can see there was a release in December the current maintainer Ted is works very very hard on these and What I'm talking about the when I'm talking about the engineering processes that go behind it
You'll see towards the end of the presentation that there's a lot of manual work involved still So some of the best practices that we get through our day jobs can actually help us understand how we can make software like this more maintainable and easier to release It's not untypical as well for large
software large and old software projects like this to have quite slow release cycles and typically once it's released it goes into The usual repositories where it can be created and packaged for download on Various different distributions for Linux distributions. It's been translated into around 20 different languages including Chinese Japanese
Italian Spanish Finnish German loads and Over the last 20 years has been downloaded all over all over the world as you can imagine
And this is some stats. So interestingly enough. We're still on source Forge. That's down to the developers having a certain way of looking at things so source Forge is the preferred way of looking at things for a lot of the developers because they've been involved in it for a
long time and perhaps they're a little bit behind the times so they like to Dig their heels in sometimes when it comes to what is acceptable in terms of the technology that is being used So what the good the good part about it is that we have all the stats from the beginning of time basically all the way to today on how many times it gets downloaded and this is source packages only essentially as well
So it's not bad. I mean it's its height. It was 5,000 package source package downloads per month and even with the last release it was still around 2,000 so if you add that into the mix with all the Pre-packaged stuff that happens for the distributions, then it's pretty tidy amount
So who am I and why am I here? So I worked on Rose Garden between 95 and 2004 2005 I'm now independent consultant, and I kind of specialize mainly in software delivery and customer focus and that means that over the years as a
Professional software engineer. I've learned various techniques which has helped me understand. Okay. Well, maybe we could do things slightly better and I'd like to talk and write about this right now, and this is how this talk I suppose kind of came about because I was thinking
What is the? Project that gave me the most pleasure over these years and when it comes down to it Undoubtedly Rose Garden was the thing and some of the takeaways. I believe that we can get from this is to understand
how Open source software becomes important and how it stays important as a social and commercial not commercial It can be commercial, but as a social enterprise So this is really a story about Motivation and why we do things the way we do and how
Open source software becomes Something that can take over our lives as well So just to expand on that a little bit I've kind of broke it down to three areas Which I believe are the core components of how open source kind of gets good how open source projects
Become a thing in the first place and how they then Sustain themselves and it's mainly Spoilers mainly around the social exercise. We do it because we kind of want to we've driven to do it
Of course, we do it as well because we can't do it by ourselves. So that's number one for me is The effort that it takes to build something. So when you look at Something like Rose Garden or any other huge open source project You end up with hundreds of thousands of lines of code and lots of contributors from
all over the world doing various different things either Writing code themselves becoming developers Doing translations helping out the website with documentation And this is a snapshot from the Rose Garden website of the contributors that have been involved over the years
Secondly, you can't do it without effort. You can't do it without support This is a picture of the time that's elapsed between when I Know sorry when I stopped working on Rose Garden and pretty much today. This is my son Sam
he was one when I took a photo of him and put him on this poster so to kind of To be used at one of these sounds exposed that we we did in 2004 and this is him last year as he
Graduated from high school and this was probably the reason why I Stopped contributed to Rose Garden this time because I went off to have a family and Of course, the family is important for support So they have to keep you going maintaining your energy to be able to do stuff
in addition to that We also see how the working world Comes into play one second. So
After university I went into Sorry, it's out of the working world shape our experience and our perception of what goes on in the open source land
So after University basically after Rose Garden first came out Going into engineering and becoming a person who would actually grow as an engineer and then be able to feed back into that project
So this is taking This is the yeah the start basically of Rose Garden So I went to Bath University between 1990 and 1994 Rose Garden started as a university project by
Couple of friends of mine Chris Canham and Melissa Wilson and they did it for a final year project at Bath And it was written for John Fitch who was the one of the computer science professors there His idea to come up with a Unix sequencer and notation editor. I think it was the combined thing that he came up with together
So Rose Garden itself was born of a university project in around 92 and the name is a bit strange So Rose Garden, where does that come from? It's actually thanks to these guys these was a band called Bauhaus who come out of Northampton in the UK from 1978 and Chris Canham one of the lead developers the originators of Rose Garden
He was a big fan of Bauhaus and he had one of the songs called Rose Garden funeral of sores Which is actually a song by John Cale and He being a bit of a wag thought it's probably going to be crap this notation editor
So we'll call it Rose Garden after funeral of scores. Haha Scores notation get it. So yeah, that was the origination of the name So 1992 it was written on Unix. It was written on SGI originally in under Eric's with The Athena widget set was a modified Athena widget set
written in C and It looked pretty good. I mean, I think Chris did a pretty good job actually despite the fact he thought it would be terrible This is actually Rose Garden 1.0 the cut the source code. However, I believe this Screenshot comes from Rose Garden 2.1, which is the first Linux port of that source code
And as you can see it's got a piano roll, it's an event editor It's also got the notation oops And it also works together on the same screen like that So it was pretty advanced and it worked via the Eric's device So it would actually send out to a MIDI device from the SGI the silicon graphics workstation
That was it number one that was done for a final year project. So what happened next? Well, what happened alongside that was that we ended up spending a lot of time mucking around so in 1992 1993 I was still at university Chris and Melissa were peers of mine friends of mine, too
and we used to hang around in the Spark labs as they were called at Bath University and we played too much x-tank anyone know x-tank Yes, very good too much fun and too many late nights and That was the thing about Coding at the time as well. It was a social enterprise. It's exactly the same these days as well
You look at I look at my son I say to him Okay, why have you not learned like why have you not let you start? okay, so now you're going to university starting to learn computer science at University and When I was growing up I had a computer probably like some of you here
Like I started coding because I was interested in it him absolutely zero interest in coding until he got to university He's all been gaming. I'd be like, well, why don't you like build a website? No, no interest but yet he goes on to study computer science and annoyingly He's really good as it and he's picked it up in no time at all. So I'm now I'm getting whatsapp saying dad What about this node problem? How do I fix that? Okay fine
But to be honest looking back It's exactly the same now as it was then because we just knocked around too We spent a lot of time in the Sun in the spark labs playing x-tank We spent a lot of time learning command line or learning about Unix processes how they work. We learned stuff off each other
So University islands Units command line solely from mucking around I learned C and x11 from doing some university courses Some of my some of my miners, but the majority of it was from yeah just hanging out with people exchanging information, so that's rose garden one and
Then we left University. We went off into the working world as a peer group as well. So I ended up in London eventually as did The Chris and Melissa they were working for the same company actually and we ended up hanging out And somehow I don't know quite this how they remember how this this happened, but we got to a point where?
Linux was a thing, you know, I I think I've got a picture next Where is it? Okay, so I've been working for a little bit. I've just skipped ahead or skip back I've been working for a little bit I managed to save a bit of money eventually and I bought my first PC and it was one of these Gateway 2000
Came in a cow box I can't forget it And it was so exciting because I just never had my own PC before and the first thing I did with it was by Slackware 3.0 and put that on it
And that came out of yeah workings. I come back to this picture the working world and that was really where things started to kind of fall into place because When you're working in a proper company you have responsibilities and that's the one thing that work really taught me You're not just mucking around in the spark lab anymore You don't come to stay up late to do your coding and have a lot of fun and then sleep late
You've got a well you end up doing that anyway when you're a young engineer sometimes But if you're working for a company like this like I was a telecoms company And we had responsibilities. So we created networks off network management software and also Software for multiplexes and my first boss. She was great. She sent me out on a customer visit
Straight away. She said okay get in the car Go up to Sheffield and then in Yorkshire in the UK and go and be on sites with Yorkshire telecom Whilst they're upgrading their multiplexes and they're upgrading the software with our new our new network management software And for something like that as a young just out of university graduate engineer
Was incredible because it finally gave you that connection between all the stuff that you do all the hours that you spend on a piece of code and the The custom of themselves because if one of these cabinets fell out Off the network or the upgrade didn't work then someone would have to be sent out in a van so the street cabinet to reboot it and
Then you have to watch it in the control room to make sure it came back up again And that was yeah the real kind of visceral connection So this is the first You might call it a learning that I had I didn't even realize it at the time. Of course you don't do
It was The fact that you need to serve somebody with everything you do Well, I felt that anyway because sometimes you might just want to write some code for the hell of it But unless someone's using it, where's the point? You know, I felt that really really keenly
So yeah cow box I should just guess about the last one as well. So the cow box arrived the I got a p75 I think it was in 95 so pentium p75 It wasn't particularly flash It wasn't top of the range but I installed slack wear 3 on it and then there was a table of the Rose Garden source code knocking around and
I think Chris and myself knocked it together It might have been Melissa as well knocked it together into the first kind of release on Linux of Rose Garden And then just after that one second it was the kind of the heyday or music software really everything got very exciting very quickly
So I bought my first PC. I was working I was working too hard But having fun, but after a while what hard work became too much like hard work
I was on pager duty and back in those days. It was actually a pager as well And I remember the first night I was on pager duty I was lying there in my bed and I put the pager right next to my head and I was just staring at it For the whole night. I couldn't go to sleep. I was just so scared in case it went off. What would I do? I was I had my own hardware. I had my PC, but it was I'll come to this
It was on a 14-4 modem, which I had to ask Someone to buy for me at work. They wouldn't even otherwise I'd have to drive into the office I didn't have a car. So it was basically you're trying to offer support to a global product From a very basic setup whilst being on pager duty and these and the pager duty lasted for a whole week as well
So you'd have a week on and then maybe two weeks off and that was really stressful So between that and working and everything else and probably partying a little bit too much I just felt burnt out after a year and a half of this. So I kind of moved jobs a couple of time I bumped up my pay a little bit and I got to a point a couple years later where I could actually take some
Time off. Oh god, let's relax The first thing I did was buy some music software because it was the thing I wanted to do So I've been building software and I've been getting into being an engineer But what I really wanted to do was make some music and be a rock star. So seriously So I bought a load. Well, I say bought I probably ripped
I definitely ripped a load of stuff and put it onto my Windows PC like logic audio cubase Rebirth and reason all these great tools that are available at the time Digital audio workstations, which meant they would record audio. You could put plugins into them They'll make great sounds and also things like
Rebirth which was like a TB 808 Simulator emulator whatever lots of fun lots of squelchy fun. So I spent a couple years Understanding these tools and having fun with them and recording and what I didn't realize I was doing
Was I was learning the domain and if you kind of look Back from where we are now and you've kind of studied OO object-oriented design and you've maybe read Eric Evans's book or listen to Vaughan Vernon speak about DDD domain driven design you understand that
that's what you're doing is you're learning the language the ubiquitous language Of music software and then you're learning to talk and feel the way that musicians do when they use this software So around the same time
So around the same time We had rose garden 2.1 already, but we hadn't moved on since 1992 This was around 98 at this point And we did kick around a few ideas So we I mean mainly Chris and myself and also Guillaume a French developer who came on board
I think off the back of the 2.1 work again. It was a bit hazy We start kicking around some ideas. We want to rewrite this thing. Well, how are we gonna do it? So I Got this domain knowledge Chris was an amazing software engineer and still is to this day and still works in audio and in audio software and
Me piggybacking on piggybacking on his genius and also Guillaume's genius was a way to Understand how we could build a whole new version of rose garden because it had it was an itch we wanted to scratch And we discussed a few things and technology was quite fluid at the time So we were like could we do it in Java?
Not really. There was that there was no sound system or there was a very basic API to be fair the Linux sound system was not particularly advanced at that time either Elsa was just about coming out But it was mainly OSS before that so Rose Garden 2.1 Just used open sound system Which was just a device essentially so you could there was no internal routing of MIDI events or audio
It was all straight out onto the device Java had the same problem. It was kind of slow in catching up. It was wasn't slow It was just the fact it hadn't been written yet. You know a lot of these interfaces. There was a I can be a Media API for Java, but Java was never my fault. I didn't like it didn't like the stack rates stack traces
We also discussed IPC quite a lot with interpersonal communication. We discussed korba anyone remember korba Yeah Anyone forgot korba yeah Terrible well the time was very exciting as that alien book he read it, and he thought what the hell's this is really complicated so
It was a it was too heavyweight But I think actually Rose Garden 3 the missing number between 1 2 and where we are now with Rose Garden 4 Was kind of IPC a korba based thing we might be written in Java or something. It's crazy anyway That didn't last very long. It was back of a fag packet type stuff as they say in the UK
But we had a few other other ideas, and we thought well It's got we want to build it on Linux. It has to be on Linux We're both quite pretty proficient in C++. Let's do C++. Maybe let's build a nice data model And also we saw that Elsa was emergent jack which is the jack audio connection kit is
Still I don't think it was invented until a couple years later, so maybe 2000 or so, but that was a flexible audio routing System which is very cool, and we eventually implemented But we knew another thing that the UI was going to be vital from work having worked on X11 and I think a widget set very basic x11 widget sets
There were two very exciting Linux alternatives coming up JTK and all the various wizards all the various parts of it and KDE based on QT And the debate probably didn't take that long, but it went felt like it went on forever, but eventually
we decided I Think as a kind of a three of us on some on them taking the most pragmatic attitude And that was we're gonna go with KDE And initially we decided to go with KDE Because it seemed to be slightly more mature And I think we all like QT as well that we didn't know QT particularly well at that point the the toolkit that
Katie's built on so We come to the KDE KDE years so This was the real start of the real builders of Rose Garden for the thing I showed you at the top
So we finally got here From what I say here Kde3 was released in April the 3rd 2002 and I think what we'd done between then is we'd started probably in 2000 and we'd started writing some stuff and Eventually we got to a point where we had to kind of go with the major upgrades and Kde3 felt for the first
Time I think when we finally kind of getting there it felt like it was good. We're using a little bit of You've already seen that picture Yeah, I'll just stick on it. So we were using a little bit of decop. I think it was which was the communication interface for Rose Garden we had we were running two
separate processes And the seek Rose Garden sequencer and the Rose Garden itself Rose Garden GUI basically And They communicated via well, we were going to use the KDE mechanism We didn't in the end. I think eventually we ended up on a memory map file Which was suitably good for both processes to access?
At that time so yeah, as you've seen we ended up with a quite a flexible Architecture. So this kind of maps the core not again to the into the core of the core of Rose Garden But I can point out a few things So there was the two processes which underlight it but underlay it behind
The GUI communicated with the shed with the shed memory memory map file The sequencer did actually all the running of the stuff the in and the out and the whatever It was all controlled via the transport down here and it had quite a flexible mapping so that we had the Any instrument here could be mapped to any of these instruments there and they could be a MIDI device or an audio device
And we kind of created an abstraction layer there which would allow us to map those As well on to either MIDI devices, which users could create called device files Which allowed our users to actually get involved with creating?
Specific configurations for their own setups. So if you had a particular type of keyboard or a MIDI device somewhere else Then you'd be able to create a device for it and be able to map those sounds to your Rose Garden setup Similarly the segments themselves so these Blobs are all segments and you can slice those up and they don't have parameters associated with them, too
So there was yeah design obviously going on underneath the covers and that was from quite an early Quite an early time as well the I believe that we didn't actively Sit down and plan it all but we spent a lot of time refactoring and that was one of the biggest pain points
I think we felt whilst we were working in the early 2000s was there was all these great tools available coming out of working in Industry where you had all the compilers essentially before then the end of the 90s or mid to mid end of the 90s It was typically you'd have to buy a compiler. So you have to buy a license for something
You have to buy your library. So the standard template library for C++ wasn't we were still kind of getting there You'd have to buy boost. I think it was or whatever it was called There were various things you had to pay for GCC and G++ were still getting there as well G G plus plus three I think came out around the same time
So the tools that was shifting there was also the shifting media layers as well in Linux so we were talking to people on various mainly lists basically about like when is the new version of also coming out with Stuff that we can use to actually get some real-time stuff working on our side
So all of these layers underneath we were all waiting for plus the tooling was a little bit kind of getting there too plus all of the UI toolkits were also growing so we were kind of growing alongside all of this stuff and it made it Quite difficult. We didn't have any CI. We had like a couple of machines
We had some basic source control in SourceForge, which was probably CVS at the time not even subversion at that point Which worked but typically even with three of us working on it. They'll be breaking changes the whole time We didn't have any tests per se We just be downloading the latest bit of source code and building at some of the break. So
When you're refactoring our core area Even with three people and you've got all of these dependencies moving. It makes it very difficult to get anywhere So we'd struggled to be fair. I was working For a couple of years. Well, it's probably felt like a couple years Probably wasn't it probably more like six months I did take some time off and I worked on it full-time in a little basement with multiple computers
With this CC running on various computers to try and speed up my builds and stuff and it was a real struggle mainly because We were refactoring and breaking stuff, but also because we had a kind of an unstable base still Through much effort and through much time and through much
Dedication from not just a core team a growing team the whole time But also some really passionate users who came along quite early and have stuck with us the whole way through so that we've still got people who have been using it for 20 years who just love it because They don't they can't think of any other way of working with it. Basically. It's brilliant
They will compile it and they will run it on their own kernels or they'll download It's part of a package or they'll have a machine which they haven't touched for years purely because they want to run Rose Garden There are other alternatives because there's plenty of other alternatives But what we've done is we kind of found our people I suppose through the way that we'd built it through the way that we'd
gone about building it maybe as well the thought we put into it and The love maybe we've kind of built something which is stuck around and as you can see here It does this is it doing some audio and it also plugs into this thing I mentioned called the jack audio connection kit Which is a way of routing audio around internally on Linux and various other platforms, too
So it's actually an audio bus Here's a virtual synth as well, which you can route to it. So it works with virtual sense external sense, etc
so What we saw was an emergent architecture As I mentioned various things. I need to speed up a bit. So I'm going to go through a little bit faster I've also mentioned the Rose Garden studio concept. So this was the thing about the the device files And I think this is another powerful feature of Rose Garden the one that still used to this day
So we've got over a hundred device files so people have gone off and they built them for I don't know Yamaha since for Roland since for various different types and you can just download those and install them into Rose Garden and you can map All the set all the voices basically straight into it Additionally, we've got the as I mentioned the jack integration the
Support for lads and also DSSI plugins, which are native plugins for Linux And other platforms as well as the VST plugins which are the standard music plant but the standardized more standardized VST Music plugins audio plugins for Windows and other platforms Additionally, of course notation markup and printing using Lily pond as well. So very high
quality score export from Rose Garden, which has been very much appreciated by some of our users too. So with all that rambling This is one of the learnings that I found was that
Just the architecture itself is difficult because of various reasons communication mainly, but also what do we want to build? Secondly organization around that is difficult too. And we saw that with a refactoring that we had to suffer essentially Maybe with better tooling or maybe with more stable platforms that we were building on it would have been simpler and in hindsight It seems almost yeah trivial, but at the time it felt very difficult
Secondly this is something which really stuck a lot in the claw in the crawl in the throat Which is everyone has an opinion on UI everyone users Developers even developers who don't profess to be UI or UX experts have an opinion because we all use the software, right?
And if you change anything then you break a workflow And that's a difficult lesson to learn. You may be a great coder. But again, it becomes the social angle between What are we trying to build and how do we keep people happy?
Because you could and he's even happened on the Rose Garden developer list in the last couple of days Ted's released a a new version Before Christmas, but he's released a patch version in the last week and he changed one of the theme sets up So it defaults to something that no one likes so there's a little mini uproar going on
On the flip side when you do get it, right when you do put this spend the time Getting your Architecture right and you're thinking about your code and your core then sometimes big features that you might have thought impossible even a few months ago are almost trivial to implement and
Suddenly those points you go. Oh, thank god We got it, right and you actually feel that that is something that was worth spending the time on doesn't happen all the time, but sometimes it does and it feels great and Yeah, fourthly in this little block Literally all you need is a small number of users and they need to be loyal users to keep you going
So even though you're not getting paid for it If you've got passionate users it can mean everything Okay talking of passionate users we'd spent some time in basements and Online, of course building stuff and we thought we and Chris thought it would be a great idea to get out
Let's get out there and start showing it and around the same time 2002 or so There were Linux expos starting to happen in the UK. So Through contacts of ours. We were involved with Linux user magazine I wrote for them eventually at some point or other and we managed to blag a store a stand at one of the first Linux expos and this is us looking all ruddy and
Young and lovely and wearing kind of branded t-shirts. Look at that made that myself. Fantastic This is my friend Mike unfortunately not with us anymore But he was a great inspiration and helped us a lot and encouraged us to get set up This is Chris and this is our fantastic setup. Isn't that just stellar? So but
Today, I mean and yesterday walking around for them Looking at people sitting behind Desks exactly that not better better. That's to be honest with much more impressive setups It really takes me back to those days when we were doing the same thing. We would we had our software We were excited about it and we went up want to go out there and show it to people
So, yeah, we were doing lots of things writing went to trade shows we went to conferences well Yeah, we've got hundreds of them a few a handful We started approaching vendors. So there were people who were building music software PCs And we talked to them. Maybe they'd be interested. We talked to Roland. We talked to Yamaha. We talked to loads of people AMD
We there's a book. It's in my bag. There's the one second. So Michael McIntyre wrote this whole Which was published the Rose Garden companion
Yeah, and then we start talking to partners as well so there were people at the same time who Who were betting their careers and their livelihoods on Linux being the next big platform? Obviously everyone thinks this year is the year of the Linux desktop, you know But there are still people out there whether they're then there were people out there who wanted to build Linux based hardware as well
we talked to a Creator of keyboards in Italy we went over to he flew us over and we talked to him It was a fantastic couple of days Met his family his mother made us lovely pasta for lunch and we saw his workshop where he was building these incredible
Multimedia platforms and keyboards in his garage basically his garage business fantastic So yeah, we got out on the road Also, we launched a product this was called studio to go So Chris and I we formed a company and we built a bootable CD
which enables you to basically have a Entire studio on your CD you could put it into a Windows machine and you could boot it up And you're booting to Linux and you'd be ready to go. Basically. You can also install it on your Windows machine, too This is Chris the year later. So from the previous photo. This is a kind of a level of professionalism higher
We look more relaxed more kind of in in the in the moment there. Yeah again, I think more relaxed And then if we look another year further, this is us the kind of app with The high point of our career with fervent software and studio to go. This was at the sounds Expo in 2004, I believe. Yeah
So we weren't in this by ourselves. There was a an organization called Linux audio As well, which is still around and all dog And in fact, I looked on the website yesterday and I'm apparently I'm on the board of directors or something for anyway It's not a company and I'm not on the board of anything there
but it was like a kind of an open source collaboration group with a guy called Daniel James as well who Also, I work with on in journalism. He was a big proponent of another Linux audio platform as well, which is still being sold I believe so working together
We managed to get to a sounds Expo where it was not just Linux stuff It was also Windows and the rest of the the event is there too However at that point it was Getting clear that we weren't going to make a living out of it Chris and I so we kind of with a family coming along
And that's why I mentioned it at the beginning with a photo of my son It was like a decision to say well What can we do now because we tried a kind of business didn't make enough money for us And we didn't really have the insight into what we should do next So we just said okay, let's call it quits for the minute I dropped off from you from Rose Garden at that point But loads of people other people stepped up and one of the biggest things that they did at this in the next
Section which is the QT years was to port it from KD to QT Which meant basically ripping out the KD stuff sounds simple enough, but took about a year and a half Which led everyone to understand that major dependency upgrades are very hard
One of the good things to look at from the source code of Rose Garden now is the of the of the source Files that we have about 1400 c++ files most of them are pretty small so under 500 lines That's including comments, so that's a good sign to healthy code base
so of skipping now from 2008 2010 and I'm kind of looking towards what's happened the last 10 years, but also the future so Ted Felix came on board in 2010 And by his words I spoken to him in the last week or two by his words He said it was it suffered from a lot of stability problems So this is we have a github as well as well as a source for sword and github is downstream
So it allows us to do some nice visualizations From so this was around the first Bit of work that we did to stabilize the initial Rose Garden. This was around the Studio to go time lots of lots of work there, and then this was around the KD
E to QT port so lots of lots of work went in there, too After this when Ted came on board He said basically spent a lot of time stabilizing basically getting rid of bugs and making sure that there was adequate performance I'm doing that. I think I don't it was not unaided for sure, but but focusing on that a lot
and you can see this also represented in the way that Chris and Guillaume were very involved here and Ted was involved later, and this is my contribution and Also, we see again from github the churn that was going on around the same time so studio to go product QT port and then
Stabilization after that, but if you then look at I'm just comparing us Comparing us to music which is another Linux audio workstation as well And this goes up to 40 on this axis and up to a bit higher on this one so in terms of contributions We're not far off
What muse is doing as well, which is really encouraging to see? So that I would say the product is pretty healthy. It's been stabilized It's still being used by lots of people you don't hear about it a lot, but it's still there And I'm going a bit faster now because I need to wrap up But the number one thing has got to be people and that's why I mentioned at the front at the front of this talk
People to do the work of course people to support you whilst you're doing the work and the expertise that you build together When you're designing something, so that's why I understand I see phrase garden I was still surviving and still something that we can contribute to
so top five things For open source basically I would say this as well, so Good architecture and good toolkit choices are super important and They help with defining your quality and defining how far you can go with any any one thing and if you're not getting anywhere
Down a certain path then just rip it up and start again or refactor or think really hard about your design Also Ted's jumped in with some stuff here as he's mentioned that stringent requirements on merging so making sure that you Don't allow anything to merge and in fact recently
There's been a fork of Rose Garden because one of the developers has got a bit annoyed He's not getting stuff reviews, and it's fair enough. Everyone's doing it in their spare time It's still a labor of love Also, I mentioned earlier of refactoring and unit testing and I did actually Run I managed to get to run the unit test code coverage the other day on Rose Garden, and it's 8%
Which is not good Okay, there are some challenges with a UI based But with a GUI But it should be higher than that so I Imagine one of the things that I might be looking at as I dip my toe back in a little bit is to maybe write some more tests So number one quality Number two coding is so sure I mean that's the one of the things that we don't realize is that we think we go into
OSS we can just hide maybe online or do some coding by ourselves, but increasingly it becomes social It's a different type of sociability maybe to working in an office But open source I believe is much more social than working in office because working in an engineering job a software job in an office
Because you can just focus in on The one thing that you're doing you don't have to be maybe told that you need to be more more Interactive in a certain way of working, but in OSS you have to be there's there is no question about it You've got to be able to defend your ideas and maybe persuade other people to also
Related to this as well. It's the social side of the customer engagement. It's the the fact that you do have customers or end users however you define them and They will have opinions whether you like it or not, so you're putting yourself out there Thirdly and this is something I've come across in the last year or so this guy called Seth Godin. He's an American marketing guru
and his Approach I really like his approach. He's got a great podcast called akimbo A-k-i-m-b-o you should check it out, and he's you he Writes and he speaks really well really pithily
On lots of subjects about marketing, and he's not like a slimy kind of marketing dude whatever kind of feel It's like it speaks to me as an open-source person You know and one of the things one of his key phrases is this people like us do things like this And I think that's what it means to connect with your audience to find your audience
And to keep connecting with your audience at the right level so yeah, we might spend some time Arguing about how a UI should be or what how we should architect this or if we should refactor that however It's worth it if we connect with each other and we connect with our customers well at the same time And also he talks about audience
Importantly because you don't need to solve all the problems in the world all you need to do is solve a few problems for a few people Fourthly use all the tools, so we're just so lucky these days. We've got all these amazing tools. We've got github
We've got code curve. We've got Cloud whatever it is lots of stuff you know so in sonar cloud etc all these great things that we can use sonar type So use them use CI used unit testing use TDD use all of the great Engineering advances that we've come up with over the last 10 years to make our code better
and finally Don't take it too seriously One of the reasons that I got involved in OSS was that I could do it from what we could do it ourselves You know we could to put our little imprint on the world or do something fun And that's the point it needs to be fun. It needs to be enjoyable so when it stops being enjoyable
Don't do it anymore And that is it. Thank you very much
Any questions are there any questions? Oh, yes, they are Please raise your hand okay? Hi. Yeah, thank you. I can't wait to give the software a try when I get back home
I might install it later, but Was there any possibility of you like playing a bit of music maybe no demo today, I should have said that
All right, thank you any other questions, okay, since it. Thank you very much a big round of applause