James Posted April 10, 2012 Share Posted April 10, 2012 It certainly would help a lot. I'm currently half way through writing a tutorial. It starts very easy with the musical version of Hello World. The Mozart sample is actually quite advanced.Then it may help to think about highlighting it, or highlighting key components. I don't know about you, but looking at that in black and white is just mind boggling Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
czardas Posted April 10, 2012 Author Share Posted April 10, 2012 (edited) Indeed I can't deny that it looks confusing. It's a hybrid language after all. Looking at esperanto has the same effect on me: it might as well be written in chinise. However the system has logic behind it. Once you know the syntax, it is easy to follow. Using voo syntax it is possible to write the same music with bad, incomplete or simpler syntax, just as you can with other scripts. When I finish the tutorial all will become clear.This tutorial is work in progress (musical version of Hello World).; Virtuoso Music Script Tutorial ; In voo scripts single line comments begin with a semicolon. ; In voo files all pieces of music must begin with a title wrapped in double quotes. ; The pitch of the notes is written on the next line, and the rhythm on the line below that. ; Line 0 ··· Title (or other text) ; Line 1 ··· Pitch values , Line 2 ··· Rhythmic duration ; Note names use the upper case letters A to G. voo is case sensitive. ; A B C D E F G ; The default beat value is a quarter note indicated by a single bullet point. ; • • • • • • • ; Notes values should line up visually with the letter names above. ; This is not forced but it makes it easier to locate errors. ; Using word wrap should be avoided. "Double Line Notation" A B C D E F G • • • • • • • Edited April 10, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
James Posted April 10, 2012 Share Posted April 10, 2012 (edited) The problem is, you'd really need a bespoke editor to write this, since the characters you use aren't easily available to most, without using ASCII codes, or being able to copy and paste them.On a side not, I really fancy messing with making music. Have you ever used Ableton Live? Edited April 10, 2012 by JamesBrooks Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
czardas Posted April 10, 2012 Author Share Posted April 10, 2012 (edited) The problem is, you'd really need a bespoke editor to write this, since the characters you use aren't easily available to most, without using ASCII codes, or being able to copy and paste them. On a side not, I really fancy messing with making music. Have you ever used Ableton Live? I watched a couple of demos. To me this is more of an editing program (it looks good though). I'm glad you posted it because it provides the answer to your first point about typing issues. Notice that he is using a specializsed keyboard called a piano. I don't know of any music software that has adequately solved the note input problem. I also don't plan on typing much voo. That can be automated. I also have some experiments I wish to conduct and ideas I want to try out. I typed the code using this made specifically for this kind of thing. Edit The end of 5 lines from the previous Mozart example miss some spaces, so the ends of those line should read: Ø DS/Ø|Ø DC/fin Which is interpreted as follows:: CODA, Del Segno al CODA, Bar line, CODA, Da Capo al fin These terms are understood internationally by many people, regardless of nationality. Therein lies the strength of voo. To the interpreter these terms just mean GoTo (more or less). Did you listen to the midi file BTW? - It's easier to understand voo if you can hear it. Edited April 11, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
czardas Posted April 12, 2012 Author Share Posted April 12, 2012 (edited) I have a first language beta release. How easy it will be to implement these specs is not clear to me yet. Some of the work on the interpreter is done, but I have other commitments to attend to, so progress in that area may be slow. Anyway voo has kind of arrived. voo_specs.zip Edited April 13, 2012 by czardas James 1 operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
czardas Posted April 15, 2012 Author Share Posted April 15, 2012 (edited) I have come up with one or two additions as yet undocumented in the above specs. The first is double backslash which represents a multi-line break. I have modified the code in as an example. It is possible to make a voo tidy function to align everything for visual clarity.The next feature is the ability to tune the notes. Pitch values can be raised or lowered by as many cents as you wish. One cent is equal to 1/100th of a semitone. I don't know if this is possible with midi. I would have thought not, although this can be done using beep.Not only will you be able to make your instruments sound out of tune (depending on one's perspective of course), you could also have them play out of time since the synchronization of voices is not forced. Edited April 15, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
James Posted April 19, 2012 Share Posted April 19, 2012 @czardas, you may find https://github.com/farbrausch/fr_public/tree/master/v2 useful for sound syntheses. Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
czardas Posted April 19, 2012 Author Share Posted April 19, 2012 (edited) JamesBrooks, thanks for thinking about this. I have been quite busy with work, so I haven't had much time to think about this lately. I took a quick look at the link and it seems complicated. However I read some bits and pieces.The author mentions waves, and waves are good! It would be totally awesome to have wave equations in voo. Unfortunately that's a bit over my head. Something like that would remove the dependancy on sound libraries altogether. The only way I can imagine making this practical would be to have something like a colour chart where you could blend waveforms by clicking on different areas to create new instruments. The resulting mathematical formulas would then appear in your voo code. That's some highly complicated and heavy duty coding (or so it seems to me at least). I need to think about it, and it may also not work the way one might expect.I was planning on using midiOutShortMsg to begin with, but (although recommended by Microsoft for desktop apps) this method is extremely limited and also somewhat dated. It will not be possible to implement the full range of voo commands. Missing wil be tuning (temperament), playing the same note on two instruments simultaneously (unison BAH!) and dynamics could also be problematic. With a midi stream some of these problems may be overcome, however it turns out that different problems will be encountered, such as using free time (no time signature) or out of sync voices (not that I would personally need that). Also the number of voices is restricted to a maximum of 32 (that's only 3.2 pianists, since they normally have eight fingers and two thumbs each ).I imagine that there are several sound libraries that could be suitable for this project. There must be! They will all have strengths and weaknesses. Nobody can deny that midi sounds like tripe. It's good enough to create music software aids and tools for a variety of purposes, but it doesn't exactly produce sound recording quality. Really my main aim is to have a flexible system that I can integrate into my own apps, but a more professional sound and additional features are without a doubt worth pursuing for the future. Edited April 19, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now