Recent Posts

Pages: [1] 2 3 4 ... 10
1
Programming / Versatile Playlists
« Last post by Den on Yesterday at 02:51:02 PM »
VSV as Playlist Format

TBD (research and development phase)

Criteria

- simple, yet extensible
- basic features, incl. file, title, artist, duration
- advanced features, incl. repeat amount, gain, media start and end times, resume from last media played, associated files (such as subtitle or lyrics)
- optional metadata and general options

Sections

A playlist file is divided into sections marked by headers (which are not case sensitive). All sections are optional.

The [[General]] section holds the metadata and general options; usually found at the beginning of the file.

The [[Main]] section holds the songs' filenames and other specific data.



TBD: plugins for media players: VLC via Lua, Winamp
2
Programming / Versatile Subtitles
« Last post by Den on June 23, 2018, 03:42:35 AM »
VSV as Subtitle Format

(research and development phase)

Criteria

- simple, yet extensible
- basic features, incl. time start and end, text to display
- advanced features, incl. styling, position, angle, color, classes, scrolling (ala marquee),
- optional metadata and general options, incl. language and encoding, movie metadata, author and staff of subtitle (e.g. translators, timers)

The wonderful thing about VSV is simple, yet extensible and universal. Thus both simple and complex subtitles can be created in VSV. Simple ones will look simple; complex ones will also look simple without clutter or different look or rules. (Cf. TTML is a cluttered format. VTT has different syntax for different sections.)

Sections

A subtitle file is divided into sections marked by headers (which are not case sensitive). All sections are optional.

The [[General]] section holds the metadata and general options; usually found at the beginning of the file.

The [[Style]] section defines styles in the same format as CSS.

The [[Main]] section holds the subtitles texts, timing, and additional information pertaining to that subtitle segment.

Data fields

Data rows holds one or more data fields or values. For rows that contain more than one field, the first is the property that defines the rest of the fields on that row.

The \ backslash is the escape character for advanced features. Including new lines of a multiline subtext, and inline styling. To print the backslash itself, use double backslash \\.

Subtitle data

Data rows in the main section hold the subtitle data that will be displayed in a video. The general layout is a time or frame row, followed by one or more rows that describe a subtitle line, including text and additional optional properties, such as style and class. That means a time or frame row signals the beginning of a new subtitle segment.

----

The 't' property means time, and is followed by one or two data fields that represent the start and end times of a subtitle line. The time data is in the format HH:MM:SS.mmm. HH: can be omitted to imply zero hours. .mmm can be omitted to imply zero milliseconds. The start time must be included. If the end time is omitted, the subtitle will be displayed until the end of the video.
Ex.
Code: [Select]
,t,12:27,12:38
----

The 'f' property means frame, and is followed by one or two data fields that represent the start and end frames of a subtitle line. The frame data is an integer from 0 to the last frame of the video. The start frame must be included. If the end frame is omitted, the subtitle will be displayed until the end of the video.
Ex.
Code: [Select]
,f,335,518
----

The 's' property defines the text to be displayed.

Every additional data field starts on a new line when displayed on the video; i.e. multiline. That is, whenever a delimiter is repeated on the same data row, it starts a new line in the video. New lines can also be denoted with \n.

To prevent delimiter-value collision, it is behooved to use a delimiter not found in the particular text for that row, and generally not normally found in your language's everyday grammar.

Ex.
In both examples, the delimiter is tick `.
Single line
Code: [Select]
`s`Stop! In the name of love!
Multiline
Code: [Select]
`s`Stop!`In the name of love!
Code: [Select]
`s`Stop!\nIn the name of love!
----

The 'c' property declares the class of this particular subtitle segment. Classes are the same concept as HTML classes. So they can be used as expedient access to various features, including styling, positioning, etc. These styles are defined in another section of the file or in a separate .css file.

Ex.
Code: [Select]
,s,Stop! In the name of love!
,c,music

----

TBD: additional properties, including position, color, scrolling, angle, etc.

