Rosegarden: A Slumbering Giant
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
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 | 10.5446/61627 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2023286 / 542
2
5
10
14
15
16
22
24
27
29
31
36
43
48
56
63
74
78
83
87
89
95
96
99
104
106
107
117
119
121
122
125
126
128
130
132
134
135
136
141
143
146
148
152
155
157
159
161
165
166
168
170
173
176
180
181
185
191
194
196
197
198
199
206
207
209
210
211
212
216
219
220
227
228
229
231
232
233
236
250
252
256
258
260
263
264
267
271
273
275
276
278
282
286
292
293
298
299
300
302
312
316
321
322
324
339
341
342
343
344
351
352
354
355
356
357
359
369
370
372
373
376
378
379
380
382
383
387
390
394
395
401
405
406
410
411
413
415
416
421
426
430
437
438
440
441
443
444
445
446
448
449
450
451
458
464
468
472
475
476
479
481
493
494
498
499
502
509
513
516
517
520
522
524
525
531
534
535
537
538
541
00:00
Goodness of fitMultiplication signStaff (military)NeuroinformatikPoint (geometry)Musical ensembleTheory of relativity
01:51
SoftwareAnalogyMusical ensemblePointer (computer programming)MIDIOcean currentTrailComputer-assisted translationMultiplication signTouchscreenDigitizing
02:49
Goodness of fitLink (knot theory)Universe (mathematics)Web pageQR codeSoftwareMereologyOpen sourceDecision theoryProjective plane
04:03
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
05:23
SoftwareIndependence (probability theory)Focus (optics)Multiplication signMixed realitySource codeStatisticsFocus (optics)Software engineeringProjective planeSoftwareBitMereologySoftware developerTerm (mathematics)Computer animation
07:30
Open sourceSoftwareConnectivity (graph theory)Core dumpBitAreaNumberEnterprise architectureProjective planeComputer animation
08:46
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
11:20
Projective planeSequenceData miningComputer sciencePositional notationUniverse (mathematics)Text editorComputer animation
12:07
Musical ensemblePositional notationText editorHand fanWeb-DesignerBitSystem callComputer animation
12:51
Silicon Graphics Inc.Text editorPositional notationGUI widgetFilm editingSet (mathematics)Event horizonObject-oriented programmingSource codeProcess (computing)Computer animation
13:31
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
15:39
Point (geometry)Gateway (telecommunications)BitComputer clusterCuboidComputer animation
16:38
Exponential functionConnected spaceSoftwareDependent and independent variablesWebsiteValue-added networkTelecommunicationReal numberLine (geometry)Boss CorporationCodeNetzwerkverwaltungTDMAUniverse (mathematics)Computer animation
18:14
Logic AudioServer (computing)CodeComputer clusterCuboidRange (statistics)Source codeTable (information)Computer animation
19:15
Logic AudioMusical ensembleMultiplication signComputer hardwareLogicProcess (computing)Right angleStructural loadBitWindowCASE <Informatik>Row (database)EmulatorPlug-in (computing)Office suiteProduct (business)Point (geometry)Computer simulationSoftwareComputer animation
21:41
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
26:08
Multiplication signPoint (geometry)Real numberComputer animation
26:47
Interface (computing)TelecommunicationBitSequenceGraphical user interfaceMultiplication signVirtual memoryComputer fileMechanism designProcess (computing)Computer animation
27:26
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
31:18
Connected spaceMultiplication signMereologyVirtualizationBus (computing)Software development kitVirtual machineRoutingExterior algebraCore dumpKernel (computing)Computer animation
32:35
MIDICore dumpMarkup languageAlgebraComputer architecturePower (physics)Different (Kate Ryan album)Computer architecturePlug-in (computing)Sinc functionComputing platformMarkup languageMusical ensembleBitStandard deviationComputer fileWindowLetterpress printingPositional notationINTEGRALType theoryComputer animation
33:55
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
36:09
Data storage deviceMultiplication signBuildingSoftwareComputer animation
37:23
Musical ensembleStructural load2 (number)Multiplication signPolar coordinate systemKeyboard shortcutSoftwareComputing platformMultimediaComputer hardwareFamilyComputer animation
38:49
WindowEntire functionVirtual machineProduct (business)BootingMobile appMoment (mathematics)Level (video gaming)Digital photographyComputer animation
39:28
Self-organizationPoint (geometry)Computing platformOpen sourceWhiteboardEvent horizonWebsiteWindowGroup actionSoftwareCollaborationismComputer animation
40:31
Decision theoryStructural loadPoint (geometry)Sheaf (mathematics)Digital photographyFamilyComputer animation
41:14
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
44:03
Open sourceCodeUnit testingMultiplication signComputer architectureSoftware developerCode refactoringWage labourAxiom of choiceGoodness of fitNumberTheory of everythingGraphical user interfaceSoftware testingBitComputer animation
45:18
Type theoryDifferent (Kate Ryan album)Office suiteCodeNumberOpen sourceProcess (computing)Computer animation
46:19
Multiplication signComputer animation
47:32
Point (geometry)Type theoryCurvePoint cloudUnit testingCodeComputer animation
48:30
Musical ensembleBitSoftwareSinc functionDemo (music)Roundness (object)
49:46
Program flowchart
Transcript: English(auto-generated)
00:05
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
00:21
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
00:43
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
01:00
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
01:23
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
01:42
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
02:05
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
02:25
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
02:42
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
03:04
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
03:23
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
03:45
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
04:09
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
04:27
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
04:42
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
05:02
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
05:29
Italian Spanish Finnish German loads and Over the last 20 years has been downloaded all over all over the world as you can imagine
05:48
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
06:01
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
06:21
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
06:44
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
07:02
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
07:21
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
07:41
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
08:09
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
08:26
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
08:42
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
09:00
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
09:28
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
09:43
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
10:02
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
10:26
in addition to that We also see how the working world Comes into play one second. So
10:47
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
11:08
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
11:21
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
11:43
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
12:03
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
12:24
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
12:40
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
13:04
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
13:23
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
13:44
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
14:03
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
14:24
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
14:41
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
15:03
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
15:21
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
15:44
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?
16:06
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
16:25
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
16:40
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
17:05
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
17:26
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
17:45
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
18:04
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
18:25
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
18:44
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
19:05
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
19:34
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
19:43
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
20:06
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
20:24
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
20:44
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
21:03
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
21:24
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
21:44
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
22:02
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
22:27
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
22:43
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
23:02
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?
23:22
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
23:43
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
24:03
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
24:21
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
24:41
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
25:01
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
25:24
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
25:43
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
26:06
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
26:24
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
26:41
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
27:02
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?
27:25
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
27:41
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
28:04
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?
28:22
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
28:45
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
29:03
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
29:23
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
29:44
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
30:02
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
30:20
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
30:41
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
31:03
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
31:24
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
31:42
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
32:03
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
32:23
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
32:43
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
33:02
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
33:21
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
33:45
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
34:01
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
34:30
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?
34:47
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?
35:02
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
35:23
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
35:40
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
36:01
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
36:22
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
36:43
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
37:01
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
37:24
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
37:46
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
38:00
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
38:24
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
38:42
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
39:00
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
39:21
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
39:44
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
40:01
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
40:22
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
40:42
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
41:04
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
41:21
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
41:40
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
42:03
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
42:23
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
42:40
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
43:01
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
43:22
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
43:46
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
44:04
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
44:24
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
44:41
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%
45:02
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
45:24
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
45:40
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
46:01
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
46:27
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
46:42
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
47:02
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
47:23
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
47:40
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
48:06
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
48:25
Don't do it anymore And that is it. Thank you very much
48:43
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
49:14
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
49:25
All right, thank you any other questions, okay, since it. Thank you very much a big round of applause