A lot of people love music. Some people say, without music you won't be able to find love. People might think that if you're a computer scientist, your only concern is the computer or when you say keyboard, it means a computer keyboard and not the one that outputs sounds or perform music. But according to Peter Kirn (composer/musician, media artist, educator, and technology writer, and the creator and editor of Create Digital Music), even before the term "IT" was coined in, most computer programmers have a musical background. *ehem
Some computer scientists love music to the point that they created a computer language that uses MIDI files as a source code, where programs are defined by the pitch and order of notes and (obviously) intended for music lovers (composers). Its primary goal is for flexibility in composition making functional programs don't sound like random notes.
Velato is an example of an esoteric programming language. It was created by User:Rottytooth (Daniel Temkin) in the year 2009.
They say that the results sound a "...a bit like an academic-sounding ragtime..." If you're going to listen to the outputs, well... they actually do sound like it was generated by a computer.
This is a computer language just for composers and composer wannabes. haha... nice.
What do other people say about Velato?
"I think its Hello World program is more listenable than the one for Fugue" -- Andy Baio
"Velato: What if Musical Notes Had Their Own Programming Language?" -- Peter Kirn
"It's an esoteric language, not designed for practical, every-day use (although don't let me discourage you from writing production code with it!). I was inspired to write it, in part, by Piet, but also an audio equivalent. I figured it offers an unusual challenge: to write something that both sounds musical and works as a program." -- Rottytooth (the creator himself to RustyBrooks)
"I think this sounds pretty cool. Nice work :)" -- johnstein
"(wide-eyed, after staring at the code for a few minutes)... So far, this (the program) is readable to me." -- scimtar
Command | Second note | Third note | Followed by / Notes |
---|---|---|---|
Change Root Note | Major 2nd | New root note | |
Let (assignment) | Minor 3rd | Variable as single note, then expression | |
Declare variable | Minor 6th | Variable as single note, then type | |
Blocks | Major 3rd | ||
While | Major 3rd | Expression | |
End While | Perfect 4th | ||
If | Perfect 5th | Expression | |
Else | Major 6th | ||
End If | Major 7th | ||
Special Commands | Major 6th | ||
Print to screen | Perfect 5th | Expression to print |
"Commands can be followed by any number of expressions. Notes used for expressions don't differentiate between major/minor or perfect/diminished. To avoid ambiguity, no augmented intervals can be used. So a tritone is always interpreted as a diminished 5th, not an augmented 4th."
Expression | First note | Second note | Third note | Followed by / Notes |
---|---|---|---|---|
value | 3rd | |||
variable | 2nd | Name of variable (single note) | ||
pos. (+) int | 5th | Single note for each digit, ending with Perfect 5th to mark end of number | ||
neg. (-) int | 3rd | Single note for each digit, ending with Perfect 5th to mark end of number | ||
char | 4th | Char as ASCII int: single note for each digit, ending with Perfect 5th to mark end of number | ||
pos. (+) double | 6th | Single note for each digit, first Perfect 5th to mark decimal point, second Perfect 5th marking end of number | ||
neg. (-) double | 7th | Single note for each digit, first Perfect 5th to mark decimal point, second Perfect 5th marking end of number | ||
conditional | 2nd | |||
= | 2nd | |||
> | 3rd | |||
< | 4th | |||
NOT | 5th | Also used for NOT < (indicating greater than or equal to) and NOT = | ||
AND | 6th | |||
OR | 7th | |||
procedural | 6th | |||
grouping | 6th | |||
( | 6th | |||
) | 2nd | |||
math operation | 5th | |||
simple | 5th | |||
+ | 3rd | |||
- | 2nd | |||
* | 5th | |||
/ | 4th | |||
% (mod) | 6th | |||
exponential / other | 7th | |||
power | 2nd | |||
log | 3rd |
(Table 2 from http://esolangs.org/wiki/Velato)
Types:
int = 2nd
char = 3rd
char = 3rd
double = 4th
(image from http://esolangs.org/wiki/Velato)
You can find the tutorial here at this link ---> http://danieltemkin.com/Blog/post/Velato-Hello-World!-tutorial.aspx
You can hear the code at this link ---> http://www.muziboo.com/mp3/hello-world-in-velato-programming-language-0/
Enjoy!
Sources:
http://esolangs.org/wiki/Velato
http://createdigitalmusic.com/staff/peter/
http://createdigitalmusic.com/staff/peter/
http://danieltemkin.com/Velato.aspx
http://projects.metafilter.com/1903/Velato-A-music-programming-language
Author:
Janroe Ryan A. Atienza
CMSC 124 T-3L
No comments:
Post a Comment