Re: Separate dynamics from notes

2023-05-03 Thread Gianmaria Lari
Thanks Leo, very interesting!

I report here, for other users, your same example adding the
command displayLilyMusic at the end.
When compiled, lilypond outputs (in the standard output) the resulting
music expression. For example for the following code:

\version "2.25.4"
%%
convertToSkips =
#(define-music-function (music) (ly:music?)
   (music-map
 (lambda (m)
   (if (or (music-is-of-type? m 'rest-event)
   (music-is-of-type? m 'note-event))
   (make-music 'SkipEvent m)
   m))
 music))
%%

music = { r2\p  c'4( d')\ff s4 r4 }
music = { r2\p  c'4( d')\ff s4 r4 }
\score {\music}

\displayLilyMusic \convertToSkips \music


this is lilypond output:

Starting lilypond.exe 2.25.4 [Untitled]...

Processing
`C:/Users/gianm/AppData/Local/Temp/frescobaldi-4jzfn8zf/tmpigq7hcux/
document.ly'

Parsing...

Interpreting music...

Preprocessing graphical objects...

Interpreting music...

Preprocessing graphical objects...

Finding the ideal number of pages...

Fitting music on 1 page...

Drawing systems...

Converting to `document.pdf'...


{ s2\p < s s >2 s4( s4)\ff s4 s4 }

Success: compilation successfully completed

Completed successfully in 0.6".

Thanks Leo (& Jean)!
g.

On Tue, 2 May 2023 at 13:42, Leo Correia de Verdier <
leo.correia.de.verd...@gmail.com> wrote:

> If not too late, here is an example, based on Jeans code in
> https://lists.gnu.org/archive/html/lilypond-user/2021-09/msg00209.html
>
> %%
> convertToSkips =
> #(define-music-function (music) (ly:music?)
>(music-map
>  (lambda (m)
>(if (or (music-is-of-type? m 'rest-event)
>(music-is-of-type? m 'note-event))
>(make-music 'SkipEvent m)
>m))
>  music))
>
> \convertToSkips { r2\p  c'4( d)\ff s4 r4 }
>
> %%
>
> Take care with things that ar still interpreted, like Scripts.
>
> > 26 apr. 2023 kl. 22:55 skrev Leo Correia de Verdier <
> leo.correia.de.verd...@gmail.com>:
> >
> > You can do like this if it’s useful to you, removing the engravers that
> read what you don’t want at a specific place.
> > %%
> > \version "2.25.1"
> >
> > rh = \fixed c' {c4\pp d\p e\f f\ff}
> >
> > \score {
> >  <<
> >\new Voice \with {
> >\remove Dynamic_engraver }
> >  \rh
> >  \new Dynamics %Dynamics context doesn’t have the Note_Heads_Engraver
> anyway
> >  \rh
> >>>
> > }
> > %%
> >
> > Otherwise it is possible to create music functions that replace notes
> and rests with spacers or remove dynamics, but I can’t do that for you at
> the moment. While they’re not difficult functions they’re not ”built-in”.
> >
> > The second question is also probably not too hard to write a function
> for, but you’ll probably need to be a little more specific about the use
> case, perhaps also supply example code.
> >
> > Best wishes
> > /Leo
> >> 26 apr. 2023 kl. 22:23 skrev Gianmaria Lari :
> >>
> >> First question
> >> Suppose I wrote this score:
> >>
> >> \version "2.25.2"
> >> rh = \fixed c' {c4\pp d\p e\f f\ff}
> >>
> >> \score {
> >>  \new Staff \rh
> >> }
> >>
> >> Is there any "automatic" way to extract the dynamics in the score
> (maybe assigning it to a variable)?
> >> At the end I would like to easily transform the previous code in the
> following one:
> >>
> >> \version "2.25.2"
> >> rh = \fixed c' {c4 d e f}
> >> dy = {s4\pp s4\p s4\f s4\ff}
> >> \score {
> >>  <<
> >>\new Staff \rh
> >>\new Dynamics \dy
> 
> >> }
> >>
> >> Second question
> >> Sometimes I copy a long score without the dynamic and add them
> separately later. For this operation I need to establish the dynamic
> location in the score counting and adding the notes length. This is tedious
> and error prone. Is there any way to make it?
> >>
> >> Thanks,
> >> Gianmaria
> >
>
>


Re: Separate dynamics from notes

2023-05-02 Thread Leo Correia de Verdier
If not too late, here is an example, based on Jeans code in 
https://lists.gnu.org/archive/html/lilypond-user/2021-09/msg00209.html

%%
convertToSkips =
#(define-music-function (music) (ly:music?)
   (music-map
 (lambda (m)
   (if (or (music-is-of-type? m 'rest-event) 
   (music-is-of-type? m 'note-event))
   (make-music 'SkipEvent m)
   m))
 music))

\convertToSkips { r2\p  c'4( d)\ff s4 r4 }

%%

Take care with things that ar still interpreted, like Scripts.

> 26 apr. 2023 kl. 22:55 skrev Leo Correia de Verdier 
> :
> 
> You can do like this if it’s useful to you, removing the engravers that read 
> what you don’t want at a specific place.
> %%
> \version "2.25.1"
> 
> rh = \fixed c' {c4\pp d\p e\f f\ff}
> 
> \score {
>  << 
>\new Voice \with {
>\remove Dynamic_engraver }
>  \rh
>  \new Dynamics %Dynamics context doesn’t have the Note_Heads_Engraver anyway
>  \rh
>>> 
> }
> %%
> 
> Otherwise it is possible to create music functions that replace notes and 
> rests with spacers or remove dynamics, but I can’t do that for you at the 
> moment. While they’re not difficult functions they’re not ”built-in”.
> 
> The second question is also probably not too hard to write a function for, 
> but you’ll probably need to be a little more specific about the use case, 
> perhaps also supply example code.
> 
> Best wishes
> /Leo
>> 26 apr. 2023 kl. 22:23 skrev Gianmaria Lari :
>> 
>> First question
>> Suppose I wrote this score:
>> 
>> \version "2.25.2"
>> rh = \fixed c' {c4\pp d\p e\f f\ff}
>> 
>> \score {
>>  \new Staff \rh
>> }
>> 
>> Is there any "automatic" way to extract the dynamics in the score (maybe 
>> assigning it to a variable)? 
>> At the end I would like to easily transform the previous code in the 
>> following one:
>> 
>> \version "2.25.2"
>> rh = \fixed c' {c4 d e f}
>> dy = {s4\pp s4\p s4\f s4\ff}
>> \score {
>>  <<
>>\new Staff \rh
>>\new Dynamics \dy
 
>> }
>> 
>> Second question
>> Sometimes I copy a long score without the dynamic and add them separately 
>> later. For this operation I need to establish the dynamic location in the 
>> score counting and adding the notes length. This is tedious and error prone. 
>> Is there any way to make it?
>> 
>> Thanks,
>> Gianmaria
> 




Re: Separate dynamics from notes

2023-04-29 Thread Andrew Bernard

Minimum Working Example.

It's customary protocol to try to reduce your problem or query to its 
basic essence so that people on the list can help out.


MWE's are described here:

https://lilypond.org/tiny-examples.html

MWE is the term that has come into use.


Andrew


On 29/04/2023 1:47 am, Gianmaria Lari wrote:


By the way, ahem what is a MWE?




Re: Separate dynamics from notes

2023-04-28 Thread Wols Lists

On 27/04/2023 13:57, Gianmaria Lari wrote:

Thank you Leo for your answers and help.

you’ll probably need to be a little more specific about the use
case, perhaps also supply example code.


Regarding my second question, let me try to be more clear

I have a score.
I want to write the dynamics using a separate variable.
Suppose that on the first quarter of the tenth measure there is a 
"forte" and then on the note of the next bar there is a "piano." If all 
the measures have the same "time signature", let's say of 4/4, then it's 
pretty easy: just count the beats and multiply by 4. Finally you will write:


s1*9 s4\f s4*3 s4\p


The operation is not difficult but making mistakes is pretty easy. In 
fact this system works well if the "time signature" does not change or 
changes very little in the piece. Otherwise you have to add up the 
duration of each note individually and making mistakes becomes extremely 
easy.


This thing always seemed so inconvenient to me that I thought it was 
practically unusable. Or that there was some trick to maybe have 
Frescobaldi tell me the "position" of the note (meant as numbers of 
quarter or eight notes from the beginning).


I write band parts, where I have multiple parts, conflicting dynamics, 
etc etc.


When you're doing that, the easiest way to start with is a variable I 
call voiceStaff. Using spacer notes, I define the double bars, rehearsal 
marks, melody names, tempo markings, key signatures, all that sort of stuff.


I then build on it with all the instrument voices, occasionally I'll 
have a section dynamic variable, whatever.


I know what you mean with your "so inconvenient", it is a pain in the 
arse. But for me, it's the best tool for the job, the alternatives are 
even worse. Because all the parts hang off this single voiceStaff, it 
makes mistakes far more glaringly obvious. I've caught other 
transcribers' errors this way :-)


Cheers,
Wol




Re: Separate dynamics from notes

2023-04-28 Thread Gianmaria Lari
I have infinite esteem in cheerleader so if the message comes from one of
them I will do all what them propose:
- I will study what I can do with the edition engraver
- and wait for your MWE :))

By the way, ahem what is a MWE?

Grazie Kieren!
g.

On Fri, 28 Apr 2023 at 17:13, Kieren MacMillan 
wrote:

> Hi Gianmaria!
>
> > And now I understand better the reason for the thread Kieren linked.
> > I probably have to go back to study the edition engraver :)
>
> I’m the EE’s biggest cheerleader, so I would never dissuade you from that
> study… but I really do think the \sendTo is either already exactly what
> you’re looking for, or 90% of it. I’ll see what I can do in the next few
> days to put together a little MWE for you to consider.
>
> 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.
>
>


Re: Separate dynamics from notes

2023-04-28 Thread Kieren MacMillan
Hi Gianmaria!

> And now I understand better the reason for the thread Kieren linked.
> I probably have to go back to study the edition engraver :)

I’m the EE’s biggest cheerleader, so I would never dissuade you from that 
study… but I really do think the \sendTo is either already exactly what you’re 
looking for, or 90% of it. I’ll see what I can do in the next few days to put 
together a little MWE for you to consider.

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.




Re: Separate dynamics from notes

2023-04-28 Thread Jean Abou Samra
Le vendredi 28 avril 2023 à 15:08 +0200, Gianmaria Lari a écrit :

> Dear Robin,
> made some more tests.
> Your code works well but it doesn't solve the problem because it returns the 
> "absolute" location of the notes while on the other hand in the variable 
> where you write the dynamic you use a relative location. For example if I 
> want to put a dynamic on the quarter number 3 and on the quarter number 17 I 
> can't write
> 
> 
> > s4*3\p
> > s4*17\f
> 
> 
> but I have to write
> 
> >   
> > s4*3\p
> > s4*20\f
> 
> 
> I'm sorry but it's my fault. I proposed a possible solution that was simply 
> not correct. And now I understand better the reason for the thread Kieren 
> linked.
> 
> I probably have to go back to study the edition engraver :)


What about just putting all the expressions in parallel rather than in sequence?

For example:

```
\version "2.24.1"

mus = \repeat unfold 5 { c'4 d'4 f'4 g'4 }
dyns = <<
  % { s4*3 <>\p }
  % { s4*17 <>\p }
  % The above can also be written:
  \after 4*3 \p <>
  \after 4*17 \p <>
>>


\new Staff << \mus \dyns >>
```


signature.asc
Description: This is a digitally signed message part


Re: Separate dynamics from notes

2023-04-28 Thread Robin Bannister

Gianmaria Lari wrote:


Your code works well but it doesn't solve the problem because it returns
the "absolute" location of the notes while on the other hand in the
variable where you write the dynamic you use a relative location. 



That's why I said primitive.

One way to extend it, would be:
 - set it up to act like point+click does
 - but with its own protocol, going to a logger
 - which logs the differences

You would start a new trace by multiple-clicking (for zeros)
at e.g. a preceding rehearsal mark.

And you may need to keep tuplet accounting separate.



Cheers,
Robin



Re: Separate dynamics from notes

2023-04-28 Thread Pierre-Luc Gauthier
I often do math with those :

{
  \override Score.BarNumber.break-visibility = ##(#t #t #t)

  % Begin forte
  <>\f

  % At bar 4, mezzo piano
  s1*#(- 4 1) <>\mp

  % At bar 20, forte
  s1*#(- 20 4) <>\f

  % At bar 30, pianissimo
  s1*#(- 30 20) <>\pp

 s1\fine

}

Sure, you have to carry the last bar number and it ain't pretty but at
least the bar number is written somewhere in the code…

Hope this helps !

Le ven. 28 avr. 2023, à 09 h 09, Gianmaria Lari
 a écrit :
>
> Dear Robin,
>
> made some more tests.
> Your code works well but it doesn't solve the problem because it returns the 
> "absolute" location of the notes while on the other hand in the variable 
> where you write the dynamic you use a relative location. For example if I 
> want to put a dynamic on the quarter number 3 and on the quarter number 17 I 
> can't write
>
> s4*3\p
> s4*17\f
>
>
> but I have to write
>
>
> s4*3\p
> s4*20\f
>
>
> I'm sorry but it's my fault. I proposed a possible solution that was simply 
> not correct. And now I understand better the reason for the thread Kieren 
> linked.
>
> I probably have to go back to study the edition engraver :)
> g.
>
>
>
>
>
>
> On Thu, 27 Apr 2023 at 18:20, Robin Bannister  wrote:
>>
>> Gianmaria Lari wrote:
>> >
>> > This thing always seemed so inconvenient to me that I thought it was
>> > practically unusable. Or that there was some trick to maybe have
>> > Frescobaldi tell me the "position" of the note (meant as numbers of quarter
>> > or eight notes from the beginning).
>>
>> Here is a primitive include file for you to play around with.
>>
>> When hovering with the mouse
>>   - over a notehead
>>   - over a barline (inside a staff)
>> it shows such a position as (an inconvenient) fraction.
>>
>>
>> Cheers,
>> Robin



-- 
Pierre-Luc Gauthier



Re: Separate dynamics from notes

2023-04-28 Thread Gianmaria Lari
Dear Robin,

made some more tests.
Your code works well but it doesn't solve the problem because it returns
the "absolute" location of the notes while on the other hand in the
variable where you write the dynamic you use a relative location. For
example if I want to put a dynamic on the quarter number 3 and on the
quarter number 17 I can't write

s4*3\p
s4*17\f


but I have to write


s4*3\p
s4*20\f


I'm sorry but it's my fault. I proposed a possible solution that was simply
not correct. And now I understand better the reason for the thread Kieren
linked.

I probably have to go back to study the edition engraver :)
g.






On Thu, 27 Apr 2023 at 18:20, Robin Bannister  wrote:

> Gianmaria Lari wrote:
> >
> > This thing always seemed so inconvenient to me that I thought it was
> > practically unusable. Or that there was some trick to maybe have
> > Frescobaldi tell me the "position" of the note (meant as numbers of
> quarter
> > or eight notes from the beginning).
>
> Here is a primitive include file for you to play around with.
>
> When hovering with the mouse
>   - over a notehead
>   - over a barline (inside a staff)
> it shows such a position as (an inconvenient) fraction.
>
>
> Cheers,
> Robin
>


Re: Separate dynamics from notes

2023-04-28 Thread Kieren MacMillan
Hi Jean,

> Are we talking about the same thing? The \sendTo ideas sound more like 
> they're solving the first question in the OP's original post than the second 
> question to me.

Yes… I got confused about where we were in the conversation.
Sorry!

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.




Re: Separate dynamics from notes

2023-04-27 Thread Gianmaria Lari
Thank you Jean, Kieren and Robin.
I had a look at the edition engraver but it was not trivial to understand
how to install it. Maybe I will try it again in the future.
I had a look at the SendTo thread, thanks!
And finally I tried the Robin code. Well, it looks like it's doing the
job Fantastic Robin! I'll test it more in the following days.

Anyway, couldn't it be of interest to others as well?

Thanks a lot to everyone!!!
Gianmaria

On Thu, 27 Apr 2023 at 18:20, Robin Bannister  wrote:

> Gianmaria Lari wrote:
> >
> > This thing always seemed so inconvenient to me that I thought it was
> > practically unusable. Or that there was some trick to maybe have
> > Frescobaldi tell me the "position" of the note (meant as numbers of
> quarter
> > or eight notes from the beginning).
>
> Here is a primitive include file for you to play around with.
>
> When hovering with the mouse
>   - over a notehead
>   - over a barline (inside a staff)
> it shows such a position as (an inconvenient) fraction.
>
>
> Cheers,
> Robin
>


Re: Separate dynamics from notes

2023-04-27 Thread Jean Abou Samra
Le jeudi 27 avril 2023 à 10:14 -0400, Kieren MacMillan a écrit :
> Hi all,
> 
> > This sounds like it might be a use case for Jan-Peter Voigt's "Edition 
> > engraver" tool.
> > https://github.com/openlilylib/edition-engraver
> 
> Ehhh… sounds to me more like a case for that “sendTo“ code we were 
> brainstorming last year:
> https://lists.gnu.org/archive/html/lilypond-user/2021-10/msg00449.html
> 
> I’ll take a look to see what the current state-of-the-art is.


Are we talking about the same thing? The \sendTo ideas sound more like they're 
solving the first question in the OP's original post than the second question 
to me.






signature.asc
Description: This is a digitally signed message part


Re: Separate dynamics from notes

2023-04-27 Thread Robin Bannister

Gianmaria Lari wrote:


This thing always seemed so inconvenient to me that I thought it was
practically unusable. Or that there was some trick to maybe have
Frescobaldi tell me the "position" of the note (meant as numbers of quarter
or eight notes from the beginning). 


Here is a primitive include file for you to play around with.

When hovering with the mouse
 - over a notehead
 - over a barline (inside a staff)
it shows such a position as (an inconvenient) fraction.


Cheers,
Robin
% 2020-11-11 mouseover shows moments of noteheads/barlines (not span; not startbar) 
% updated to \version "2.24.0"

%schemeIndentOn

#(define (url-when fmt) ; cf LSR865
  (lambda (grob)
(let* (
  (url-strg (format #f fmt (grob::when grob) (grob::rhythmic-location grob)))
  (stil (ly:grob-property grob 'stencil)))
  (if (ly:stencil? stil)
(let* ((x-ext (ly:stencil-extent stil X))
  (y-ext (ly:stencil-extent stil Y))
  ;; For < 2.22.0 use:
  ;; (url-expr `(url-link ,url-strg ',x-ext ',y-ext))
  (url-expr `(url-link ,url-strg ,x-ext ,y-ext))
  (new-stil 
(ly:stencil-add
  (ly:make-stencil url-expr x-ext y-ext) 
  stil)))
  (ly:grob-set-property! grob 'stencil new-stil))
%   
%schemeIndentOff

\pointAndClickOff

\layout {
  \override Staff.BarLine.before-line-breaking = #(url-when "BL: ~a ~a") 
  \override  NoteHead.before-line-breaking = #(url-when "NH: ~a") 
}



Re: Separate dynamics from notes

2023-04-27 Thread Kieren MacMillan
Hi all,

> This sounds like it might be a use case for Jan-Peter Voigt's "Edition 
> engraver" tool.
> https://github.com/openlilylib/edition-engraver

Ehhh… sounds to me more like a case for that “sendTo“ code we were 
brainstorming last year:
https://lists.gnu.org/archive/html/lilypond-user/2021-10/msg00449.html

I’ll take a look to see what the current state-of-the-art is.

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.




Re: Separate dynamics from notes

2023-04-27 Thread Jean Abou Samra
Le jeudi 27 avril 2023 à 14:57 +0200, Gianmaria Lari a écrit :

> Regarding my second question, let me try to be more clear
> 
> I have a score.
> I want to write the dynamics using a separate variable.
> Suppose that on the first quarter of the tenth measure there is a "forte" and 
> then on the note of the next bar there is a "piano." If all the measures have 
> the same "time signature", let's say of 4/4, then it's pretty easy: just 
> count the beats and multiply by 4. Finally you will write:  
> 
> 
> > s1*9 s4\f s4*3 s4\p
> 
>   
> The operation is not difficult but making mistakes is pretty easy. In fact 
> this system works well if the "time signature" does not change or changes 
> very little in the piece. Otherwise you have to add up the duration of each 
> note individually and making mistakes becomes extremely easy.  
>   
> This thing always seemed so inconvenient to me that I thought it was 
> practically unusable. Or that there was some trick to maybe have Frescobaldi 
> tell me the "position" of the note (meant as numbers of quarter or eight 
> notes from the beginning).
> 
> Hope I have been more clear.

This sounds like it might be a use case for Jan-Peter Voigt's "Edition 
engraver" tool.

https://github.com/openlilylib/edition-engraver






signature.asc
Description: This is a digitally signed message part


Re: Separate dynamics from notes

2023-04-27 Thread Gianmaria Lari
Thank you Leo for your answers and help.


> you’ll probably need to be a little more specific about the use case,
> perhaps also supply example code.
>

Regarding my second question, let me try to be more clear

I have a score.
I want to write the dynamics using a separate variable.
Suppose that on the first quarter of the tenth measure there is a "forte"
and then on the note of the next bar there is a "piano." If all the
measures have the same "time signature", let's say of 4/4, then it's pretty
easy: just count the beats and multiply by 4. Finally you will write:

s1*9 s4\f s4*3 s4\p


The operation is not difficult but making mistakes is pretty easy. In fact
this system works well if the "time signature" does not change or changes
very little in the piece. Otherwise you have to add up the duration of each
note individually and making mistakes becomes extremely easy.

This thing always seemed so inconvenient to me that I thought it was
practically unusable. Or that there was some trick to maybe have
Frescobaldi tell me the "position" of the note (meant as numbers of quarter
or eight notes from the beginning).

Hope I have been more clear.
g.


Re: Separate dynamics from notes

2023-04-26 Thread Leo Correia de Verdier
You can do like this if it’s useful to you, removing the engravers that read 
what you don’t want at a specific place.
%%
\version "2.25.1"

rh = \fixed c' {c4\pp d\p e\f f\ff}

\score {
  << 
\new Voice \with {
\remove Dynamic_engraver }
  \rh
  \new Dynamics %Dynamics context doesn’t have the Note_Heads_Engraver anyway
  \rh
  >>
}
%%

Otherwise it is possible to create music functions that replace notes and rests 
with spacers or remove dynamics, but I can’t do that for you at the moment. 
While they’re not difficult functions they’re not ”built-in”.

The second question is also probably not too hard to write a function for, but 
you’ll probably need to be a little more specific about the use case, perhaps 
also supply example code.

Best wishes
/Leo
> 26 apr. 2023 kl. 22:23 skrev Gianmaria Lari :
> 
> First question
> Suppose I wrote this score:
> 
> \version "2.25.2"
> rh = \fixed c' {c4\pp d\p e\f f\ff}
> 
> \score {
>   \new Staff \rh
> }
> 
> Is there any "automatic" way to extract the dynamics in the score (maybe 
> assigning it to a variable)? 
> At the end I would like to easily transform the previous code in the 
> following one:
> 
> \version "2.25.2"
> rh = \fixed c' {c4 d e f}
> dy = {s4\pp s4\p s4\f s4\ff}
> \score {
>   <<
> \new Staff \rh
> \new Dynamics \dy
>   >>
> }
> 
> Second question
> Sometimes I copy a long score without the dynamic and add them separately 
> later. For this operation I need to establish the dynamic location in the 
> score counting and adding the notes length. This is tedious and error prone. 
> Is there any way to make it?
> 
> Thanks,
> Gianmaria




Separate dynamics from notes

2023-04-26 Thread Gianmaria Lari
First question
Suppose I wrote this score:

\version "2.25.2"
rh = \fixed c' {c4\pp d\p e\f f\ff}

\score {
  \new Staff \rh
}


Is there any "automatic" way to extract the dynamics in the score (maybe
assigning it to a variable)?
At the end I would like to easily transform the previous code in the
following one:

\version "2.25.2"
rh = \fixed c' {c4 d e f}
dy = {s4\pp s4\p s4\f s4\ff}
\score {
  <<
\new Staff \rh
\new Dynamics \dy
  >>
}


Second question
Sometimes I copy a long score without the dynamic and add them separately
later. For this operation I need to establish the dynamic location in the
score counting and adding the notes length. This is tedious and error
prone. Is there any way to make it?

Thanks,
Gianmaria