Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] types & design advices (musical program)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-10-18 (11:11)
From: Kontra, Gergely <kgergely@m...>
Subject: [Caml-list] types & design advices (musical program)

I began to play with a little program, which knows about notes.
The first problem, which I face, was the following:
type pitch=[A|Ais|As|H|B|His|C...]
type base=[A|H|C|D|E|F|G]

So when I have who types, where one of them is the superset of the

After that how can I define a pitch type of eg. C?
let p = C will be of the type 'basse'.

The next one is more general:
Assume I want to calculate with notes.
I give the key to the whole stuff (like G major or D minor).
Which I'd like to see is to generate a scale, eg:
scale D Major; (* -->[D;E;Fis;G;A;H;Cis] *)

Of course I want a 'nice' representation, because I want to develope
this little prog.

[Note for "just-programmer-non-musicists":
in a scale, the base notes are successive elements from the type
base. The distance from neightbour notes are 2 2 1 2 2 2 semitones in
the major and 2 1 2 2 1 2 2 in the minor scale. The -is prefix raises
the notes pitch by a semitone, and the -as one lowers it. Stating, that
C D E F G A H is a major scale, one can figure out the distance of the
base notes.]


+-[Kontra, Gergely @ Budapest University of Technology and Economics]-+
|         Email:,          |
|  URL:    Mobile: (+36 20) 356 9656     |
+-------"Olyan langesz vagyok, hogy poroltoval kellene jarnom!"-------+
Magyar php mirror es magyar php dokumentacio:

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: