[HN Gopher] Velato: A programming language where source code mus...
       ___________________________________________________________________
        
       Velato: A programming language where source code must be a valid
       MIDI music file
        
       Author : p4bl0
       Score  : 66 points
       Date   : 2024-03-03 05:55 UTC (1 days ago)
        
 (HTM) web link (www.velato.net)
 (TXT) w3m dump (www.velato.net)
        
       | throwaway0665 wrote:
       | Perhaps it is impossible but I'd love to see a Quine in this
       | language
        
         | Y_Y wrote:
         | I believe all but severely limited languages are forced to
         | admit quines, see e.g.
         | https://math.stackexchange.com/questions/3982278/the-fixed-p...
        
         | xpointer wrote:
         | Hi, I'm the creator of Velato. I will be reworking the website
         | to include more examples later this year. In the mean time, the
         | latest version of the compiler is on github:
         | https://github.com/rottytooth/Velato
         | 
         | No one has yet written a quine although I would love to see one
         | -- perhaps outputting its representation in lilypond format.
        
           | Rochus wrote:
           | Since you're the author I can ask you directly, what the
           | purpose is of the language. Why did you choose MIDI as a form
           | of representation? What kind of programs are you implementing
           | with it? Where are these programs supposed to be executed, on
           | MIDI instruments?
        
             | lieuwex wrote:
             | For fun I suppose? See: esoteric programming languages
        
               | Rochus wrote:
               | Why shoud we suppose if the author himself can give us an
               | authoritative answer?
        
               | yreg wrote:
               | It's very obvious.
        
             | xpointer wrote:
             | I first made the language (fifteen years ago!) out of
             | curiosity about esolangs and as a first try at writing a
             | compiler. And for fun, yes. Since then, I've written more
             | about multicoding -- the way two readings of code impact
             | each other -- and thought more about the music that results
             | (some links in my comment below). This is the aspect of the
             | language that interests me now.
             | 
             | I chose MIDI since it's a standard and leaves to the
             | programmer the choice of tool to compose the program.
             | There's an IDE in the works geared for live performance of
             | the language (that will not be MIDI, but not ready to say
             | yet how it will work; it has the same lexicon but is quite
             | a different language in practice).
        
               | Rochus wrote:
               | I see, thanks. But is Velato actually conceived to create
               | music, or is the music just a "random" byproduct?
        
               | velcrovan wrote:
               | From the top of the original link:
               | 
               | > "Velato offers an unusual challenge to programmer-
               | musicians: to compose a musical piece that, in addition
               | to expressing their aims musically, fills the constraints
               | necessary to compile to a working Velato program."
               | 
               | It seems like Velato's purpose is to provide an unusual
               | and interesting creative constraint for people who can
               | both code and write music.
        
               | Rochus wrote:
               | > _Velato's purpose is to provide an unusual and
               | interesting creative constraint for people who can both
               | code and write music_
               | 
               | I do both on a professional level and have no idea what
               | this sentence means; that's why I'm asking.
        
               | MyNameIs_Hacker wrote:
               | Have you ever sat in front of your favorite DAW version
               | XX and thought, oh wow so many things, what am I going to
               | do?
               | 
               | How about Sonic Pi? Or any modern audio toolset. So much
               | possibility, where to start?
               | 
               | Creative constraint is about opening up pathways by
               | restricting options.
        
               | hn_acker wrote:
               | It means come up with a code goal and a music goal, and
               | fulfill both with a Velato program. For example, can you
               | write MIDI file which finds the nth Fibonnaci number and
               | sounds good to your friend when played with a piano
               | instrument (a real one or a sound sample)?
        
               | Minor49er wrote:
               | Presumably you code and compose in separate contexts,
               | unlike what the sentence describes
        
         | lcnPylGDnU4H9OF wrote:
         | A game that is programmed by the music in the game. Something
         | tells me such music would sound a little odd.
        
       | p4bl0 wrote:
       | Strange: I submitted this more than 24 hours ago and it still
       | says so on my list of submissions here:
       | https://news.ycombinator.com/submitted?id=p4bl0
       | 
       | But it's the same submission as this one which says it was
       | submitted by me 4 hours ago.
       | 
       | I've been contacted a few times by HN moderation and was asked to
       | re-submit some interesting link that didn't get traction on the
       | first try, but it's the first time that I see a link be re-
       | submitted on my behalf. Is that common on HN now?
       | 
       | Anyway, concerning Velato, I stumbled on it yesterday. I find
       | this kind of esoteric languages (like Piet [1]) quite fun, and
       | thought that others here may enjoy it!
       | 
       | [1] https://www.dangermouse.net/esoteric/piet.html
        
         | Levitating wrote:
         | How did you stumble on it?
        
           | p4bl0 wrote:
           | I'm not really sure because it was one of the tab opened in
           | my mobile browser. My best guess would be that I originally
           | saw this link in a post on Mastodon.
        
         | xpointer wrote:
         | It's funny you link to Piet; I began Velato by asking what
         | would Piet be as music. Some programs are instantly
         | recognizable as Piet while others are hardly recognizable as
         | such; the language has its own aesthetic and yet programmers
         | bring their own style to its set of visual constraints, all
         | through fairly basic rules. In Velato, all notes are read in
         | relation to a root note that can change between commands, even
         | in the middle of a single chord. That was meant to allow for
         | more choice in how a programmer constructs a piece of music.
         | 
         | Years later I interviewed David Morgan-Mar about Piet and his
         | other languages https://esoteric.codes/blog/david-morgan-mar
         | and wrote about the concept of multicoding, where a single text
         | has readings in two systems that shape each other (an image and
         | code, music and code etc) https://esoteric.codes/blog/chef-
         | multicoding-esolang-aesthet...
        
         | dang wrote:
         | > I've been contacted a few times by HN moderation and was
         | asked to re-submit some interesting link that didn't get
         | traction on the first try, but it's the first time that I see a
         | link be re-submitted on my behalf. Is that common on HN now?
         | 
         | Not resubmitted but re-upped. That is, we rolled back the clock
         | on it and added some points so that it would get a placement on
         | HN's front page. You can see the stories that get picked this
         | way here: https://news.ycombinator.com/pool, and the system is
         | described at https://news.ycombinator.com/item?id=26998309 and
         | the links back from there.
         | 
         | When a post is older, we email an invite link (as you
         | described) but when it's only a day or two old, we re-up the
         | current submission. That's what happened in the present case.
         | The timestamp munging is an artifact of this re-upping system (
         | https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
         | ).
         | 
         | Thanks for posting great submissions to Hacker News! Btw, if
         | anyone sees a great submission that could use a re-up or a
         | repost, please let us know at hn@ycombinator.com. (It's best
         | when the article isn't your own stuff, but rather something
         | that you just think is interesting.)
        
       | hoosieree wrote:
       | Glad to see it's written in C#.
       | 
       | Can we get a port in F# please?
       | 
       | https://github.com/rottytooth/Velato
        
       | mb7733 wrote:
       | > Keep in mind that this set of notes is _not_ the actual
       | program; if a MIDI file is created from this progression of
       | notes, the concurrent notes might be interpreted in a different
       | order in the file, and create an invalid program.
       | 
       | Is the order of notes within a chord the _only_ extra info
       | required on top of a musical score? If so, with some "tie-
       | breaker" I think you could encode any Velato program
       | unambiguously in sheet music.
       | 
       | For example, if notes in a chord were interpreted as commands
       | from lowest to highest pitch, you could move notes up and down by
       | octaves to determine the command order. Just a thought... I like
       | the idea of piece-as-program.
        
         | xpointer wrote:
         | I favored the flexibility of ordering concurrent notes
         | differently in MIDI over having the sheet music uniquely define
         | a program. It gives the programmer more choices in how notes
         | can be combined.
         | 
         | But there could be a default ordering -- I would think reading
         | a chord from bottom to top -- for a piece of music where the
         | score came first and the MIDI representation or performance of
         | that score second.
        
       ___________________________________________________________________
       (page generated 2024-03-04 23:01 UTC)