YAML input to sompyler ...
General usage notes
This is not a public or commercial service, just a private test-bed used on personal invitation basis by those adept at facing error messages, calmly thinking about and at notifying them if clueless.
Action buttons all require login. Domain owner gathers alpha-testers in private and tells them how sign up for a session. Users are registered and only need to login until 12h after last interaction, the cached and output files cannot be recovered.
Being an alpha-tester requires exchange of WhatsApp or Signal contacts so you can make support queries and report bugs. For the latter, and to clone and deploy open-source Sompyler to your own device if you prefer, you may also use sompyler repository facilities on Gitlab. Alpha-testing contact members are able to create accounts themselves at any time without prior action by the webmaster. Please understand that when a certain number of active alpha-testers is reached, further requests are ignored or politely denied.
To establish a humble plenty of fairness among the users competing for limited resources (after all, it is a quite small machine), I went lengths to implement measures so it is equally cumbersome for all. Read how on the limited resources information page.
There is some, i.e. incomplete documentation on the syntax:
Hints on easier input
On mobile devices it is tedious to input space-space-space etc. to get the needed indentation for every line. Instead, just type a positive integer indicating the indentation level to add to the indentation of the last line, somewhere before the current one, that has proper space-indicated indent, if any.
In smart-indented lines, you can also replace new-line by " ;" (i.e. space and semicolon).
At any time, you can discard changes or restore your input as was sent last to the server by clicking "Reload from server, if possible".
Undoing includes having any smart indentation resolved if, and only if you have sent it to the server successfully once.
Examples
Interesting files on this machine
Files in the list below demonstrate how the Sompyler language tackles different contexts of sound generation:
- lib/rooms/small-hall.splr
- lib/rooms/small-hall2.splr
- lib/rooms/church.splr
- lib/tones_euro_de+en.splt
- lib/instruments/dev/flute.spli
- lib/instruments/dev/hihat.spli
- lib/instruments/dev/string.spli
- lib/instruments/dev/bass-drum.spli
- lib/instruments/dev/piano.spli
- lib/instruments/dev/trumpet.spli
- scores/loreley.spls
- scores/alle_meine_entchen.spls
- scores/classics/lvb_moonlight_sonata.spls
- scores/classics/gfh_passacaille.spls
- scores/classics/gfh_rinaldo_lasciachiopianga.spls
- scores/classics/wam_rondo_alla_turca.spls
- scores/classics/fs_auf-dem-wasser-zu-singen.spls
- scores/classics/wam_gavotte.spls
- scores/moege-die-strasse.spls
- scores/anfaengerstueck_1.spls
- scores/anfaengerstueck_2.spls
- scores/anfaengerstueck_3.spls
- lib/rooms/*.splr: A room specification can be selected to properly reverberate the sound. You can also use and make a variant of the content of a file by embedding it in the initial section of the score. Please introduce it with room: and indent the lines with equal number of spaces.
- lib/tones_euro_de+en.splt can be used by writing
tuning: base: tones_euro_de+en ... # In the place of the ellipsis, you can put and vary any property # of the [basics] section, and extend the [scales] and [chords] section # by new items, but group these under an "scales:" and "chords:" entry.
However, if you do not redefine any property or add any scale or chord, you can omit tuning altogether. That file is implied default. Thus, instead of "440.0" wherever a pitch is expected, you can use "A4" or "a'". - instruments/*.spli: instrument definitions you can use several ways, all in the initial section:
stage: voice_name: [...] dev/piano
stage: voice_name: [...] instrument: dev/flute
stage: flute1: 1|1 0 # no instrument part flute2: [...] # no "instrument:" entry other_voicename: [...] instrument: flute # no "dev/" or other directories, then following # entry must be there: instrument flute: NOT_CHANGED_SINCE: YYYY-MM-DD HH:MM:SS # Timestamp of last change: # If omitted, tones are # re-rendered every time, character: # no matter if there is need. # Copied, indented and modified file content # If file has metadata and a "character:" entry, take its value
- scores/*.spls: Copy the file content into the text input. It should simply "sompyle".