[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)