dc.contributor.author | Mayer, Jiří |
dc.contributor.author | Pecina, Pavel |
dc.contributor.author | Hajič jr., Jan |
dc.date.accessioned | 2024-12-31T20:42:03Z |
dc.date.available | 2024-12-31T20:42:03Z |
dc.date.issued | 2024-12-30 |
dc.identifier.uri | http://hdl.handle.net/11234/1-5835 |
dc.description | Smashcima is a library and framework for synthesizing images containing handwritten music for creating synthetic training data for OMR models. It is primarily intended to be used as part of optical music recognition workflows, esp. with domain adaptation in mind. The target user is therefore a machine-learning, document processing, library sciences, or computational musicology researcher with minimal skills in python programming. Smashcima is the only tool that simultaneously: - synthesizes handwritten music notation, - produces not only raster images but also segmentation masks, classification labels, bounding boxes, and more, - synthesizes entire pages as well as individual symbols, - synthesizes background paper textures, - synthesizes also polyphonic and pianoform music images, - accepts just MusicXML as input, - is written in Python, which simplifies its adoption and extensibility. Therefore, Smashcima brings a unique new capability for optical music recognition (OMR): synthesizing a near-realistic image of handwritten sheet music from just a MusicXML file. As opposed to notation editors, which work with a fixed set of fonts and a set of layout rules, it can adapt handwriting styles from existing OMR datasets to arbitrary music (beyond the music encoded in existing OMR datasets), and randomize layout to simulate the imprecisions of handwriting, while guaranteeing the semantic correctness of the output rendering. Crucially, the rendered image is provided also with the positions of all the visual elements of music notation, so that both object detection-based and sequence-to-sequence OMR pipelines can utilize Smashcima as a synthesizer of training data. (In combination with the LMX canonical linearization of MusicXML, one can imagine the endless possibilities of running Smashcima on inputs from a MusicXML generator.) |
dc.publisher | Charles University, Faculty of Mathematics and Physics, Institute of Formal and Applied Linguistics (UFAL) |
dc.rights | Apache License 2.0 |
dc.rights.uri | http://opensource.org/licenses/Apache-2.0 |
dc.source.uri | https://github.com/OMR-Research/Smashcima |
dc.subject | Optical music recognition |
dc.subject | synthetic data |
dc.subject | handwritten notation |
dc.title | Smashcima |
dc.type | toolService |
metashare.ResourceInfo#ResourceComponentType#ToolServiceInfo.languageDependent | false |
metashare.ResourceInfo#ContentInfo.detailedType | tool |
dc.rights.label | PUB |
has.files | yes |
branding | LINDAT / CLARIAH-CZ |
demo.uri | https://huggingface.co/spaces/Jirka-Mayer/Smashcima |
contact.person | Jiří Mayer mayer@ufal.mff.cuni.cz Charles University, Faculty of Mathematics and Physics, Institute of Formal and Applied Linguistics (UFAL) |
contact.person | Jan Hajič jr. hajicj@ufal.mff.cuni.cz Charles University, Faculty of Mathematics and Physics, Institute of Formal and Applied Linguistics (UFAL) |
sponsor | Ministry of Culture DH23P03OVV008 OmniOMR – rozpoznávání hudebního záznamu pomocí strojového učení pro digitální knihovny nationalFunds |
files.size | 9357835 |
files.count | 4 |
Files in this item
Download all files in item (8.92 MB)
- Name
- Smashcima-1.0.0.zip
- Size
- 3.24 MB
- Format
- application/zip
- Description
- Smashcima release v1.0
- MD5
- 27d93e240d5b3c7b0f19b9eaf0cd4e7b
- Smashcima-1.0.0
- README.md5 kB
- .gitignore3 kB
- tests
- __main__.py293 B
- __init__.py0 B
- scene
- NameofViaDummyTest.py564 B
- SceneObjectRelationshipQueriesTest.py4 kB
- __init__.py0 B
- orchestration
- ContainerTest.py3 kB
- __init__.py0 B
- Makefile1 kB
- jupyter
- layout_synthesis
- beams.ipynb1 kB
- duration_dots.ipynb1 kB
- stems.musicxml11 kB
- ledger_lines.ipynb1 kB
- rests.musicxml11 kB
- flags.musicxml9 kB
- rests.ipynb1 kB
- notehead_placement.musicxml30 kB
- accidentals.musicxml15 kB
- stems.ipynb1 kB
- beams.musicxml28 kB
- duration_dots.musicxml9 kB
- notehead_placement.ipynb1 kB
- accidentals.ipynb1 kB
- ledger_lines.musicxml17 kB
- flags.ipynb1 kB
- dev
- mxl_loader.ipynb1 kB
- base_handwritten_model.ipynb1 kB
- exporting
- bitmap_rendering.ipynb2 kB
- svg_exporting.ipynb2 kB
- assets
- muscima_pp
- assets.ipynb1 kB
- glyphs_zoo.ipynb6 kB
- glyphs.ipynb1 kB
- README.ipynb4 kB
- muscima_pp
- docs
- tutorial-2.ipynb3 kB
- tutorial-3.ipynb5 kB
- scene-objects.ipynb3 kB
- tutorial-1.ipynb1 kB
- affine-spaces-and-rendering.ipynb2 kB
- README.ipynb1 kB
- layout_synthesis
- .vscode
- settings.json125 B
- pyproject.toml1 kB
- Dockerfile978 B
- docs
- todo-list.md2 kB
- 02_models-and-service-orchestration.md13 kB
- 04_affine-objects-and-rendering.md10 kB
- pdf
- smashcima-technical-documentation.pdf1 MB
- smashcima-user-documentation.pdf1 MB
- 07_glyph-synthesizer.md6 kB
- tutorials
- 2-changing-background-texture.md5 kB
- 3-using-custom-glyphs.md9 kB
- 1-producing-music-notation-images.md4 kB
- 0_introduction.md4 kB
- assets
- readme-example.jpg66 kB
- logo-large.png301 kB
- ufal-logo.pdf3 kB
- line-glyphs
- smufl_stem.png403 B
- smashcima_ledgerLine.png191 B
- smashcima_beamHook.png176 B
- smufl_brace.png2 kB
- smashcima_beam.png271 B
- smufl_bracket.png3 kB
- omniomr-logo.png161 kB
- tutorial-3
- red-circles_thumb.jpg43 kB
- scene-objects
- note-list-graph.png41 kB
- containers-graph.png79 kB
- note-color-graph.png21 kB
- glyphs
- smufl_accidentalFlat.png414 B
- smufl_rest8th.png434 B
- smufl_accidentalDoubleSharp.png252 B
- smufl_fClef.png712 B
- smufl_noteheadWhole.png301 B
- smufl_flag8thDown.png291 B
- smufl_restQuarter.png401 B
- smufl_flag8thUp.png305 B
- smufl_accidentalSharp.png641 B
- smufl_timeSigCommon.png449 B
- smufl_timeSig2.png350 B
- smufl_restWhole.png278 B
- smufl_flag16thDown.png377 B
- smufl_flag16thUp.png321 B
- smufl_augmentationDot.png106 B
- smufl_noteheadBlack.png202 B
- smufl_timeSig4.png428 B
- smufl_gClef.png1 kB
- smufl_restHalf.png233 B
- smufl_cClef.png1 kB
- smufl_rest16th.png459 B
- smufl_accidentalNatural.png395 B
- smufl_articStaccatoBelow.png122 B
- smashcima-logo.svg26 kB
- tutorial-1
- page_1_thumb.jpg38 kB
- page_0_thumb.jpg33 kB
- page_0_svg.jpg42 kB
- lc5003150.musicxml170 kB
- smashcima-logo.png81 kB
- 09_line-glyphs.md1 kB
- 03_scene-objects.md16 kB
- 05_synthesizer-interfaces.md2 kB
- build-deliverable
- process_readme.sh1 kB
- pandoc_smashcima_template.latex13 kB
- build_user_documentation.sh1 kB
- defaults.yaml372 B
- build_technical_documentation.sh1 kB
- 08_glyphs.md3 kB
- 06_column-layout-synthesizer.md2 kB
- 00_introduction.md3 kB
- 01_design-overview.md5 kB
- checklists
- deploying-gradio-demo.md1 kB
- publishing-to-pypi.md1 kB
- before-commit.md206 B
- gradio_demo
- __main__.py3 kB
- DemoModel.py1 kB
- utils.py575 B
- __init__.py0 B
- asset_bundles.py1 kB
- testing
- .gitignore25 B
- input.mscz3 kB
- input.musicxml5 kB
- LICENSE11 kB
- smashcima
- __init__.py879 B
- jupyter
- __init__.py0 B
- display_glyphs.py1 kB
- display_scene_graph.py3 kB
- loading
- load_score.py1 kB
- MusicXmlLoader.py23 kB
- __init__.py78 B
- synthesis
- style
- StyleDomain.py782 B
- MuscimaPPStyleDomain.py1 kB
- MzkPaperStyleDomain.py1 kB
- __init__.py172 B
- Styler.py1 kB
- layout
- column
- Column.py1 kB
- __init__.py0 B
- BarlinesColumn.py1 kB
- ColumnBase.py4 kB
- ClefsColumn.py2 kB
- ColumnLayoutSynthesizer.py16 kB
- Skyline.py3 kB
- EventColumn.py2 kB
- AugmentationDotsColumn.py7 kB
- NoteheadsColumn.py12 kB
- RestsColumn.py4 kB
- AccidentalsColumn.py4 kB
- __init__.py121 B
- BeamStemSynthesizer.py13 kB
- column
- glyph
- MuscimaPPLineSynthesizer.py2 kB
- __init__.py183 B
- MuscimaPPGlyphSynthesizer.py4 kB
- NaiveLineSynthesizer.py1 kB
- __init__.py330 B
- GlyphSynthesizer.py2 kB
- page
- SolidColorPaperSynthesizer.py1 kB
- Quilter.py5 kB
- PaperSynthesizer.py633 B
- __init__.py364 B
- NaiveStafflinesSynthesizer.py3 kB
- StafflinesSynthesizer.py901 B
- MzkQuiltingPaperSynthesizer.py1 kB
- SimplePageSynthesizer.py3 kB
- LineSynthesizer.py3 kB
- style
- assets
- textures
- mzk_paper_patches.csv637 B
- __init__.py0 B
- MzkPaperPatches.py3 kB
- download_file.py1 kB
- AssetBundle.py3 kB
- glyphs
- muscima_pp
- __init__.py0 B
- __main__.py743 B
- get_symbols.py25 kB
- MppPage.py3 kB
- get_line_endpoints.py1 kB
- PointCloud.py789 B
- MppGlyphMetadata.py1 kB
- LineList.py1 kB
- SymbolRepository.py2 kB
- MuscimaPPGlyphs.py5 kB
- PackedGlyph.py1 kB
- __init__.py0 B
- muscima_pp
- datasets
- MuscimaPP.py1 kB
- __init__.py0 B
- AssetRepository.py2 kB
- textures
- scene
- ScenePoint.py1 kB
- SmuflLabels.py11 kB
- nameof_via_dummy.py617 B
- semantic
- Pitch.py3 kB
- ScoreEvent.py1 kB
- TimeSignature.py972 B
- Note.py339 B
- BeamValue.py318 B
- RestSemantic.py380 B
- Event.py1 kB
- ClefSign.py297 B
- StaffSemantic.py778 B
- Clef.py2 kB
- Score.py3 kB
- ScoreMeasure.py1 kB
- Chord.py2 kB
- BeamedGroup.py2 kB
- TypeDuration.py1 kB
- MeasureRest.py691 B
- AttributesChange.py929 B
- Part.py2 kB
- AccidentalValue.py427 B
- Attributes.py2 kB
- KeySignature.py551 B
- Measure.py3 kB
- Durable.py669 B
- __init__.py798 B
- StemValue.py616 B
- ComposedGlyph.py3 kB
- AffineSpaceVisitor.py1 kB
- Sprite.py9 kB
- Glyph.py4 kB
- SmashcimaLabels.py2 kB
- ViewBox.py411 B
- AffineSpace.py1 kB
- LabeledRegion.py696 B
- Scene.py2 kB
- SceneObject.py6 kB
- visual
- StaffVisual.py1 kB
- AugmentationDot.py903 B
- LedgerLine.py1 kB
- StaffCoordinateSystem.py807 B
- SystemMeasure.py867 B
- NoteheadSide.py246 B
- Flag.py438 B
- Stem.py1 kB
- BeamCoordinateSystem.py2 kB
- RestVisual.py3 kB
- Beam.py823 B
- System.py716 B
- Accidental.py467 B
- Notehead.py1 kB
- Page.py645 B
- StaffMeasure.py1 kB
- BeamHook.py898 B
- __init__.py599 B
- __init__.py955 B
- LineGlyph.py1 kB
- Region.py1 kB
- config.py536 B
- random_between.py230 B
- orchestration
- Model.py4 kB
- Container.py2 kB
- BaseHandwrittenModel.py8 kB
- __init__.py167 B
- geometry
- __init__.py242 B
- Point.py862 B
- Transform.py3 kB
- Quad.py1 kB
- Polygon.py1 kB
- units.py575 B
- Contours.py824 B
- Vector2.py2 kB
- Rectangle.py4 kB
- _version.py109 B
- exporting
- DebugGlyphRenderer.py868 B
- BitmapRenderer.py5 kB
- __init__.py131 B
- SvgExporter.py7 kB

- Name
- Smashcima-1.0.0.tar.gz
- Size
- 3.14 MB
- Format
- application/x-gzip
- Description
- Smashcima release v1.0
- MD5
- 74dc6d6fd36de8293c6d6cf73f6863ce
- Smashcima-1.0.0
- README.md5 kB
- .gitignore3 kB
- tests
- __main__.py293 B
- __init__.py0 B
- scene
- NameofViaDummyTest.py564 B
- SceneObjectRelationshipQueriesTest.py4 kB
- __init__.py0 B
- orchestration
- ContainerTest.py3 kB
- __init__.py0 B
- Makefile1 kB
- jupyter
- layout_synthesis
- beams.ipynb1 kB
- duration_dots.ipynb1 kB
- stems.musicxml11 kB
- ledger_lines.ipynb1 kB
- rests.musicxml11 kB
- flags.musicxml9 kB
- rests.ipynb1 kB
- notehead_placement.musicxml30 kB
- accidentals.musicxml15 kB
- stems.ipynb1 kB
- beams.musicxml28 kB
- duration_dots.musicxml9 kB
- notehead_placement.ipynb1 kB
- accidentals.ipynb1 kB
- ledger_lines.musicxml17 kB
- flags.ipynb1 kB
- dev
- mxl_loader.ipynb1 kB
- base_handwritten_model.ipynb1 kB
- exporting
- bitmap_rendering.ipynb2 kB
- svg_exporting.ipynb2 kB
- assets
- muscima_pp
- assets.ipynb1 kB
- glyphs_zoo.ipynb6 kB
- glyphs.ipynb1 kB
- README.ipynb4 kB
- muscima_pp
- docs
- tutorial-2.ipynb3 kB
- tutorial-3.ipynb5 kB
- scene-objects.ipynb3 kB
- tutorial-1.ipynb1 kB
- affine-spaces-and-rendering.ipynb2 kB
- README.ipynb1 kB
- layout_synthesis
- .vscode
- settings.json125 B
- pyproject.toml1 kB
- Dockerfile978 B
- docs
- todo-list.md2 kB
- 02_models-and-service-orchestration.md13 kB
- 04_affine-objects-and-rendering.md10 kB
- pdf
- smashcima-technical-documentation.pdf1 MB
- smashcima-user-documentation.pdf1 MB
- 07_glyph-synthesizer.md6 kB
- tutorials
- 2-changing-background-texture.md5 kB
- 3-using-custom-glyphs.md9 kB
- 1-producing-music-notation-images.md4 kB
- 0_introduction.md4 kB
- assets
- readme-example.jpg66 kB
- logo-large.png301 kB
- ufal-logo.pdf3 kB
- line-glyphs
- smufl_stem.png403 B
- smashcima_ledgerLine.png191 B
- smashcima_beamHook.png176 B
- smufl_brace.png2 kB
- smashcima_beam.png271 B
- smufl_bracket.png3 kB
- omniomr-logo.png161 kB
- tutorial-3
- red-circles_thumb.jpg43 kB
- scene-objects
- note-list-graph.png41 kB
- containers-graph.png79 kB
- note-color-graph.png21 kB
- glyphs
- smufl_accidentalFlat.png414 B
- smufl_rest8th.png434 B
- smufl_accidentalDoubleSharp.png252 B
- smufl_fClef.png712 B
- smufl_noteheadWhole.png301 B
- smufl_flag8thDown.png291 B
- smufl_restQuarter.png401 B
- smufl_flag8thUp.png305 B
- smufl_accidentalSharp.png641 B
- smufl_timeSigCommon.png449 B
- smufl_timeSig2.png350 B
- smufl_restWhole.png278 B
- smufl_flag16thDown.png377 B
- smufl_flag16thUp.png321 B
- smufl_augmentationDot.png106 B
- smufl_noteheadBlack.png202 B
- smufl_timeSig4.png428 B
- smufl_gClef.png1 kB
- smufl_restHalf.png233 B
- smufl_cClef.png1 kB
- smufl_rest16th.png459 B
- smufl_accidentalNatural.png395 B
- smufl_articStaccatoBelow.png122 B
- smashcima-logo.svg26 kB
- tutorial-1
- page_1_thumb.jpg38 kB
- page_0_thumb.jpg33 kB
- page_0_svg.jpg42 kB
- lc5003150.musicxml170 kB
- smashcima-logo.png81 kB
- 09_line-glyphs.md1 kB
- 03_scene-objects.md16 kB
- 05_synthesizer-interfaces.md2 kB
- build-deliverable
- process_readme.sh1 kB
- pandoc_smashcima_template.latex13 kB
- build_user_documentation.sh1 kB
- defaults.yaml372 B
- build_technical_documentation.sh1 kB
- 08_glyphs.md3 kB
- 06_column-layout-synthesizer.md2 kB
- 00_introduction.md3 kB
- 01_design-overview.md5 kB
- checklists
- deploying-gradio-demo.md1 kB
- publishing-to-pypi.md1 kB
- before-commit.md206 B
- gradio_demo
- __main__.py3 kB
- DemoModel.py1 kB
- utils.py575 B
- __init__.py0 B
- asset_bundles.py1 kB
- testing
- .gitignore25 B
- input.mscz3 kB
- input.musicxml5 kB
- LICENSE11 kB
- smashcima
- __init__.py879 B
- jupyter
- __init__.py0 B
- display_glyphs.py1 kB
- display_scene_graph.py3 kB
- loading
- load_score.py1 kB
- MusicXmlLoader.py23 kB
- __init__.py78 B
- synthesis
- style
- StyleDomain.py782 B
- MuscimaPPStyleDomain.py1 kB
- MzkPaperStyleDomain.py1 kB
- __init__.py172 B
- Styler.py1 kB
- layout
- column
- Column.py1 kB
- __init__.py0 B
- BarlinesColumn.py1 kB
- ColumnBase.py4 kB
- ClefsColumn.py2 kB
- ColumnLayoutSynthesizer.py16 kB
- Skyline.py3 kB
- EventColumn.py2 kB
- AugmentationDotsColumn.py7 kB
- NoteheadsColumn.py12 kB
- RestsColumn.py4 kB
- AccidentalsColumn.py4 kB
- __init__.py121 B
- BeamStemSynthesizer.py13 kB
- column
- glyph
- MuscimaPPLineSynthesizer.py2 kB
- __init__.py183 B
- MuscimaPPGlyphSynthesizer.py4 kB
- NaiveLineSynthesizer.py1 kB
- __init__.py330 B
- GlyphSynthesizer.py2 kB
- page
- SolidColorPaperSynthesizer.py1 kB
- Quilter.py5 kB
- PaperSynthesizer.py633 B
- __init__.py364 B
- NaiveStafflinesSynthesizer.py3 kB
- StafflinesSynthesizer.py901 B
- MzkQuiltingPaperSynthesizer.py1 kB
- SimplePageSynthesizer.py3 kB
- LineSynthesizer.py3 kB
- style
- assets
- textures
- mzk_paper_patches.csv637 B
- __init__.py0 B
- MzkPaperPatches.py3 kB
- download_file.py1 kB
- AssetBundle.py3 kB
- glyphs
- muscima_pp
- __init__.py0 B
- __main__.py743 B
- get_symbols.py25 kB
- MppPage.py3 kB
- get_line_endpoints.py1 kB
- PointCloud.py789 B
- MppGlyphMetadata.py1 kB
- LineList.py1 kB
- SymbolRepository.py2 kB
- MuscimaPPGlyphs.py5 kB
- PackedGlyph.py1 kB
- __init__.py0 B
- muscima_pp
- datasets
- MuscimaPP.py1 kB
- __init__.py0 B
- AssetRepository.py2 kB
- textures
- scene
- ScenePoint.py1 kB
- SmuflLabels.py11 kB
- nameof_via_dummy.py617 B
- semantic
- Pitch.py3 kB
- ScoreEvent.py1 kB
- TimeSignature.py972 B
- Note.py339 B
- BeamValue.py318 B
- RestSemantic.py380 B
- Event.py1 kB
- ClefSign.py297 B
- StaffSemantic.py778 B
- Clef.py2 kB
- Score.py3 kB
- ScoreMeasure.py1 kB
- Chord.py2 kB
- BeamedGroup.py2 kB
- TypeDuration.py1 kB
- MeasureRest.py691 B
- AttributesChange.py929 B
- Part.py2 kB
- AccidentalValue.py427 B
- Attributes.py2 kB
- KeySignature.py551 B
- Measure.py3 kB
- Durable.py669 B
- __init__.py798 B
- StemValue.py616 B
- ComposedGlyph.py3 kB
- AffineSpaceVisitor.py1 kB
- Sprite.py9 kB
- Glyph.py4 kB
- SmashcimaLabels.py2 kB
- ViewBox.py411 B
- AffineSpace.py1 kB
- LabeledRegion.py696 B
- Scene.py2 kB
- SceneObject.py6 kB
- visual
- StaffVisual.py1 kB
- AugmentationDot.py903 B
- LedgerLine.py1 kB
- StaffCoordinateSystem.py807 B
- SystemMeasure.py867 B
- NoteheadSide.py246 B
- Flag.py438 B
- Stem.py1 kB
- BeamCoordinateSystem.py2 kB
- RestVisual.py3 kB
- Beam.py823 B
- System.py716 B
- Accidental.py467 B
- Notehead.py1 kB
- Page.py645 B
- StaffMeasure.py1 kB
- BeamHook.py898 B
- __init__.py599 B
- __init__.py955 B
- LineGlyph.py1 kB
- Region.py1 kB
- config.py536 B
- random_between.py230 B
- orchestration
- Model.py4 kB
- Container.py2 kB
- BaseHandwrittenModel.py8 kB
- __init__.py167 B
- geometry
- __init__.py242 B
- Point.py862 B
- Transform.py3 kB
- Quad.py1 kB
- Polygon.py1 kB
- units.py575 B
- Contours.py824 B
- Vector2.py2 kB
- Rectangle.py4 kB
- _version.py109 B
- exporting
- DebugGlyphRenderer.py868 B
- BitmapRenderer.py5 kB
- __init__.py131 B
- SvgExporter.py7 kB
- pax_global_header52 B

- Name
- Smashcima-1.0.0_technical-documentation.pdf
- Size
- 1.39 MB
- Format
- Description
- Technical documentation for Smashcima v1.0
- MD5
- 40817424d4d0dd806be711701b8e9592

- Name
- Smashcima-1.0.0_user-documentation.pdf
- Size
- 1.15 MB
- Format
- Description
- User documentation for Smashcima v1.0
- MD5
- 52b2c8a12088537d8d5673c877a223dd