TBD: markup for inline styling a substring of a line, incl. bold, underline, italicize (e.g. \*, \_, \/)

TBD: properties for general options and metadata

TBD: considerations for real-time caption, streaming

TBD: embed media: images, video, audio, 3d models, transformations, effects

TBD: commands and scripting: pause, resume, include external files, shift time or frames for text and audio (e.g. fix out of sync)

TBD: plugins for media players: VLC via Lua,



Full Examples

Simple files

Code: [Select]
[[Main]]
,t,01:11.704,01:13.006
`s`All right, let’s go. I’ll give you half an hour.

,t,01:16.209,01:17.777
`s`What?

,t,01:18.845,01:20.547
`s`Are you serious?

,t,01:20.547,01:23.750
`s`Look, Jerry, we have to have sex to save the friendship.

,t,01:24.951,01:29.489
`s`Sex, to \*save\* the friendship.

,t,01:31.057,01:35.328
`s`Well if we have to, we have to.


Complex files

Code: [Select]
[[Style]]
`.jerry`color: green
`.elaine`color: yellow


[[Main]]
,t,01:11.704,01:13.006
`s`All right, let’s go. I’ll give you half an hour.
,c,elaine

,t,01:16.209,01:17.777
`s`What?
,c,jerry

,t,01:18.845,01:20.547
`s`Are you serious?
,c,jerry

,t,01:20.547,01:23.750
`s`Look, Jerry, we have to have sex to save the friendship.
,c,elaine

,t,01:24.951,01:29.489
`s`Sex, to \*save\* the friendship.
,c,jerry

,t,01:31.057,01:35.328
`s`Well if we have to, we have to.
,c,jerry

Code: [Select]
[[Style]]
`.aside`vertical-align: top`margin-top: 1em
`.music::before`content: "#"
`.music::after`content: "#"

[[Main]]
,t,01:31.057,01:35.328
,s,Stop! In the name of love!
,c,music

,t,01:31.057,01:45.328
`s`Stop! In the Name of Love`by Diana Ross and the Supremes
,c,aside


3
Programming / Re: Versatile Separated Values (VSV)
« Last post by Den on June 22, 2018, 02:45:39 AM »
Project via git:
Git repo @ bitbucket.org: https://bitbucket.org/Shenafu/vsv/

Examples of utilizing Javascript to interpret VSV into HTML lists and tables, JSON, and XML:
https://shenafu.com/code/vsv/test.html
4
Game Design and Theory / Re: Real developers' blogs
« Last post by Den on June 20, 2018, 05:13:28 PM »
5
Keyboards and Other Interfaces / Re: Balanced Keyboard Layout
« Last post by iandoug on June 13, 2018, 10:29:29 AM »
Depends on how you define the keycode on the Shift layer. If the Shift layer uses a Shift modifier (and there are many types of shift key actions -- conventional, one shot, down position of a key that otherwise outputs a character, etc.) then yes, if pressed without a modifier enabled. But you could define the key position with a macro definition "S(KC_G)" to output shift "G" without need of the Shift modifier.

Bit off topic but there are some experts here. I'm a bit involved in designing a keyboard for an African language. They have an unusual letter which is Ʋ U+01B2 LATIN CAPITAL LETTER V WITH HOOK and lower case, ʋ U+028B
LATIN SMALL LETTER V WITH HOOK. However they also have a version with an umlaut/diaeresis on it, which does not exist in Unicode. So you need to do it with the letter plus combining diaeresis :  ̈  U+0308 COMBINING DIAERESIS.

Now my question is, can standard keyboards/drivers/OS eg plain generic 105 ISO keyboard on Windows, be made to send U+01B2 plus U+0308 on one keypress?

Or will they require custom firmware / OS tweaks? Or something like AutoHotKey / Keyman ?

