emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "David O'Toole" <dto1138@gmail.com>
To: mail@christianmoe.com
Cc: Martyn Jago <martyn.jago@btinternet.com>,
	Org Mode <emacs-orgmode@gnu.org>
Subject: Re: ob-lilypond
Date: Tue, 28 Jun 2011 09:18:38 -0400	[thread overview]
Message-ID: <BANLkTikyGb44kh_yv5Y18muWo_3HcKO7_g@mail.gmail.com> (raw)
In-Reply-To: <4E09C50D.5020302@christianmoe.com>

this is fantastic :)

org mode is becoming like the Jupiter of the emacsian solar system.

On Tue, Jun 28, 2011 at 8:11 AM, Christian Moe <mail@christianmoe.com> wrote:
> Hi,
>
> I'm thrilled that Lilypond has been added to Babel, grateful for the extra
> thought given to Mac users -- and completely bowled over by your demos!
>
> Rather than put together complex scores or generate arpeggios the literate
> programming way, though, all I'd like to do is to easily include simple
> snippets of music notation in Org documents (elaboration follows).
>
> So please consider this a polite request to bump up "Consider the option to
> embed resultant partial musical output into org file" from SOMEDAY to TODO
> in your task list...
>
> Use cases:
>
> - Self-contained documentation, e.g. using Org to author a text like the
> Lilypond documentation: much prose with code examples and the results of
> those examples interspersed.
>
> - Writing a musicology paper, with captioned and cross-referenced examples
> (not /my/ use case, but someone might...)
>
> - Putting together a simple song booklet, such as for a summer camp, with
> lyrics and possibly illustrations. (This is my main interest.)
>
> Ways to do it:
>
> One (imperfect) solution would be a header argument to just surround the
> exported content of Lilypond blocks with the appropriate HTML tags / LaTeX
> environment for lilypond-book to act on, and perhaps a post-processing step
> to automatically call lilypond-book on the exported document. I can probably
> set up something like this for myself.
>
> But much better, IMO, would be a way to `evaluate' a single Lilypond block
> and get #+RESULTS with a link to a PNG representing just that snippet of
> music. The snippet would then show up in subsequent exports as an included
> graphic without any post-processing, and could also be viewed in-buffer with
> `C-c C-x C-v'. (For my money, this and not `tangle all' would be the
> intuitive use of `C-c C-c' on a block, but I understand how your choice
> makes sense for other uses.)
>
> Yours,
> Christian
>
>
>
> On 6/27/11 3:00 PM, Martyn Jago wrote:
>>
>> Hi
>>
>> This is an invitation to try / test ob-lilypond - enabling LilyPond
>> Score Generation / Arrangement from within org-mode.
>>
>> Available on Github at https://github.com/mjago/ob-lilypond
>>
>> This is a beta release, but includes examples, instructions, and
>> tests, and has been tested on OSX and nix.
>>
>> Any further testing would be helpful.
>>
>> Following is the readme.org file which is rendered correctly on
>> Github...
>>
>> --->
>>
>> * Emacs Org Babel LilyPond Mode
>> ** Purpose
>> Allow LilyPond Score Generation to take place within Emacs Org-mode
>> using literate programming principles.
>>
>> ** Examples
>> Several examples are included
>> *** Misty (Jazz Standard utilising org-mode to organise voice and other
>> data)
>>       - Here is an example Org LilyPond File]] exported as HTML
>>       - Resultant Score exported in pdf format
>>       - Generated Score export of individual Pages (png)
>> *** Modal Cycles (Utilises org-babel and noweb to generate notes)
>>       - Generated Score
>>       - Generated Midi File
>> *** Modal Cycles 2 (Utilises org-babel and noweb to generate notes)
>>       - Generated Score
>>       - Generated Midi File
>> *** Modes in the Key of C (another example of polyglot lilypond
>> programming)
>>       - Generated Score
>>       Generated MIDI File
>>
>> ** Features
>>  - Optional Automated LilyPond Compilation following the "Tangling"
>>   of a "Literate Org LilyPond" file
>>  - Optional Automated display of resultant Musical Score following
>> compilation
>>  - Optional Automated playing of the resultant MIDI file following
>> compilation
>>  - Highlights syntax errors in Org file following a failed compilation
>>  - Integrates with LilyPond-Mode
>>  - Cross-Platform (OSX, nix, win32)
>>
>> ** Usage
>>
>> *** Compiling lilypond source
>> Hitting 'C-c C-c' within a lilypond block initiates ly-tangle (tangling of
>> all
>> lilypond blocks). Depending on the feature settings, ob-lilypond will
>> then either display a pdf of the score, play the generated midi file,
>> both, or neither.
>>
>> 'M-x ly-tangle' can also be called from anywhere in the file
>> and can be tied to a function key with something like...
>>
>> #+begin_src emacs-lisp
>>
>>  (global-set-key [f8] 'ly-dev-tangle)
>>
>> #+end_src
>>
>> *** Commands
>>
>> Some commands are included to quickly disable certain post-tangle
>> activities...
>>  - ly-toggle-midi-play (toggle whether midi will be played following a
>>      successful compilation)
>>  - ly-toggle-pdf-display (toggle whether pdf will be displayed following
>>     a successful compilation)
>>
>>
>> NOTE:- If using Timidity for midi playback, kill the midi stream with
>> C-g in Emacs
>>
>> ** Setup (add to emacs init file)
>> *** Cloning ob-lilypond
>>
>> The Files need to be downloaded to your relevant dotfiles directory...
>>
>> #+BEGIN_SRC sh
>>
>> git clone https://github.com/mjago/ob-lilypond.git ob-lilypond
>>
>> #+END_SRC
>>
>> *** Emacs Initialisation file setup
>>
>> Require library...
>> #+BEGIN_SRC emacs-lisp
>>
>> (add-to-list 'load-path
>>              (concat dotfiles-dir  "ob-lilypond/lib"))
>> (require 'ob-lilypond)
>>
>> #+END_SRC
>>
>>
>> Add lilypond to your list of babel languages...
>>
>> #+BEGIN_SRC emacs-lisp
>> (org-babel-do-load-languages
>>  'org-babel-load-languages
>>  '((ruby . t)
>>    (C . t)
>>    (emacs-lisp . t)
>>    (sh t)
>>    (dot t)
>>    (clojure t)
>>    (ditaa t)
>>    (lilypond t)
>>    ))
>>
>> #+END_SRC
>>
>> ** Requirements
>> *** Mac OS X
>>  - [[http://lilypond.org/][Lilypond]] can be obtained
>> [[http://lilypond.org/][here]]
>>
>> *** nix
>>  - Lilypond is available here or via the the package manager
>>  - For MIDI, [[http://timidity.sourceforge.net/][Timidity]] is available
>> [[http://timidity.sourceforge.net/][here]] or via the package manager
>>  - For PDF, [[http://live.gnome.org/Evince/Downloads][Evince]] is
>> available
>> [[http://live.gnome.org/Evince/Downloads][here]] or via package manager
>>
>> *** Win32
>>  - Currently untested
>>
>> ** Testing
>>
>> Tests are provided and can be run by opening
>> test/ob-lilypond-tests.org and running the following commands...
>>
>>  - M-x eval-buffer (within ob-lilypond-tests.org
>>  - M-x ert (t)
>>
>> Tests are run automatically on source/test file save if ly-project
>> (below) has been executed
>>
>> ** Development
>>
>> Included also is dev/ob-lilypond.org which includes various helper
>> commands used for development, and the development todo list
>>  - ly-project (code block - evaluate with C-c C-c and execute M-x
>> ly-project)
>>    - load appropriate files
>>    - set up windows
>>    - setup project development environment
>>    - add continuous testing post-save hook
>>    - map F4 to switch between src or test files to control file
>> (dev/ob-lilypond.org)
>>    - map F8 to 'ly-dev-tangle (tangle test/test-build/test.org file from
>> anywhere)
>>  - Remove post-save-hook code block
>>  - Development todo list
>>
>> <---
>>
>> Regards
>>
>> Martyn
>>
>>
>>
>
>
>

  reply	other threads:[~2011-06-28 13:18 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-27 13:00 ob-lilypond Martyn Jago
2011-06-27 18:53 ` ob-lilypond Eric Schulte
2011-06-28  9:38   ` ob-lilypond Martyn Jago
2011-06-28 10:07     ` ob-lilypond Bastien
2011-06-28 10:21       ` ob-lilypond Bastien
2011-06-28 20:45         ` ob-lilypond Eric Schulte
2011-06-28 23:07           ` ob-lilypond Bastien
2011-06-29  0:41             ` ob-lilypond Eric Schulte
2011-06-29 17:07           ` ob-lilypond Martyn Jago
2011-06-29 21:15             ` ob-lilypond Eric Schulte
2011-06-30  6:38               ` ob-lilypond Martyn Jago
2011-06-30 18:10                 ` ob-lilypond Eric Schulte
2011-07-01 12:01                   ` ob-lilypond Christian Moe
2011-07-06  8:13                     ` [BABEL][PATCH] ob-lilypond basic mode - was ob-lilypond Martyn Jago
2011-07-06 13:20                       ` Eric Schulte
2011-07-01 13:43                   ` ob-lilypond Martyn Jago
2011-07-01 19:27                     ` ob-lilypond Eric Schulte
2011-07-02 13:04                       ` ob-lilypond Martyn Jago
2011-06-28 13:38     ` ob-lilypond Cameron Horsburgh
2011-06-28 16:46       ` ob-lilypond Martyn Jago
2011-06-28 12:11 ` ob-lilypond Christian Moe
2011-06-28 13:18   ` David O'Toole [this message]
2011-06-28 17:06   ` ob-lilypond Martyn Jago
2011-06-28 18:51     ` ob-lilypond Christian Moe
2011-06-28 19:00     ` ob-lilypond Michael Brand
2011-06-28 20:00     ` ob-lilypond Christian Moe
2011-06-28 21:19       ` ob-lilypond Martyn Jago
  -- strict thread matches above, loose matches on Subject: below --
2015-03-25 12:49 ob-lilypond pls
2015-03-26  9:20 ` ob-lilypond pls
2015-03-29 21:27   ` ob-lilypond Nick Dokos
2015-03-30  9:20     ` ob-lilypond Patrick L. Schmidt
2015-03-26  9:26 ob-lilypond Patrick L. Schmidt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BANLkTikyGb44kh_yv5Y18muWo_3HcKO7_g@mail.gmail.com \
    --to=dto1138@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=mail@christianmoe.com \
    --cc=martyn.jago@btinternet.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).