Hacker News new | past | comments | ask | show | jobs | submit login
Is music production comparable to programming?
14 points by Tichy on Aug 28, 2007 | hide | past | favorite | 18 comments
In software development, I have no problem to envision developing arbitrarily good applications, by building it one building block at a time. On the other hand, the last few days I have listened to extremely good music and I don't see how to ever arrive at that level. Is there a point when one has learned enough basics of music production to be able to produce arbitrarily good music?



Yes, the process is very similar. My degree is in audio, my early college work in music. I don't have a computer science degree. I've known a lot of musician-turned-hackers and hacker-turned-musicians.

But I think you're missing a subtle aspect of developing arbitrarily good applications: You probably can't develop a truly great application one block at a time. Sure, you can add all the features of a truly great application one block at a time. But the devil is in the details (just like in music, art, etc.), and sometimes missing one spark of inspiration can make all the difference.

Google is great software. Microsoft Live search is a cheap knockoff with more features and flashier design and less of whatever it is that makes Google "great".

The iPod is great software. Zune is a cheap knockoff with more features and less of whatever it is that makes the iPod "great".

And those two "knockoff" examples were made after the original--they should have been able to copy the "great" aspect and one-up it, by throwing money at it. But somehow they failed. That's the subtle distinction between great software/art/music and mediocrity.

The Beatles made great music. Paul Revere and the Raiders made cheap knockoff songs with less of whatever it is that makes the Beatles "great".

jraines post sums up quite a bit of the process similarities, so I won't go into it.

Music is less objective than software--a bug is a bug, but a blue note might be on purpose and it might be the key to the song. So, it's not precisely the same. Knowing software works or doesn't might be easier than knowing if a melody is worth anything.


Its not the same in terms of its incrementality. Generally a beat or a melody for one track wont really work for another, but it can. I don't think parts of music can be encapsulated. Still I find making music similar to coding in terms of creativity.

I think in all creative pursuits you can get very very good by consistently seeking to do better and gaining insight into what you do. If you're always thinking about the next layer of meaning and trying to stretch you'll achieve great things.

I just made the comparison in this blog post which hasn't garnered much yc interest: http://greendestinyonyc.blogspot.com/2007/08/creativity.html


I guess it depends on what you mean by encapsulation. If you're writing music with functional harmony, it's a very useful concept, although you typically work in reverse.

The encapsulated idea might be the dominant part of a V-I cadence, which you can replace with an extended, embellished pattern that has basically the same function but is much more interesting. V->[I-ii-iii-IV-V/V-V]

    I-vi-ii-V-I
    I-vi-ii-[I-ii-iii-IV-V/V-V]-I
And maybe at the beginning, you can reinforce the tonality with a little pattern instead of just plunking out a I. So I->[I-vii-I]. Then you have a progression like this:

    [I-vii-I]-vi-ii-[I-ii-iii-IV-V/V-V]-I
Then, you can map that pattern onto a rhythmic framework. Maybe with a generalized mapping function that you could use for a number of different patterns. Anyway I'm rambling now. Maybe I'll blog about it at some point.