Thanks, Ian
6
Magic: the Gathering / Re: GDS 3
« Last post by Den on June 05, 2018, 02:30:12 AM »
#RarityMutantTribal
 1  CU    Artifact  Equipped creature gets +0/+2. : Switch the power and toughness of equipped creature if it's a Mutant. Equip
 2  RM    Land  ~ ETBs tapped. : Produce or . , : Double target Mutant's power. , : Double target Mutant's toughness.
 3  UR    Enchantment  Creatures you control are Mutants in addition to their other types. When ~ ETBs, put +1/+1 counter on each creature you control.
 4  RM    Creature  ~'s power and toughness are each equal to the number of Mutants you control. : Lay down a Mutant card from your hand. , Return a Mutant to your hand: Draw a card.
 5  CU    Creature  Sacrifice ~: Search your library for a Mutant card and lay it down.
 6  CU    Sorcery  Draw cards equal to the highest power among Mutants you control.
 7  CU    Instant  Target creature you control gets +2/+2 until end of turn if its a Mutant. It fights another target creature you don't control.
 8  RM    Enchantment  Creatures you control have flying, hexproof, and trample as long as you control four or more Mutants.
7
Magic: the Gathering / GDS 3
« Last post by Den on June 05, 2018, 02:28:45 AM »
8
Keyboards and Other Interfaces / Re: Balanced Keyboard Layout
« Last post by moesasji on May 11, 2018, 01:22:33 AM »
By the way, this option is compatible with the "preonik" keyboard or "model01". These keyboards are too expensive for me now, but maybe someday I can afford one of them and be happy).

That looks pretty cool indeed and the angle-mod you use is indeed extremely good on the wrists. Thanks for sharing!
In your iso-layout I actually hit the two keys that you leave empty above the spacebar with my thumbs. Mainly as I need CTRL to be easily reachable as well.

btw) true ergonomic keyboards are indeed pretty expensive. A "cheap" alternative that gives more thumb keys is buying a Japanese keyboard as they have two special keys next to a much smaller spacebar. You can see this from the layouts on this page: http://xahlee.info/kbd/Japan_keyboard_layouts.html. Those can be as cheap as a standard keyboard....I wish I had figured that out before starting the ergodox journey.
9
Keyboards and Other Interfaces / Re: Balanced Keyboard Layout
« Last post by qites on May 10, 2018, 05:53:05 PM »
Hello everybody!
Maybe someone will be interested, I tried to adapt BEAKL9 for a standard keyboard.



I myself use the ISO version of the keyboard. It allows me to move the lower left row with an additional key and thus get a more comfortable angle of attack for the left hand. See the pictures in the attachment.
I use this one week and I really like it. Prior to that, for 12 years I used Dvorak's layout with similar modifications. The only thing that worries me is the key L. My right middle finger is uncomfortable to press there. I think to change it with the M key, it is less common. Probably on an ergonomic keyboard, there would not be such a problem.
By the way, this option is compatible with the "preonik" keyboard or "model01". These keyboards are too expensive for me now, but maybe someday I can afford one of them and be happy).

And yet, this layout variant competes well in Dan analyzers on the text from the source codes of the githab


In any case, accept my deepest respect for the work you have done!

Translated with google translate
10
Keyboards and Other Interfaces / Re: Balanced Keyboard Layout
« Last post by moesasji on May 10, 2018, 03:26:18 PM »
Any comment on using the index finger to hit Enter?
As opposed to, for example, a thumb?

I can see the logic of putting the Enter at that position, but I personally prefer Enter on a thumb position. That inner row position used for enter in the model 01 is in fact left unused on my Ergodox as I find the long inward movement that is needed unpleasant. This is mainly because it requires moving way too many fingers from their home-position to reach it, i.e. all but the pinky. Although those two keys are a bit easier to reach for the model 01, I expect I won't use them for anything I need to hit often either. This is different for the bottom two keys in those rows that can be hit by the thumbs.

btw) This might be a very personal preference as my dislike for using the central columns is also apparent in the fact that I have been using colemak-mod-dh for a long time, which reduces the usage of the central column compared to colemak itself.
Pages: [1] 2 3 4 ... 10