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