Beaming to rests in the staff in Lilypond - lilypond

How do I beam from a series of notes to a rest at the same vertical position as a rest in a way that looks appealing? Relevent snippet:
\version "2.20.0"
\new Staff {
c'16[ c' \override Rest.staff-position = #1 r ]
}
What it looks like.

I think the property you are looking for is Staff.Beam.positions, which takes a pair of numbers and sets the beam anchor points, left and right, respectively. The property Stem.length only works for non-beamed stems. I personally like to change Stem.stemlet-length to a value larger than zero when beaming from/over/to a rest, as shown in my example below. Just delete that line if that's not to your liking and lower the Beam.positions to taste.
\version "2.20.0"
\new Staff {
\override Staff.Beam.positions = #'(3.5 . 3.5)
\override Staff.Stem.stemlet-length = #0.75
c'16[
c'
\override Rest.staff-position = #1
r ]
}
Result:

Related

How to recognize text from image on easyocr without '' symbols for each row

I am trying to recognize text from image, but for each row easyocr prints '' and , symbols. For example there are lines of text in the picture. When easyocr recognize this picture print for each rows 'example example','example example'... it goes on like this.
I want to recognize the text without these symbols.
Here is the code:
reader = easyocr.Reader(['tr'])
result = reader.readtext(IMAGE_PATH, detail=0, blocklist="-.:';,",
slope_ths=2.5,ycenter_ths=0.2)
print(result)
And the result
['4 ', 'Osmanlı Devleti nde Orhan Bey döneminde', 'Şehirlere kadılar atanmış ', 'Ỉznik te medrese açılmış ', 'Bursa başkent yapılmıştır', 'Buna göre', 'adlip', 'idari', ']', 'askeris', 'IV', 'eğitim', 'yönelik düzenlemeler yapıldı ', 'alanlarından hangilerine', 'savunulabilir?', 'ğı', 'C) Ill ve IV', 'B) Il ve Ill', 'II', 'A) / ve', 'E) IIp Ill ve IV', 've IV', 'D) / Il']
Can i recognize this like below?
['4 Osmanlı Devleti nde Orhan Bey döneminde Şehirlere kadılar atanmış Ỉznik te medrese açılmış Bursa başkent yapılmıştır Buna göre adlip idari askeris IV eğitim yönelik düzenlemeler yapıldı alanlarından hangilerine savunulabilir? ğı C) Ill ve IV B) Il ve Ill II A) / ve E) IIp Ill ve IV ve IV D) / Il']
The image;
image that i recognize it
According to their official Guide (https://www.jaided.ai/easyocr/tutorial/), If you provide hyperparameter paragraph = True, EasyOCR will try to combine raw result into easy-to-read paragraph.
Here's the result -
result = reader.readtext('https://www.somewebsite.com/chinese_tra.jpg',detail = 0) # without paragraph hyperparameter.
result -
['高鐵左營站', 'HSR', 'Station', '汽車臨停接送區', 'Kiss', 'Car', 'and', 'Ride']
With paragraph hyperparameter -
result = reader.readtext('https://www.somewebsite.com/chinese_tra.jpg',detail = 0, paragraph = True)
result -
['高鐵左營站 HSR Station 汽車臨停接送區 Car Kiss and Ride']
Just concatenate the sentences in the list after getting the result.
Something like this:
length=len(result)
i=0
content=""
while i<length:
content = str(content)+' '+str(result[i][0])
i+=1
print(content)

Figured-bass accidental only in brackets (lilypond syntax)

In lilypond I need to put only the accidental of a figured-bass numeral in brackets--not the whole figure. Does the syntax allow this or is there a workaround?
In the non-working example below, I can put the whole figure in brackets with < [6-] > but I want something like < 6[-] >.
\version "2.18.2"
{
\clef "bass"
<<
{ c1 }
\figures { < 6[-] >1 }
>>
}
If you enter only accidentals in figure mode you get an error. In the documentation you can read that "Accidentals (including naturals) can be added to figures". So they can be added ("6-" and "6 -" are both ok) but cannot work on their own ("- 6" is not ok).
The workaround is using a markup. You may need to reformat the markup as you like:
\version "2.18.2"
{
\clef "bass"
<<
{ c1 }
\figures {
< \markup \tiny { [ \flat ] \number 6 } >
}
>>
}
Following the suggestion of #fedelibre I tried to concoct a markup that matched the default bracketed figures, but the result is visually unsuccessful, because the markup bracket is not the same as the one used in the figures.
Besides, the code is atrocious. It would need to be wrapped in a Scheme function to be of any use.
\version "2.18.2"
{
\clef "bass"
<<
{ c2 c2 }
\figures { < [6- ]>2
<
\markup \fontsize #-1 \concat {
\raise #0.2 {
[
\fontsize #-3.5 {\raise #0.2 {\flat}}
]
}
{\number 6}
}
>2
}
>>
}