(note that the vii should really be vii-diminished. The forum doesn't appear to support the little circle superscript.)


Ok more good examples of a sort of encapsulation in music. In general all I meant was that writing parts of music for the purpose of reuse would generally be considered to lessen the musical quality because of the lack of originality.


slightly off topic, but I think a beat or melody CAN be generally interchangeable if it's done right and with interchangeability in mind. See here: http://micropledge.com/projects/music-mash


Yeah I don't disagree despite what I wrote. Perhaps it's better put that interchangeability is a very powerful thing in software, but its more of a gimmick in music where no component takes nearly as long to describe and making parts that work independently is not seen as a good thing. The chords and tonal systems ensure interoperability anyway.


There are a couple approaches to making music, just as there are a couple approaches to writing code. The classical approach is that you have a melody in your head and work backwards from there. The other approach is to improvise - more like jazz, where the musicians are playing off each other and the audience.

In code, the classical approach is akin to the waterfall method. Design it all up front. Build it with statically linked tools. Hire programmers like an orchestra, based on their ability to follow the score. The iterative approach is more like jazz. Write a little bit. Bounce it off other people. Write a little more. A conversation. Duck typed scripting languages are great for that.

And then there's interaction design. This is more like a band leader who 'gets' the audience. Or, at least, someone who the audience 'gets'. This is isn't working backwards from a tune or forwards from a set of building blocks. It's a bidirectional search.

On a more pragmatic level: it takes about 1000 hours of playing with any tool to become arbitrarily proficient. Another 1000 hours of playing with people to become arbitrarily 'good' (give or take a zero or so).


Not sure what you mean by "arbitrarily" here, but yes -- in my experience the two are very similar:

1. Both require long periods of focus to really get in the zone and be productive.

2. Progress is marked by stretches of frustration punctuated by "eureka" moments.

3. It helps to be around others with the same interests, be it Scandinavian metal or Ruby on Rails.

4. If you do the little things wrong, you make it harder for yourself at the more complex levels. Good habits are key.

5. Don't get too hung up on the tools in the beginning (ie overspending on guitars, amps, mixing equipment -- or switching development tools every time the next hot framework or dev kit comes out)

My advice to you is to persevere. Just like with programming, one day you will find that things which once seemed impossible are within your reach, and it's a very rewarding experience.


What sort of music are you interested in? Are you talking about sound production, performing, composing?

The main difference with composing is that you are usually writing a program for a real person to perform, not for a computer to execute. This means that writing music is less exacting, but can also be more subtle.

The other big difference is that you aren't usually writing music to solve an external problem. With music, you have to invent the problems you want to solve. You might say "I want to hold an F# in the alto line for 4 measures, while moving all the other voices in a chord progression that adheres to the following restrictions..." You just make up the conditions on your own. Software, in contrast, almost always solves a concrete, defineable problem (even if you don't know what that problem will be when you start coding).

With performing, the biggest difference is that it's real-time action and communication. You have to train physically in order to be good, and learning bad habits is disastrous. Code-reading and being good at using an editor are more analogous to music performance than software development in general. With writing code, it can be a good thing to write 1,000 lines of crap, if you learn enough not to make those mistakes again. Making mistakes while performing just leads to more mistakes in the future.


If I could create a good piece of music (recording), I would be happy. Being able to perform it would be a plus, but not so important.

I tend to think more in terms of emotions I would like to express, but maybe that is insufficient.


You can become a good player by learning what other people have played, so those would be your building blocks, Consistently creating good new music is a very rare gift, Most players (at most) create a somewhat unique style (which will include a lot of building blocks created by others) which they rely on heavily for their whole careers.


Perhaps. Can you recognize the different parts of music that make it good? Have you ever had a favorite song that you love but can't stand at the same time because you hear one part or beat that just isn't right?


when you get to fed up with the music you are already hearing to, and if you are a person who can create music, thats what you will probably do! Paul Oakenfold rised to the elite of DJs when he started writing music he wanted to hear!

that sounds familiar when you create an application for what people want! but I think its a totally different way of creation needing different sources of inspiration.


Is there a point when one has learned enough basics of music production to be able to produce arbitrarily good music?

Yes.


See Timbaland, Pharell/Chad Hugo, Rick Rubin.


I wouldn't qualify them as knowing the basics. I think they're musical geniuses.


OK, it was a bad example. None of them seem to have a formal grounding in music theory, except Chad Hugo who dropped out of college before finishing.


I guess, at best, you're making the argument that you don't need to go to conservatory to make pop music. While true, I think it's fair to say these guys are all really musically minded. In particular, Rick Rubin and Pharrell cut across genres really well (from rap to rock and stuff in between), which is decent evidence that they're not just lucking into popular singles.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: