[HN Gopher] Jean-Michel Jarre's 'Oxygene 4' Recreated with 19KB ...
___________________________________________________________________
Jean-Michel Jarre's 'Oxygene 4' Recreated with 19KB of JavaScript
Author : LunarAurora
Score : 183 points
Date : 2022-12-28 17:44 UTC (5 hours ago)
(HTM) web link (www.synthtopia.com)
(TXT) w3m dump (www.synthtopia.com)
| worewood wrote:
| Color me impressed to see my favorite musician of all time on HN.
| Looking forward to get home put some nice headphones and listen
| to this, see if I can spot the differences
| Qem wrote:
| When talking about programming languages, I use to say Jean-
| Michel Jarre' songs are for music world as Smalltalk-family
| languages are for programming language world. Both are over 40
| year old but still look futuristic to this day.
| nine_k wrote:
| Because both of them picked some basic idea (FM synthesis and
| sequencing, message passing and isolated state), then refined
| it to an extreme degree of purity, ignoring irrelevant parts of
| tradition and convention.
|
| It's a rare combination of simplicity and richness.
| somrand0 wrote:
| I wish I could study (and explain) those 19KB of javascript (and
| including the rest of the locked down software stack taken for
| granted) as the sheet music that I take them to be from a fully
| academic music-technological standpoint.
|
| but I don't want a bend over backwards to have to do this. oh
| well.
|
| I wanna bend over backwards as I do it, from the very hardware
| (intel x86) all the way to the sound and back down the stack
| again. going through (or across??) the ADC and DAC cards and all
| that. I would never finish, so I wouldn't be allowed to start in
| any typical academic programs.
|
| I think within the academia is the only place this could possibly
| be brought up.
| csdvrx wrote:
| Wonderful, but it may require some optimization as it starts
| stuttering like crazy on Edge after the first 10 seconds.
| baggy_trough wrote:
| Sounds great on M1 Safari.
| gjm11 wrote:
| Infuriatingly stuttery for me on Firefox (on Linux; AMD Ryzen
| 5900X, so not exactly underpowered; plenty of RAM but very
| weedy GPU) but perfectly smooth on Chrome. It would be
| interesting to know whether this is something Chrome does
| _better_ or whether it 's just that Chrome and Firefox are
| _different_ and whoever made this only tested /optimized it in
| Chrome.
| kitsunesoba wrote:
| Fair amount of stuttering here too in Safari/Orion on a Xeon
| W-2140B iMac Pro.
| Kwpolska wrote:
| On my machine, it's pretty good in Edge, but stutters in
| Firefox.
| pjmlp wrote:
| Same here, on a quite powerfull Thinkpad graphics workstation.
| redeyedtreefrog wrote:
| similar to others, for me stutters like crazy in Firefox but
| only a tiny bit of stutter in Brave (aka Blink/Chrome)
| yankcrime wrote:
| Huh - I'm on a weedy ThinkPad X1 Nano with a i5-1130G7 on
| Debian / testing and it's playing fine under Chrome, barely
| touching 10% of one processor core.
| zeristor wrote:
| This runs fine in Safari on a MBA M2
| jakear wrote:
| I experienced the same, but once I enabled JIT (disabled
| "Advanced Security" for the site), it was smooth.
| unnouinceput wrote:
| Same on Firefox
| eisfresser wrote:
| Smooth on a 12 year old Mac Mini with Safari - hooked to the
| living room stereo and powering a little retro party right now.
| Love it!
| Gordonjcp wrote:
| Same on Firefox, but it does sound good in between stutters.
| mrb wrote:
| It appears there was little to no attempt to optimize for a small
| code size. The code could be minified and simplified to a lot
| less than 19 kB.
|
| I was curious to look at the size of a decent MIDI version of
| Oxygene IV (https://www.nonstop2k.com/midi-files/4259-jean-
| michel-jarre-...) and when gzip-compressed it is only 5,690
| bytes.
| reindernijhoff wrote:
| I think the cool thing about this version is that the whole
| sound wave (including the code for the synthesizers) is
| generated by one single piece of javascript (<19 kb). So it is
| more about the code itself than the code size.
| jacquesm wrote:
| It puts the term 'softsynth' to good use. Incredible, really.
| FpUser wrote:
| This is so cool. I am tempted to do something in this area. Tried
| Puccini, even better.
| Joeboy wrote:
| Stutters quite badly on my laptop (Thinkpad P53 / Ubuntu /
| Firefox)
|
| So here[0]'s the original as used at the end of Micro Men,
| featuring Acorn / ARM's Sophie Wilson as the barmaid.
|
| [0] https://www.youtube.com/watch?v=XXBxV6-zamM&t=4882s
| virgulino wrote:
| Stutters badly on FireFox on my desktop (Win10 Ryzen 4 core),
| stutters a little on Edge.
| rzzzt wrote:
| Comment lines 361-394 ("strings"). The message box says that
| this instrument can not keep up on my machine.
| foruhar wrote:
| It stutters for me when I have the tab in focus. What I switch
| to another tab the stuttering goes away. I guess it's the
| animations that are bogging down my Intel MBA.
| jlv2 wrote:
| and here's the real original on JMJ's channel:
|
| https://www.youtube.com/watch?v=kSIMVnPA994
| hutzlibu wrote:
| Stutters on my old gaming PC on Firefox as well, but runs
| smooth on chrome.
| jacquesm wrote:
| For the size that's absolutely amazing. On FF 108 it stutters
| quite a bit but on Chrome it's flawless and very easy to listen
| to. As for fidelity: Jarre's is a bit brighter, but if you'd have
| played this at me on the car stereo or so I wouldn't have picked
| up on it being a cover for at least a minute. Very well done.
| redeyedtreefrog wrote:
| wow that's cool! I like Jean-Michel Jarre and I like seeing music
| created through code, awesome that it combines the two. Though to
| be a bit of a pendant I'm not sure it is truly generative music
| (https://en.wikipedia.org/wiki/Generative_music), as I assume it
| is looping identically and so isn't "ever-different and
| changing".
|
| I think of generative music as being stuff like this (copy pasted
| from the interwebs long ago):
|
| echo "g(i,x,t,o){return((3&x&(i*((3&i>>16?\"BY}6YB6%\":\"Qj}6jQ6%
| \")[t%8]+51)>>o))<<4);};main(i,n,s){for(i=0;;i++)putchar(g(i,1,n=
| i>>14,12)+g(i,s=i>>17,n^i>>13,10)+g(i,s/3,n+((i>>11)%3),10)+g(i,s
| /5,8+n-((i>>10)%3),9));}"|gcc -xc -&&./a.out|aplay
| reindernijhoff wrote:
| You probably like this ditty:
|
| let t=0; synth.def(() => (255&(1|63(63&63+8 _Math.sin(t++
| /2e5)_t/2e5)&100 _Math.tan(4_ Math.PI _t /2e5)/4_Math.sin(4
| _Math.PI_ [165,220,175,262,196,147,220,165][7&(2 _t
| /2e5&12_t/2e5^8 _t /2e5)]_t/2e5)|2048 _(1+(1
| &t/4/2e5))_t/2e5))/127-1).play(0,{env:one});
|
| https://dittytoy.net/ditty/7c700fc1c3
| ExMachina73 wrote:
| This is great work. I remember my parents buying Oxygene on vinyl
| in 1982 at a yard sale when I was nine and I played it nonstop on
| my "Kiss" record player at the time.
| Kwpolska wrote:
| @dang current URL is blogspam, it should be changed to
| https://dittytoy.net/ditty/24373308b4
| somrand0 wrote:
| disagree, the url contextualizes what one's looking at in that
| other URL.
| [deleted]
| kencausey wrote:
| I think 'blogspam' is a bit harsh. This blog entry provides a
| bit of context and lightly discusses the Dittytoy site and
| gives credit to the arranger.
| Kwpolska wrote:
| The context and descriptions are very lightweight and almost
| nonexistent. And as another commenter mentioned, there are
| tons of ads on that site.
| kencausey wrote:
| I did not realize that. I opened it in Firefox private mode
| and didn't notice a single ad.
|
| edit: I checked again and I do see a sidebar ad and a
| matching ad at the bottom which I don't recall seeing
| earlier. They are both static and reasonably tasteful.
| nier wrote:
| Without a blocker, I see 10 separate ads.
| nier wrote:
| Your comment made absolutely no sense to me. Checked my ad-
| blocker. It was off!
| ChrisMarshallNY wrote:
| Jarre is fairly notorious about enforcing copyrights and whatnot.
| He might be having thoughts about sending a letter...
| kyaghmour wrote:
| Interesting. You have a reference? Been listening to his music
| for ~40 years and this is the first I hear that.
| ChrisMarshallNY wrote:
| He was the chair of the European Artists representative
| organization. Don't remember the name. He played hardball.
|
| There's still a lot of his stuff I can't get on Apple Music.
|
| But he has been very open to collaborating with folks, and
| pushing remixes (as long as he gets a cut, I guess).
|
| I've been listening to his stuff since Oxygene.
| ryandrake wrote:
| Amusingly, then, I was introduced to Jarre's music through a
| little C-64 demo[1] that came as an extra on one of my pirated
| floppy disks back in the '80s, which contained a SID rendition
| of one of his songs. The whole music lineup on that demo was
| awesome[2]. It had an unusually large influence on the "tree"
| of electronic music artists I went on to discover in my youth.
|
| 1: https://csdb.dk/release/?id=34955
|
| 2: https://www.youtube.com/watch?v=1vSNPCcDAAE
| yodsanklai wrote:
| Was Jarre popular outside of France? I think the first record I
| ever bought was Oxygen. In France, he used to be super popular in
| the 80s, the novelty of instrumental electronic music and catchy
| melodies. For some reasons, he quickly went out of fashion.
| otterpro wrote:
| In the late 80's and early 90's, while I was college student in
| US, I was interested in listening to MOD files with protracker,
| etc on my Amiga 500, and I discovered his music through it,
| available via usenet (as this was pre-www days)
| grujicd wrote:
| I think Jarre was quite popular in ex Yugoslavia. In part
| because his music was used on TV in the 80s, for intros,
| background music for education shows, etc. I wouldn't be
| surprised if it was not fully licensed at that time.
| pjmlp wrote:
| Quite popular in Portugal, I have several VHS tapes from his
| concerts.
| Jare wrote:
| Spanish here, in the early 80s he was fairly popular here and
| would be played in the top pop music stations, although to many
| adults it felt strange and experimental. I was a little kid
| when I asked to get The Concerts in China for xmas and my
| parents were like WTF.
| virgulino wrote:
| Brazilian here, Rendez-Vous was the first music cassette tape I
| ever bought.
| jacquesm wrote:
| What's with the 'was'? He's _still_ quite popular and his music
| is played fairly regularly, not less frequently than other
| artists of that day except for the likes of Queen & Bowie.
| Just like Vangelis. Quite a bit of music from that era is
| simply never played at all, but Jarre's work still features in
| the same places that it did back then: as background to videos
| and on the PA of the local supermarket. The latter is quite
| funny: he had a record called 'Musique pour supermarche', to
| see it used like that 40 years later ...
|
| NL was a good market for Jarre though, he was extremely popular
| here back then.
| schoen wrote:
| Has anyone happened to hear Brian Eno's _Music for Airports_
| played in a real airport?
| jacquesm wrote:
| https://media.londoncityairport.com/airport-plays-brian-
| eno-...
| VladimirGolovin wrote:
| Oh, he was very well known in USSR / Russia in the late 80s /
| early 90s. My friend was a DJ on a radio station back then, and
| she once played his music for an entire night -- and got a call
| from a listener who thanked her and said that it changed his
| life.
|
| As for his present-day popularity among younger people, it
| isn't as high as that of, for example, Queen or Pink Floyd --
| though I had a ride with a young Uber driver who was entranced
| with Les Chants Magnetiques that we heard playing on the car
| radio.
|
| And as for me personally, I currently have three of his songs
| in my Spotify favorites.
| hnlmorg wrote:
| I can't speak for America but he was a household name in the
| U.K.
| atombender wrote:
| Jarre was definitely popular across Europe in the 1980s.
|
| I was introduced to him around 1987 with Oxygene and Equinoxe,
| and always loved his 1970s and 80s albums, though I agree that
| he went out of fashion pretty early. As far as I'm concerned,
| he probably peaked creatively with Zoolook (1984), and I
| haven't really cared since Waiting for Cousteau. His later work
| isn't exactly bad, it's just the exact same formula he's been
| following for 40+ years.
| yankcrime wrote:
| I would say so yes, given he's in the Guinness Book of Records
| for one of the highest attended free concerts of all time
| (Moscow, 1997 with ~3.5 million people). He's also in 4th and
| 8th place, with 2.5 million in Paris in 1990 and Houston TX in
| 1986 with 1.3 million people respectively.
|
| https://en.wikipedia.org/wiki/List_of_highest-attended_conce...
| aidos wrote:
| If not a household name, at least a weekly household sound for
| kiwis as Oxygene was used in the title credits of Our World on
| a Sunday evening.
|
| https://youtu.be/wnPR9IoaTFc
| schappim wrote:
| And in Australia on SBS Chill[0]
|
| [0] https://www.sbs.com.au/radio/chill
| Thoreandan wrote:
| US-based commenter here, I first heard JMJ in the soundtrack to
| the 1988 gaqme "Captain Blood" by ERE Informatique/Exxos which
| is a clip of Ethnicolor from Zoolook. Oxygene IV was advertised
| on TV in "Pure Moods" and a lot of other new-age compilations.
| yodsanklai wrote:
| > Captain Blood
|
| Forgot about this game. I can't remember the actual game, but
| I found it very beautiful and intriguing. I think the music
| play a big part.
| TacticalCoder wrote:
| > Was Jarre popular outside of France?
|
| As I recall it Jarre was a semi-god in Japan. He made
| incredible concert there and had a gigantic following. I think
| he was bigger in japan than in France.
| luckydata wrote:
| It's fun to look at but I can't think of a more miserable
| experience than writing music that way.
| oceanplexian wrote:
| The idea that you can fit music in "16kb" is not really
| shocking, music notation has achieved the same or better for
| centuries.
| skrebbel wrote:
| Music notation does not include any information about what
| the notes should sound like. The actual sound synthesis, not
| the notes, is the majority of the code size here.
| HPsquared wrote:
| It's also highly compressible, with all the repeating
| patterns and similar permutations.
| vintermann wrote:
| Music notation is a very lossy format though, and getting a
| way to play it back at all is ludicrously expensive.
| kristopolous wrote:
| There's a vast world of musical programming languages
| https://en.wikipedia.org/wiki/List_of_audio_programming_lang...
|
| PureData and SuperCollider are some of the bigger "more active"
| free ones these days. Others like Csound are successors to
| languages like MUSIC-N, which goes back to the 1950s. The same
| year that Fortran got started...
|
| Often these aren't 100% typing like other languages and there
| are things that generates some of this code such as a midi
| keyboard.
|
| You can use the Linux tool amidi to read from the midi device
| and various unix tricks to get things into your code. There's
| many compact cheap midi keyboards and controllers on the
| market. You can even use a tablet or phone and tap the screen
| as a virtual music instrument or use the 6DOF sensor to imitate
| analog inputs.
|
| Some people will sit around and type it all out, but there's
| some pretty basic ways to avoid that exhaustion.
|
| I personally think the world of musical programming languages
| with novel interfaces and meta-languages is still very under-
| explored.
| nottorp wrote:
| 4kb the notes, 15kb the js code, 40 Mb of other JS libs?
|
| Edit: Oh and 2 Gb of samples.
| skrebbel wrote:
| > Edit: Oh and 2 Gb of samples.
|
| You're just pulling this out of your ass. There are no samples.
| All the sounds are actually generated by the 19kb of JS + the
| dittytoy API which provides a pretty low-level set of helpers
| to build synths and sequence notes.
|
| I can't figure out how big/small the dittytoy API is but 40MB
| or 2GB are both ridiculous.
| reindernijhoff wrote:
| The dittytoy API is 57.4kb, so including the source of this
| ditty, everything fits < 80kb.
|
| No samples or webaudio filters are used. Everything (the
| whole sound wave) is generated in code.
| detrites wrote:
| [dead]
| snvzz wrote:
| There was a cool Amiga musicdisk featuring Jean-Michel Jarre
| mods.
|
| Archive.org has the adf image[0], but unfortunately it doesn't
| seem to work with their builtin emulator. There's a video[1]
| showcasting it, but only plays the first five modules, yet
| Oxygene II and IV are the 6th and 7th.
|
| 0.
| https://archive.org/details/Triumph_Music_Collection_10_Jean...
|
| 1. https://www.youtube.com/watch?v=f6qwOYQD4bg
| reindernijhoff wrote:
| And another amazing ditty on Dittytoy. This is a vocoder written
| in javascript and performing (a small part) of the aria "Nessun
| Dorma" from Puccini's opera "Turandot":
| https://dittytoy.net/ditty/6f30b0885d
| mimimi31 wrote:
| Reminds me of Bytebeats [1]. My favorite being
| echo "g(i,x,t,o){return((3&x&(i*((3&i>>16?\"BY}6YB6%\":\"Qj}6jQ6%
| \")[t%8]+51)>>o))<<4);};main(i,n,s){for(i=0;;i++)putchar(g(i,1,n=
| i>>14,12)+g(i,s=i>>17,n^i>>13,10)+g(i,s/3,n+((i>>11)%3),10)+g(i,s
| /5,8+n-((i>>10)%3),9));}"|gcc -xc -&&./a.out|aplay
|
| It's incredible how much musical variation you can get out of
| such a relatively small function.
|
| [1] http://canonical.org/~kragen/bytebeat/
| wslh wrote:
| The game of reducing code to the minimum to produce an
| interesting output (e.g. demo scenes) makes me think about
| Chaitin randomness and entropy measure:
| https://mindmatters.ai/2021/03/chaitins-discovery-of-a-way-o...
| LunarAurora wrote:
| So to compare :
|
| 19KB JS -> https://dittytoy.net/ditty/24373308b4
|
| Original -> https://www.youtube.com/watch?v=kSIMVnPA994
|
| Soft synths -> https://www.youtube.com/watch?v=8jGvk28zs4g
|
| I added the third one because I'm more familiar with Soft synths
| as emulations of analog hardware. It is 6 years old though and
| there are better (vst) plugins nowadays.
|
| The 19KB JS version quality was surprising to me, I'm not versed
| in music (live) coding. how much do you think the dittytoy engine
| accounts for this quality ?
| reindernijhoff wrote:
| The Dittytoy engine is just a tiny layer that calls the code of
| the ditty 44100 per second. So the whole sound wave synthesis
| is done in the code of the ditty.
| [deleted]
| SergeAx wrote:
| Looks and sounds quite like a .STM music tracker, popular in the
| age of 286/386 PCs. But my phone, with CPU at least two orders of
| magnitude more powerful, cannot keep up with it(
| fabricedeville wrote:
| Fun fact: Oxygen part IV was greatly inspired by Popcorn (1969),
| which Jean-Michel Jarre covered under the Jammie Jeferson
| pseudonym.
___________________________________________________________________
(page generated 2022-12-28 23:00 UTC)