(6 . -1.5)) HorizontalBracket
\alterBroken shorten-pair #'((0 . 0) (0 . 5)) HorizontalBracket
c1\startGroup | \break
c1\stopGroup
}
%%% SNIPPET ENDS
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligate
n the middle" of a particular
> group context (Staff group in this case, but also Score, Piano staff,
> ChoirStaff, whatever) and be able to modify it's properties in an individual
> way.
Yes, that would certainly help!
Cheers,
Kieren.
__
My
Hi Federico,
I’ve adjusted my snippet a little, and I think it might handle all your spacing
issues…? Let me know!
Best,
Kieren.
%%% SNIPPET BEGINS
\version "2.25.15"
\paper {
system-system-spacing.padding = 4
}
\layout {
\context {
\type "Engraver_grou
t; \new Voice { << \global \someNotes >> }
\new Staff = "two" \new Voice { << \global \someNotes >> }
\new Staff = "thr" \new Voice { << \global \someNotes >> }
>>
\new TS \global
>>
}
%%% SNIPPET ENDS
All the best,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
the contexts above and below the
staff group.
Hope that points you in the right direction!
(If I get a moment, I’ll see if I can put together an MWE based on my
brainstorm…)
Best,
Kieren.
__
My work day may look different than your work day. Please
tuff so you’d
just have to write
\fingspan #'(1 2)
or some such thing.
Hope that helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
On May 28, 2024, at 3:16 AM, David Kastrup wrote:
> <https://gitlab.com/lilypond/lilypond/-/issues/34>
> The day will come when this will get smited.
I dunno… maybe we should bronze it instead?
I mean, you gotta admire the tenacity.
— Kieren
__
t:
> The extra-offset happens late in the rendering process, so the other grobs
> can't adjust to its movement like they do with X- and Y-offset.
Exactly! :)
— Kieren
__
My work day may look different than your work day. Please do not feel obligated
et = -6
\once \override TextScript.Y-offset = -0.375
\once \override TextScript.outside-staff-priority = ##f
\sectionLabel "Section label (X-offset + Y-offset)"
\clef alto c2^\markup\whiteout\bold "Text"
}
}
%%% SNIPPET ENDS
Hope this helps!
Kieren.
Hi Giles,
> Just like that? Just like that! Wow!
Eventually, one gets tired of how often Lilypond wows you…
Nice to see you’re not there yet. ;)
— K
__
My work day may look different than your work day. Please do not feel obligated
to read or
-1a-_03" \key c\major \time 9/8 a''8 b''8 a''8 g''4
e''8 d''4 f''8 } }
}
}
%%% SNIPPET ENDS
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
is introduces a whole bunch of other issues… but it “works”!]
> - can you tell me what Lilypond is objecting to?
Your \score block contains about two dozen music expressions. ;)
Wrapping that whole chunk in {} reduces it to a single music expression.
Hope that helps!
Kieren.
__
Hi Dirck,
I don't know what the term is for this "8", so i was not successful
searching the manuals and snippets.
ClefModifier
<https://lilypond.org/doc/v2.25/Documentation/internals/clefmodifier>
Hope that helps!
Kieren.
\null
f'1
}
%%% SNIPPET ENDS
Hope this helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi Tim,
> I have been looking for a way to write "scoops", a fairly common effect in
> saxophone jazz.
Have you searched the list archive?
e.g., https://lists.gnu.org/archive/html/lilypond-user/2024-04/msg00125.html
Hope that helps!
Kieren.
__
the TimeSignature! — but you can adjust that with an extra-offset if it
bothers you [as much as it bothers me!].
Hope this helps!
Kieren.
p.s.
> Ideally, whatever method arrived at would then create a marker in a MIDI file
> - \mark does on last but one version of Lilypond, but not on my W
Hi Werner,
I mean… technically, it’s correct… but yuck.
If I were customizing the name, I would probably have it say Em(addb4).
At the very least it should say Emsusb4.
— Kieren
__
My work day may look different than your work day. Please do not feel
gives
with only the need to set the self-alignment-X value.
TBH, I also couldn’t remember when \after was added to the code, and since the
OP had used \version "2.24.3”, I didn’t want to risk it not working for them.
:)
Cheers,
Kieren.
__
My work d
ly be
fairly easily automated.
Of course there are many other ways to clothe this particular cat — just
thought I’d offer one for you to consider!
Best,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to rea
t;Bar_number_engraver"
}
\context {
\ChordNames
\consists "Bar_engraver"
\override BarLine.bar-extent = #'(-2 . 2)
}
}
theChords = \chordmode {
ef4 ef2:maj7 ef4:7 \break
ef2 ef4:maj7 ef4:7
}
\new ChordNames \theChords
%%% SNIPPET ENDS
gives me the output
and clearly
All and move on).
The thing is, there’s usually MORE than enough vertical space to allow the
ChordNames to “float up”, and \allowPageTurn-s [and related] throw off my
(read: the optimal LOL) layout.
One day maybe I’ll have enough time to really investigate th
ead: NEVER) luxurious enough for me to do
anything except edition-engraver-tweak the crap out of the score and move on.
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outs
noStaff \with {
instrumentName = "古筝"
shortInstrumentName = "古筝"
} <<
\new Staff = "up" << \global \zhengR >>
\new Staff = "down" \with { \omit TextSpanner } << \clef bass \global
\zhengL >>
>>
%%% SNIPPET ENDS
Hop
1/8\melisma f'1.*1/8 \melismaEnd \]
This kind of “hack” can be a useful mechanism to get notes closer together.
Hope something in there helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi all,
I found something that seems to work!!
Hope this helps someone else.
Best,
Kieren.
%%% SNIPPET BEGINS
\version "2.25.11"
\language "english"
\layout {
line-width = 3.5\in
ragged-right = ##f
}
accidentalNoWidth = \tweak Accidental.extra-spacing-width #empty-in
PPET BEGINS
As you can see:
1. \accidentalNoWidth doesn’t allow the notes to obtain “no accidental”
spacing, but at least keeps the accidentals uncrushed
2. \ignore allows the notes to obtain “no accidental” spacing, but everything
gets crushed requiring manual tweaking to reposition;
Is there a wa
That goes a long way towards a solution, but (a) the notes still aren’t
perfectly even, and (b) I prefer the tighter spacing of the original layout.
Thanks,
Kieren.
__
My work day may look different than your work day. Please do not feel obligate
low.)
Unfortunately modifying the snippet to take accidentals into account is WAY
above my pay grade.
Thanks,
Kieren.
%%% SNIPPET BEGINS %%%
\version "2.25.11"
\language "english"
% Snippet author: Jean Abou Samra
% Original thread:
https://lists.gnu.org/archive/html/lilypond-use
!]
I would love to be able to say “Dear Specialized Scheme Engraver: Please take
measure 7, even out the note-spacing, and make the ‘obvious’ necessary
adjustments so that everything looks amazing.”
How difficult would such a function/engraver be to design?
Thanks,
Kieren
ece of Lilypond syntax at the place they want to tsee the "%"?
Just curious!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
e wrong location. :)
Hope that helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
?
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
> NB: I don't own a macOS machine, which of course makes all testing very
> difficult
but also offering the hardware for use in whatever way it might be helpful
(e.g., compilation, not just testing).
Cheers,
Kieren.
__
My work day may look diff
e
a *really* excellent [fibre] internet connection — it usually hovers near
900Mbps up and down (though right now it’s only at 200Mbps for some reason?!) —
and I’m happy to put a machine on a DMZ for external access.
Is there anything, non-programming-wise, I can do to help the cause?
Ch
Hi Werner,
>> Might I suggest that “to-barline” is potentially
>> misleading/confusing…?
> I suggest you file an issue.
https://gitlab.com/lilypond/lilypond/-/issues/6709
Cheers,
Kieren.
__
My work day may look different than your work
signature_engraver from the Staff context).
2. \omit is both a handy short form [when used in the identical location as the
\remove] as well as a one-off function/action (e.g., \once \omit
Staff.TimeSignature, used “inline” in a music expression).
Cheers,
Kieren.
My
Hi Mats,
> Exactly the same feature might also be useful for hairpins and other spanner
> types
Indeed!
I’ll be sure to make the issue I submit a general spanner issue…
Best,
Kieren.
__
My work day may look different than your work day. Ple
led you to the equivalent solution:
\version "2.25.11"
\language "english"
\layout {
indent = 0
ragged-right = ##f
}
{
\omit Staff.TimeSignature
\key d \major
\time 5/2
d'2 d' cs' d'1
\time 7/2
b2 d' d' d' cs' d'1
\time 9/2
b2
mal-text #:italic #:fontsize 0.8 "più" #:hspace 0.3 "f" )))
moltoff = -\tweak self-alignment-X #0.8 #(make-dynamic-script (markup #:concat
( #:normal-text #:italic #:fontsize 0.8 "molto" #:hspace 0.3 "ff" )))
% examples
\layout { ragged-right = ##f indent = 0 }
{
for release on a note **just before**
a barline, might be more suggestive of the behaviour Maurits was expecting.
Is there any technical reason both of these different-but-related properties
can’t/shouldn’t be made available?
Cheers,
Kieren.
__
My work day
e that is fully functional, you are correct that \include is
the best mechanism.
Cheers,
Kieren.
>
> On Wed, Apr 3, 2024 at 2:21 PM Tom Brennan wrote:
>>
>> Hello
>>
>> I'm going through documentation, refamiliarizing myself with Lilypond,
>> and trying to def
ne?
I have a modified version (included below) which handles TimeSignature — you
can likely adjust it to handle KeySignature as you want it to!
Hope this helps!
Kieren.
p.s. It would be amazing if this were more automatic (i.e., it handled all
possible end-of-staff grobs/situations), ad
Staff.shortInstrumentName = "temp" \break
c'1 \break
c'1
}
\score { \music }
SNIPPET ENDS
Not sure why \temporary wouldn’t/shouldn’t, although I must admit I couldn’t
find the right incantation…
Cheers,
Kieren.
__
My work day may lo
\break c'1-\tweak padding 132 _\markup " " \pageBreak
\repeat unfold 2 { c'1 \break c'1 \pageBreak }
}
Hope that helps!
Kieren.
ything in that system, e.g., the last BarLine).
Hope that helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
urn "2:8". If you [like me] would prefer "0:02:08", then use
(string-append (format #f "~d:" minutes)
(format #f "~2,'0d:~2,'0d" seconds (round (* rest 24))
Thanks again, Jean!
Another “wow” feature to show my colleagues who are still toiling away in
le
Hi Lukas,
I love that we have two custom engravers to compare and learn from!
Thank you so much for this solution — looking forward to analyzing it when I
have a moment.
Best,
Kieren.
> On Mar 14, 2024, at 5:54 PM, Lukas-Fabian Moser wrote:
>> “This sounds like a job for… Custom
Hi Jean,
As always… remarkable.
One question: How hard would it be to have this output more precise timings
(e.g., 1/4 or 1/10th or 1/100th of a second, or SMPTE timecode in
minutes:seconds:frames)? I could imagine this being *very* useful for
film/video/media composers.
Thanks!
Kieren
Hi Matthew,
> Is there any easy way to find out the time in seconds from the start of a
> score to a specified point, corresponding to the timing of the MIDI
> output? I can count measures and do math on the tempo, but that's
> less than ideal in the face of multiple tempo changes. Another idea
Hi Lucas,
I was told by people with a far deeper understanding of Lilypond’s than mine
that trying to abstract the volta map is undesireable — it should be explicitly
included in every music expression that it intersects with.
Cheers,
Kieren.
> On Mar 12, 2024, at 7:00 PM, Lucas Cavalca
annot find a command to restore the tuplet numbers. Any suggestions would be
> appreciated.
On the doc page
https://lilypond.org/doc/v2.23/Documentation/notation/visibility-of-objects#removing-the-stencil
you’ll find the \undo \omit construct. So in your case, you would use
\und
ordNames { \gsharp }
\gsharp
>>
<<
\new ChordNames { \aflat }
\aflat
>>
Maybe post a MWE, so people can more easily diagnose the issue.
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obli
on that?
I was the one building that… let me see if I can find the code I used. :)
Best,
Kieren
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi Ralph,
Shouldn’t the d be 4. [not 4]?
bf2.:6 c4.:3 d4:3 |
Maybe I’m misunderstanding…?
Cheers,
Kieren.
commands.
It’s a little “nuclear”, but…
\layout {
\context {
\Score
\RemoveAllEmptyStaves
}
}
[Note the \Score rather than \Staff]
Hope that helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to rea
mpScript.color = "tomato"
rehearsalMarkFormatter = #format-mark-box-alphabet
}
}
Best,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi Simon,
> you can quote lyrics perfectly well. It’s just that of course the quoting
> logic is based on durations, so I think explicit durations are unavoidable
Ah! That makes sense.
Despite the extra work, it’s probably QUITE worth it in my larger projects.
Thanks!
nLabel.color = "tomato"
% RehearsalMark.color = "tomato"
JumpScript.color = "tomato"
rehearsalMarkFormatter = #format-mark-box-alphabet
}
}
and then just
\include "Score_init.ily"
in your main files.
Hope this helps!
Kieren.
__
tlab.com/lilypond/lilypond/-/issues/6700) and we’ll see how the
discussion goes. :)
Thanks!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi Ralph,
> I cannot figure out how to move the turn above the slur in the following MWE:
%%%
\version "2.24.2"
\language "english"
tune =
\relative c'' {
c8.-\tweak avoid-slur #'outside \turn[( d16) f8. g16] a8.[ f16 g8.( a16]) |
}
\score {
\tune
}
%%%
Hope that helps!
Kieren.
quoteable (right?)…
or maybe there’s a 3, 4, 5…? (e.g., a custom engraver?)
Thanks for any ideas/advice!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal
derives from the same root
as boustrophedon).
I know about the frequency illusion bias (a.k.a. Baader–Meinhof phenomenon),
but I honestly don’t think this is that. :)
Cheers,
Kieren.
> On Feb 23, 2024, at 4:55 PM, Aaron Hill wrote:
>
> Just read a side note on Wikipedia about a
ge) three times a week — we should grab
lunch/tea/pints some day. :)
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi,
> I want to set a text spanner with an ending bracket.
https://lilypond.org/doc/v2.25/Documentation/snippets/expressive-marks_003a-creating-text-spanners
Hope that helps!
Kieren
__
My work day may look different than your work day. Please
#-1
al -- drig __
}
<<
\new Staff \new Voice = "main" \theNotes
\addlyrics \theLyrics
\new Lyrics \lyricsto "extra" \extraLyrics
>>
%%% SNIPPET ENDS
I don’t know of a more “proper” way to do this — maybe someone else will
contribute a better (or at least anot
r the Atlantic. It really does seem to be most efficient to hold
this kind of gathering in Europe somewhere.
Cheers,
Kieren
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi Michael,
Why not
verseC = \lyricmode { \repeat unfold 4 { \skip 8 } lu __ _
\markup \null \repeat unfold 3 { \skip 8 } lu __ _ }
?
Hope that helps!
Kieren
__
My work day may look different than your work day. Please do
? :)
Just throwing it out into the Universe.
— Kieren
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
st into the right vertical position; then I
tweaked the X-offset to move it horizontally. I didn’t realize that if I had
just done the X-offset *first*, Lilypond would Do The Right Thing™ (well, of
*course* it does!), and so the staff-position tweak was ulti
ue a \voiceOne command!)
Hope that helps,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
major
s1*5
}
theNotes = {
\repeat unfold 5 { d'1 }
\repeat unfold 5 { f'1 }
}
\score {
\new Staff
\with { \editionID pose \autoTranspose }
{ << \global \theNotes >> \fine }
\layout {}
\midi {}
}
SNIPPET ENDS
I’m 100% going
Hi Jakob,
In m25, T1 has 5 beats. Is that correct?
– Kieren
%%
> transposer = \transpose g f \etc
> enharmonicsChooser = \keepWithTag #'originalSpelling \etc
> \addToplevelMusicFunctions transposer,enharmonicsChooser
> %%%
Currently I’m neither quite sure how this works, nor if/how it might be useful
to me… but I appreciate the example, and will
TBH it will still take me a little time and testing to fully get my
head around exactly how it’s working and the full scope/applicability — this
approach is exactly the level of abstraction and reuse/adjustability I need.
Thank you so much! I’ll get back to you if I have any questions.
Best,
Kie
Hi Timothy,
> If I have understood Kieren correctly, he wants the option to configure his
> score with a part either sung by a tenor voice at written pitch, or a treble
> voice one octave higher.
Correct.
> The attached files illustrate a couple of suggestions that might help.
&
As you
can probably imagine, the number of permutations and combinations are ganging
up on me, and I can’t grapple with them all myself.
Thanks,
Kieren.
\version "2.25.10"
\language "english"
\paper { tagline = ##f ragged-bottom = ##t in
how to structure all
this with the least amount of duplication (in note code, tweak code, and score
code).
Thanks,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
to use it in some of my less complex and/or complicated projects and
workflows.
Thanks!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
be “injected” or “conditionalled” in? Or is that just overcomplicating
this particular problem-space? (n.b., In future questions, the problem-space is
naturally more complicated without any help from me!)
Thanks,
Kieren.
Hi John,
On the main webpage (https://lilypond.org/doc/v2.23/Documentation/web/index),
when you use the search box (in the top nav bar), and type #f (no quotes or
anything), do you not get the “Types of Properties” link within the first few
hits (it’s the third when I search)?
Thanks,
Kieren
Hi all,
> A pity, since this is clearly explained on
> https://lilypond.org/doc/v2.24/Documentation/learning/types-of-properties.html
That’s the first hit when I search! :)
K
__
My work day may look different than your work day. Please do not feel
ve been able to search for them but it
> didn't succeed. I'd like to help figure out why it didn't succeed.
If you do a web search for
lilypond "#f"
is the very first hit not sufficiently helpful?
Cheers,
Kieren.
__
My work day may look
Hi Karen,
> I need all measures numbered in this score - for some reason, the first
> measure number in each line is being printed twice:
Just add/configure the Bar_number_engraver at the Score level — see snippet
below.
Hope this helps!
Kieren.
% Version 1.0
% Last edit: January 7
does the job, this might be more efficient:
\version "2.18.2"
\header {
tagline = ##f
}
{
\numericTimeSignature
\textLengthOn
\override TextScript.staff-padding = #4
\time 4/4
a'4\mordent ^"Mordent"
a'4\upmordent ^"Upper Mordent"
a'4\downmordent ^"Lower Mordent"
}
Note also that I changed your tagline = "" to tagline = ##f, so that it truly
takes up no space.
Hope this helps!
Kieren.
lyrB = \lyricmode {
\tweak self-alignment-X #0.75 "but it's" writ -- ten in the star -- light __ _
and ev' -- ry line on your
}
0
\score {
\layout { indent = 0 ragged-right = ##f }
<<
\new Staff \new Voice = "melody" << \global \mel >>
spoken over rests, front-phrasing of a melody,
and so forth… but you can’t sing “on” a rest.
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
d snippet to consider; if it’s not
shifted enough, increase the #0.5.
Cheers,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
lyrics {
\tweak self-alignment-X #0.5 but it's writ -- ten in the star -- light
__ _ _
}
>>
}
[where you can obviously adjust the #0.5 to your liking]
Hope this helps!
Kieren.
__
My work day may look different than your work day.
u’ll likely want to have a more stripped down [custom] Dynamics context, so
that other [non-Script] items don’t appear in your dynamics line.
Hope this helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
Hi Stefano,
It would really help if you provided a minimal working example (MWE), so those
of us with an impulse to try to assist you don’t have to try to invent one
ourselves…
Thanks,
Kieren.
> On Dec 18, 2023, at 10:47 PM, Stefano Antonelli
> wrote:
> On Tue, 2023-12-12 at 16
oice-splitting in the same place in the code, rather than having some in the
variable definition area and some in the score area.
Hope all of this helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
}
\score {
\new Staff {
\TheBusiness
}
\layout {}
}
Hope that helps!
Kieren.
Hi Jean,
> See https://lists.gnu.org/archive/html/lilypond-user/2023-11/msg00152.html
Indeed, updating the center-on-word code fixed it.
Thanks!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to r
/lilypond/current/scm/lily/lily.scm:
960:9 10 (_ _)
In ice-9/boot-9.scm:
829:9 9 (catch _ _ # …)
In unknown file:
8 (ly:parse-file "/Volumes/HDD/Kieren/1_music_archive/1_s…")
7 (ly:book-process # #< Output_def> #< Output_def> #)
6 (l
Hi Jean,
>> What is the minimum x for it to work as documented?
> It's 6. See
> https://gitlab.com/lilypond/lilypond/-/commit/1346d30d183e38cb693c7d61f2ac76785130e449
Thanks — sorry for the noise.
Works great with x=10 (which is the current MacPorts versi
Hi Jean,
> What's the exact value of x in 2.25.x?
Well, it’s currently 2, but anticipating that might be [part of?] the problem,
I launched an upgrade of lilypond (MacPorts) a few minutes ago.
What is the minimum x for it to work as documented?
Thanks,
Kie
e output, and no errors are logged.
Any idea what I might be doing wrong?
Thanks,
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
"Use musical time” isn’t exactly how I would frame the behaviour.
> If that's intended (and I'm not saying it isn't or can't be) I'd like to
> understand the reason for this (to me) inconsistency.
It is intended, as far as I know.
Hope that helps!
Kieren.
_
the combo you’re trying to insert needs to be wrapped in braces so
that it’s a single musical expression.
Hope that helps!
Kieren.
__
My work day may look different than your work day. Please do not feel obligated
to read or respond to this email outside of your normal working hours.
ort to hidden markups taking space).
This is something I inject using the edition-engraver — makes it so simple, and
keeps presentation code separate from content code.
Cheers,
Kieren.
__
My work day may look different than your work day. Please
1 - 100 of 4649 matches
Mail list logo