Haskell print the first line into Browser Tab [duplicate]

This question already has an answer here:
Return the first line of a String in Haskell
(1 answer)
Closed 8 years ago.
Just a simple question, my code is complete. It takes an input file, breaks it into lines, reads the file line by line, does the conversions, which is in this case, turns certain things into HTML format (ex: #This is a line into a line with H1 HTML tags, formatting it into a header). The only thing I have left is to take the First line of code, and print that code into the browser tab. Also, the body, or tail must be printed into the window, not the tab. So the first line of my .txt file is The Title! which I want to show in the tab of the web browser. Here is something I have for that:
formatToHTML :: String -> String
formatToHTML [] = []
formatToHTML x
| head x == --any char = "<title>" ++ head ++ "</title>"
| tail x == --rest of file = "<body>" ++ tail ++ "</tail>"
| otherwise = null
or
formatToHTML :: [String] -> String
formatToHTML = unlines. map (show) "<title>" ++ head ++ </title>" $ lines
I dont want to, or I think even need to use guards here, but I cant think of a shorter way to do my task.
I would call this from my main method before I output my file to html.
Also, I know its a amateur haskell question. but how would I represent any char. Say, I want to say, if the head of x exists, print the head with the title tags. print tail with body tags. Help? Thank You
My guess of what you want is:
formatHtml :: [String] -> String
formatHtml [] = ""
formatHtml (x:xs) = unlines theLines
where theLines = [ "<title>" ++ ...convert x to html... ++ "</title>",
"<body>" ] ++ map toHtml xs ++ [ "</body>" ]
toHtml :: String -> String
toHmtl str = ...converts str to HTML...
Example:
formatHtml [ "the title", "body line 1", "body line2" ]
results in:
<title>the title</title>
<body>
body line 1
body line 2
</body>
You still have to define the toHtml function and decide how to convert the first line to the inner html of the tag.

How to use single notes in music functions?

I want to create a function in Lilypond that accepts one note as input and returns the note with some markup applied. Specifically, I want to simplify something like the following:
\relative c' { d^\markup{\hspace #2 \smaller +1}-\bendAfter #+1 }
to something along the lines of
\relative c' { \bend{d} }
Currently I have the following snippet:
mF = \markup{\hspace #2 \smaller +1}
bF = \bendAfter #+1
bendF = #(define-music-function (parser location note) (ly:music?)
#{ $note^\mF-\bF #}
)
\relative c' { d^\mF-\bF }
\relative c' { \bendF{d} }
\version "2.16.2"
It seems that the data type ly:music? is not the right one, or it is impossible to append the markup directly, and I end up with not very descriptive interpreter errors.
What is the best way to achieve this effect?
This may be not the solution you are looking for, but you might be able to solve your problem by using an event function with no arguments instead of a music function (thus working around the ly:music? problem). Try:
\version "2.17.95"
mF = \markup{\hspace #2 \smaller +1}
bF = \bendAfter #+1
bendF = #(define-event-function
(parser location )
( )
#{
^\mF-\bF
#}
)
\relative c' { d^\mF-\bF }
\relative c' { d\bendF }

Lilypond snippet for a separate coda

I'm hoping to Lilypond something not at all uncommon in pop sheet music but missing from the snippet repository and eluding my search phrases. It's basically an inline block of coda set apart from the bars preceding it. (My attempts at the code are not match for an uploaded visual example.)
I'm guessing the ingredients are 'ragged-right', some whitespace, and a separate score {} block for the coda music itself, but is there a way to end one system and start another without a line break? (Hard to think this hasn't been done before—and even more so to imagine it couldn't be done.)
Update (March 8, 2012): I've gotten close to what I want, with the following:
\stopStaff s1 \startStaff \bar ""
\mark \markup { \musicglyph #"scripts.coda" }
\override Score.Clef #'space-alist = #'(
(cue-clef extra-space . 2.0)
(staff-bar extra-space . 0.0)
(key-cancellation minimum-space . 3.5)
(key-signature minimum-space . 3.5)
(time-signature minimum-space . 4.2)
(first-note minimum-fixed-space . 5.0)
(next-note extra-space . 1.0)
(right-edge extra-space . 0.5)
)
\override Staff.Clef #'full-size-change = ##t
\set Staff.forceClef = ##t
\clef "treble_8"
\key \default
The only thing missing from the coda is the systemStartBracket. Can anyone figure out how to insert one in the middle of a system?
Thanks.
I'd try a different approach: use a simultaneous staff as described in http://lilypond.org/doc/v2.14/Documentation/notation/modifying-single-staves#ossia-staves and vertically align it to the terminated staff.