Name | magicbook JSON |
Version |
0.0.3
JSON |
| download |
home_page | None |
Summary | Sheet music management for large ensembles |
upload_time | 2024-08-14 12:55:09 |
maintainer | None |
docs_url | None |
author | Max |
requires_python | <4.0,>=3.12 |
license | AGPL-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"
}