magicbook


Namemagicbook JSON
Version 0.0.3 PyPI version JSON
download
home_pageNone
SummarySheet music management for large ensembles
upload_time2024-08-14 12:55:09
maintainerNone
docs_urlNone
authorMax
requires_python<4.0,>=3.12
licenseAGPL-3.0
keywords sheet music
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # magicbook

A set of utilities for managing your large ensemble sheet music

## Getting Started

Create a new **magicbook** library by running `magicbook (directory) -n`, this
creates a new library in the specified directory. The library will have the
following structure:

```
.
├── config
│   ├── config.json
│   ├── ensembles
│   ├── generic_ensemble.json
│   ├── instruments.json
│   ├── schema
│   │   └── chart-info.json
│   └── templates
├── logs
├── music-library
│  
└── output
```

Once the library is created, magicbook should be run from the root dirctory of
the library. Alternatively, you can specify the path to the library with
`magicbook -p PATH`.

To add charts to the library, run
`magicbook charts add SLUG True --song TITLE ARTIST ARRANGER`

- SLUG is the directory the chart will go in, and can only contain lowercase
  letters and dashes (-)
- TITLE is the title of the song on the chart
- ARTIST and ARRANGER are self-explanatory. If you don't know the artist or the
  arranger, you can use `""` (an empty string).

**magicbook** is still in development, so you have to copy the PDFs into the
directory manually for now, following this structure:

```
├── (chart-slug)
│   ├── info.json
│   ├── (chart-slug) AUDIO.mp3
│   ├── (chart-slug) (FORMAT) (part-slug).pdf
│   ├── ...
│   ├── (chart-slug) (FORMAT) (part-slug).pdf
│   └── (chart-slug) SCORE.pdf
├── (chart-slug)
│   ├── info.json
│   ├── (chart-slug) AUDIO.mp3
│   ├── (chart-slug) (FORMAT) (part-slug).pdf
│   ├── ...
│   ├── (chart-slug) (FORMAT) (part-slug).pdf
│   └── (chart-slug) SCORE.pdf
├── (chart-slug)
│   └── ...
└── (chart-slug)
```

