kastdeur / lilydrum Goto Github PK
View Code? Open in Web Editor NEWSet up a lilydrum file in the same way as there is a bagpipe.ly. Main focus is on pipeband (snare) drumming.
Home Page: https://deboone.nl/lilydrum
License: MIT License
Set up a lilydrum file in the same way as there is a bagpipe.ly. Main focus is on pipeband (snare) drumming.
Home Page: https://deboone.nl/lilydrum
License: MIT License
In pipemusic a lot of repetition occurs, especially "part 2 of 4" is common.
Having such a command would be really nice to have.
It's customary to have 4 bars per line for portrait and 8 for landscape...
Most of the time can this be accomplished by \break
-ing every 8 measures and having enough notes in. However, it would clear the code if there was an external command for this.
Instead of a horizontal grouping, an arrow (going up and down) should be over the notes.
Line 346 in 5944a0e
might be handy. Oh, this is also a hello world thingy
I know a rimshot symbol as a normal note with either a slash or cross through it.
This symbol is still missing.
If a normally beamed note comes before a drag, they have a flag instead of a beam
This can be fixed by explicit beaming, but I'd rather have a good autobeaming for this.
Note that this is not an issue for flams.
\include "lilydrum.ly"
\new PipeBandDrumStaff {
\drummode {
d8 \flam d g8 \flam g d8 \drag d g8 \drag g |
}
}
It can be temp-fixed with explicit beaming:
\include "lilydrum.ly"
\new PipeBandDrumStaff {
\drummode {
d8 \flam d g8 \flam g d8[ \drag d g8 \drag g] |
}
}
The tutti macro can not be used on one note.
Trying to compile the cheatsheet.ly file with Lilypond GNU LilyPond 2.19.37 fails:
$ lilypond -V cheatsheet.ly
...
...
...
GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in closedpoint
Operand stack:
0 0 0 0
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1951 1 3 %oparray_pop 1950 1 3 %oparray_pop 1934 1 3 %oparray_pop 1820 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval--
Dictionary stack:
--dict:1183/1684(ro)(G)-- --dict:0/20(G)-- --dict:119/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 583295
GPL Ghostscript 9.15: Unrecoverable error, exit code 1
warning: `(gs -dSAFER -dDEVICEWIDTHPOINTS=595.28 -dDEVICEHEIGHTPOINTS=841.89 -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -r1200 -sDEVICE=pdfwrite -sOutputFile=cheatsheet.pdf -c.setpdfwrite -f/var/folders/tz/jxcv5s0j091dfpxl3qbvpnf40000gn/T//lilypond-FB96M1)' failed (256)
fatal error: failed files: "/tmp/lyp/wrappers/cheatsheet.ly"
I pinpointed the problem to the \rthrow and \lthrow articulations on line 72
BTW, your code is forked as a lyp package here.
Please add a software license so that I can fork this repository. I'd like to turn it into a lyp package.
Hello,
Thank you for this wonderful package. I am not sure if you are still actively maintaining it or not.
When a tuplet begins \flam gN
the tuplet bracket and number are displayed at an angle:
This does not happen if the flam is \flam dN
(lR) and it only happens when the flam is at the beginning of the tuplet. It does not seem to matter where in the bar the tuplet occurs.
Here is a test case:
\version "2.20.0"
\include "includes/lilydrum-master/lilydrum.ly"
\score {
\new PipeBandDrumStaff {
\drummode {
\time 2/4
\tuplet 5/4 {
\flam g16 d16 g16 d16 g16
} d4 |
}
}
}
lilydrum/lib/embellishments.ily:11:38: warning: deprecated: missing `.' in property path Score.GraceSpacing.spacing-increment
\override Score.GraceSpacing
#'spacing-increment = #0
When repeats are unfolded tutti's show up in the second time through.
Most of the time the second time through all bars are played in unison.
Having a tag in \tutti
, we can reuse an expression while turning off a unison.
It could work by using simultaneous music.
Right now I can do the following to attain something like this:
<<
\tag #'tutti { \tutti { s4 s4 s4 } }
{ d8 g d8 g d4 }
>>
then use \removeWithTag #'tutti
to remove the unison bracket.
For this to work, a function is needed to get enough spacer notes. Either by calculating the total length or replacing all notes with spacer notes
The tutti macro needs a switch to open the ending (to implicitly indicate to continue the tutti).
Maybe the same mechanism can be used to create an open start, though not yet needed.
Currently a tuplet beginning with a flam has a strange tuplet beam (slanted)
This can be fixed by putting the flam outside of the tuplet ..
However the autohand function doesn't work this way yet
The autohand function should search across the SequentialMusic to find the first note and check on that note which hand it is.
(Perhaps we need a default for this aswell if not right or left hand)
Keep subbeaming intact. So subgroups of two can always be identified easily.
received 8th: d32[ g d g] d32[ g d g]
received 16th: d32[[ g] d[ g]] d32[[ g] d[ g]]
desired result: d32[[[ g] d[ g]] d32[[ g] d[ g]]]
Not really something that should be in this package, but a function that detects whether the current environment is in a \repeat volta
(or instead in a \repeat unfold
) would be really cool to have.
This could allow music to transform itself depending on the context.
Midi support for drumming would be really cool.
This needs a macro to switch sound (Bass, Tenor1, Tenor2, Side).
Also, sides have rolls which have to be implemented somehow.(no idea yet for this)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.