Giter VIP home page Giter VIP logo

evox's Introduction

EvoX

EvoX is a PDF songbook generator for the masses that makes it easy for anyone to create and maintain their very own songbook.

Why

Music makes the world go round, and there's nothing better than a good jam session with friends. After creating several songbooks for jam sessions, we wanted to simplify the process and leverage programming to make it much simpler and easier.

Features

  • It makes a PDF Songbook (obviously).
  • Super sexy cover page, with logo support.
  • It features a super simple plain-text markup language making it easy for people to create & share songs.
  • Multiple column support.
  • Per song font setting and column size adjustments.
  • Table of content with page numbers.

Installation

Install evox with:

$ gem install evox

Usage

Create a directory to house your songbook

$ mkdir superbook
$ cd superbook

Initialize the songbook

$ evox init

This will create 3 different directories book, cover, and songs.

Next, generate the sample song book.

$ evox generate

This will create the book.pdf inside the book folder.

The Cover

Inside the cover folder there are 2 files, the config.yml and logo.png. The logo file is just an example you can replace with your own.

The config.yml allows you to adjust the cover heading, subheading, logo-size, and footer text. You can also change the name of the logo file.

header:
  top_padding: 20
  title: 'The Great Book of Songs'
  title_size: 35
  subtitle: 'Version 0.5'
  subtitle_size: 15
  bottom_padding: 50
logo:
  image: logo.png
  width: 393.5
  height: 457
footer:
  title: 'Compiled by Leonid Medovyy'
  title_size: 25

The Songs

The songs are just files with .evox extension that live inside the songs directory, and are printed in alphabetical order when the songbook is generated.

The song settings are located in between the double equal signs. Font size, column gutter size and total column width can be adjusted.

==
name: Free Falling
author: Tom Petty
font: 9.0
column_width: 610
gutter: 5
==

The columns are created by placing lyrics inside double dashes.

Lyrics themselves start with spaces, and chords start with a period. This concept is inspired by OpenSong.

--
.        C    F     F     C     G
 She's a good girl, loves her mama
.     C    F     F     C    G
 Loves Jesus and America too
.        C    F     F        C   G
 She's a good girl, crazy 'bout Elvis
.      C    F         F    C    G
 Loves horses and her boyfriend too
--

--
.       C    F        F     C   G
 It's a long day of livin' in Reseda
.          C    F    F       C          G
 There's a freeway runnin' through the yard
.          C    F             F     C     G
 And I'm a bad boy, 'cause I don't even miss her
.      C   F         F    C        G
 I'm a bad boy for breakin' her heart
--

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/leouofa/evox.

License

The gem is available as open source under the terms of the MIT License.

evox's People

Contributors

holdthez avatar

Stargazers

Paulo Mateus avatar Leonid Medovyy avatar  avatar Dylan Bishop avatar

Watchers

Leonid Medovyy avatar James Cloos avatar

evox's Issues

Use proportional fonts for lyrics

Right now the fonts used for lyrics are monospaced, making the lyrics wider then they could be.

Adding the support for proportional fonts would allow users to fit more content on a page and increase the overall font size.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.