A sample music library with this structure is
[available for download here](https://1drv.ms/f/s!AlNWUe2YKW0ehYUQOrpQwFzMWRFiQQ)

There will be a command to import PDFs into the library in a future release.

Note that **magicbook** currently requires a single-page letter size PDF file to
properly impose the charts, stored as `./config/templates/trim-guides.pdf`. Use
a PDF with trim markings
([like this one](https://1drv.ms/b/s!AlNWUe2YKW0ehYlRwEEp_Zb6asruSA?e=1gVmbA))
if you want them printed on your marchpacks, otherwise use a blank PDF. This is
a temporary workaround that won't be needed in future releases.

### Terminology

For the purposes of this software:

- a **song** is a work of music.
- a **chart** is a set of sheet music, with multiple pdf **parts** for different
  players.
  - A chart may have one or more **songs**.
  - A chart may have one or more pages.

## Features

As of this writing, **magicbook** performs the following tasks:

- Auditing the library on startup
  - ensures every chart has a valid info.json file
- Assembling books from a selection of charts, where parts are in directories
  based on their instrument rather than based on their assocated chart
- Merging these directories of different parts into an A.pdf and B.pdf to be
  printed and placed in marchpacks
- Merging an instrument's charts into one single PDF for printing, either as a
  marchpack (7in x 5in pages that attach to an instrument), or as a full-sized
  binder with 8.5in x 11in pages.
  - For marchpacks, imposing the marchpack pages onto 8.5" x 11" paper (2
    marchpack pages per printing pages), so after printing they can be easily
    cut with a paper cutter and placed into a standard double-sided marchpack
- Searching for alternate parts if a chart doesn't have a part for a specified
  instrument.
  - i.e. if there is no Trombone part, add a Baritone part if one is available.
    If that's not an option, add a Tuba part.
- Printing a table of contents for each book, listing charts in alphabetical
  order.

### Planned Features

- Importing chart files into the library
- Update the chart "info.json" file
- Modifying created books with a record of previous versions and the date
  modified, so PDFs with only updated parts as opposed to the whole book can be
  created.
- This is not a complete list of planned features, will add more to this section
  as I organize my thoughts.

## Limitations

- **magicbook** only works with instruments divided into four parts at most.
  Since most large ensemble sheet music doesn't split instruments into more than
  four parts, increasing this limit is not a priority.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "magicbook",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": "sheet music",
    "author": "Max",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/07/db/be5a2bac66d2406aa52e548f68e53466fb72fbb61baac1e2f65f45633f7e/magicbook-0.0.3.tar.gz",
    "platform": null,
    "description": "# magicbook\n\nA set of utilities for managing your large ensemble sheet music\n\n## Getting Started\n\nCreate a new **magicbook** library by running `magicbook (directory) -n`, this\ncreates a new library in the specified directory. The library will have the\nfollowing structure:\n\n```\n.\n\u251c\u2500\u2500 config\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 config.json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ensembles\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 generic_ensemble.json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 instruments.json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 schema\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 chart-info.json\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 templates\n\u251c\u2500\u2500 logs\n\u251c\u2500\u2500 music-library\n\u2502\u00a0\u00a0\n\u2514\u2500\u2500 output\n```\n\nOnce the library is created, magicbook should be run from the root dirctory of\nthe library. Alternatively, you can specify the path to the library with\n`magicbook -p PATH`.\n\nTo add charts to the library, run\n`magicbook charts add SLUG True --song TITLE ARTIST ARRANGER`\n\n- SLUG is the directory the chart will go in, and can only contain lowercase\n  letters and dashes (-)\n- TITLE is the title of the song on the chart\n- ARTIST and ARRANGER are self-explanatory. If you don't know the artist or the\n  arranger, you can use `\"\"` (an empty string).\n\n**magicbook** is still in development, so you have to copy the PDFs into the\ndirectory manually for now, following this structure:\n\n```\n\u251c\u2500\u2500 (chart-slug)\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 info.json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 (chart-slug) AUDIO.mp3\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 (chart-slug) (FORMAT) (part-slug).pdf\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ...\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 (chart-slug) (FORMAT) (part-slug).pdf\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 (chart-slug) SCORE.pdf\n\u251c\u2500\u2500 (chart-slug)\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 info.json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 (chart-slug) AUDIO.mp3\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 (chart-slug) (FORMAT) (part-slug).pdf\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ...\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 (chart-slug) (FORMAT) (part-slug).pdf\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 (chart-slug) SCORE.pdf\n\u251c\u2500\u2500 (chart-slug)\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 ...\n\u2514\u2500\u2500 (chart-slug)\n```\n\nA sample music library with this structure is\n[available for download here](https://1drv.ms/f/s!AlNWUe2YKW0ehYUQOrpQwFzMWRFiQQ)\n\nThere will be a command to import PDFs into the library in a future release.\n\nNote that **magicbook** currently requires a single-page letter size PDF file to\nproperly impose the charts, stored as `./config/templates/trim-guides.pdf`. Use\na PDF with trim markings\n([like this one](https://1drv.ms/b/s!AlNWUe2YKW0ehYlRwEEp_Zb6asruSA?e=1gVmbA))\nif you want them printed on your marchpacks, otherwise use a blank PDF. This is\na temporary workaround that won't be needed in future releases.\n\n### Terminology\n\nFor the purposes of this software:\n\n- a **song** is a work of music.\n- a **chart** is a set of sheet music, with multiple pdf **parts** for different\n  players.\n  - A chart may have one or more **songs**.\n  - A chart may have one or more pages.\n\n## Features\n\nAs of this writing, **magicbook** performs the following tasks:\n\n- Auditing the library on startup\n  - ensures every chart has a valid info.json file\n- Assembling books from a selection of charts, where parts are in directories\n  based on their instrument rather than based on their assocated chart\n- Merging these directories of different parts into an A.pdf and B.pdf to be\n  printed and placed in marchpacks\n- Merging an instrument's charts into one single PDF for printing, either as a\n  marchpack (7in x 5in pages that attach to an instrument), or as a full-sized\n  binder with 8.5in x 11in pages.\n  - For marchpacks, imposing the marchpack pages onto 8.5\" x 11\" paper (2\n    marchpack pages per printing pages), so after printing they can be easily\n    cut with a paper cutter and placed into a standard double-sided marchpack\n- Searching for alternate parts if a chart doesn't have a part for a specified\n  instrument.\n  - i.e. if there is no Trombone part, add a Baritone part if one is available.\n    If that's not an option, add a Tuba part.\n- Printing a table of contents for each book, listing charts in alphabetical\n  order.\n\n### Planned Features\n\n- Importing chart files into the library\n- Update the chart \"info.json\" file\n- Modifying created books with a record of previous versions and the date\n  modified, so PDFs with only updated parts as opposed to the whole book can be\n  created.\n- This is not a complete list of planned features, will add more to this section\n  as I organize my thoughts.\n\n## Limitations\n\n- **magicbook** only works with instruments divided into four parts at most.\n  Since most large ensemble sheet music doesn't split instruments into more than\n  four parts, increasing this limit is not a priority.\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0",
    "summary": "Sheet music management for large ensembles",
    "version": "0.0.3",
    "project_urls": null,
    "split_keywords": [
        "sheet",
        "music"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f705f79fba19b7ee2c9475897c3f68ae911e8aadfcdb04319a14659577a4d55d",
                "md5": "7f1ca137bc5be2ba2e4154b3b2b51918",
                "sha256": "5a8dfa82f5ad039b30381e0c991bc66bfa555e74d65fd92e62cff79f4a76d912"
            },
            "downloads": -1,
            "filename": "magicbook-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7f1ca137bc5be2ba2e4154b3b2b51918",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 37131,
            "upload_time": "2024-08-14T12:55:08",
            "upload_time_iso_8601": "2024-08-14T12:55:08.269476Z",
            "url": "https://files.pythonhosted.org/packages/f7/05/f79fba19b7ee2c9475897c3f68ae911e8aadfcdb04319a14659577a4d55d/magicbook-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "07dbbe5a2bac66d2406aa52e548f68e53466fb72fbb61baac1e2f65f45633f7e",
                "md5": "2b344450b4d5489dfbc7f00192409afe",
                "sha256": "581f268e362f7af96949ec8bf9ea26be95b6b03b455ec24171f69076f2d6104b"
            },
            "downloads": -1,
            "filename": "magicbook-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "2b344450b4d5489dfbc7f00192409afe",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 35198,
            "upload_time": "2024-08-14T12:55:09",
            "upload_time_iso_8601": "2024-08-14T12:55:09.945697Z",
            "url": "https://files.pythonhosted.org/packages/07/db/be5a2bac66d2406aa52e548f68e53466fb72fbb61baac1e2f65f45633f7e/magicbook-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-14 12:55:09",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "magicbook"
}
        
Max
Elapsed time: 0.51294s