neoscore.western.notehead_tables

Tables of glyphs for common notehead styles This module includes prebuilt NoteheadTables for many notehead flavors included in SMuFL. Custom tables using arbitrary SMuFL glyphs may also be created by simply instantiating a NoteheadTable and passing it wherever needed.

Note that many of the more obscure glyph tables only have a solid and empty variant, for example MOON. In these cases, the empty glyph is used for all except the short key, for which the solid glyph is used.

class neoscore.western.notehead_tables.NoteheadTable[source]

Bases: object

A mapping from duration classes to canonical SMuFL glyph names.

double_whole: str
whole: str
half: str
short: str

Quarter notes and shorter

lookup_duration(base_division: int) str[source]

Given a base division, return the required glyph to represent it.

Assumes base_division is 0 or a power of 2.

__init__(double_whole: str, whole: str, half: str, short: str) None
neoscore.western.notehead_tables.STANDARD = NoteheadTable(double_whole='noteheadDoubleWhole', whole='noteheadWhole', half='noteheadHalf', short='noteheadBlack')

Standard western notation noteheads

neoscore.western.notehead_tables.STANDARD_WITH_PARENTHESES = NoteheadTable(double_whole='noteheadDoubleWholeParens', whole='noteheadWholeParens', half='noteheadHalfParens', short='noteheadBlackParens')

Standard noteheads enclosed in parentheses.

Not available in all fonts.

neoscore.western.notehead_tables.STANDARD_SMALL = NoteheadTable(double_whole='noteheadDoubleWholeSmall', whole='noteheadWholeSmall', half='noteheadHalfSmall', short='noteheadBlackSmall')

Standard noteheads at a smaller size.

Not available in all fonts.

neoscore.western.notehead_tables.STANDARD_OVERSIZED = NoteheadTable(double_whole='noteheadDoubleWholeOversized', whole='noteheadWholeOversized', half='noteheadHalfOversized', short='noteheadBlackOversized')

Standard noteheads at a larger size.

Not available in all fonts.

neoscore.western.notehead_tables.X = NoteheadTable(double_whole='noteheadXDoubleWhole', whole='noteheadXWhole', half='noteheadXHalf', short='noteheadXBlack')
neoscore.western.notehead_tables.SLASH = NoteheadTable(double_whole='noteheadSlashWhiteDoubleWhole', whole='noteheadSlashWhiteWhole', half='noteheadSlashWhiteHalf', short='noteheadSlashVerticalEnds')

Percussion-style slash noteheads.

This uses SMuFL’s vertical-ends-style short notehead.

neoscore.western.notehead_tables.MUTED_SLASH = NoteheadTable(double_whole='noteheadSlashWhiteDoubleWhole', whole='noteheadSlashWhiteMuted', half='noteheadSlashWhiteMuted', short='noteheadSlashVerticalEndsMuted')

Percussion-style slash noteheads with secondary slashes indicating mutes.

Because SMuFL provides no muted variant for double whole notes, this uses the regular slash double whole notehead.

neoscore.western.notehead_tables.SLASH_OVERSIZED = NoteheadTable(double_whole='noteheadSlashWhiteDoubleWholeOversized', whole='noteheadSlashWhiteWholeOversized', half='noteheadSlashWhiteHalfOversized', short='noteheadSlashVerticalEndsOversized')

Like SLASH but with oversized variants.

Not available in all fonts.

neoscore.western.notehead_tables.MUTED_SLASH_OVERSIZED = NoteheadTable(double_whole='noteheadSlashWhiteDoubleWholeOversized', whole='noteheadSlashWhiteMutedOversized', half='noteheadSlashWhiteMutedOversized', short='noteheadSlashVerticalEndsMutedOversized')

Like MUTED_SLASH but with oversized variants.

Not available in all fonts.

neoscore.western.notehead_tables.PLUS = NoteheadTable(double_whole='noteheadPlusDoubleWhole', whole='noteheadPlusWhole', half='noteheadPlusHalf', short='noteheadPlusBlack')
neoscore.western.notehead_tables.CIRCLE_X = NoteheadTable(double_whole='noteheadCircleXDoubleWhole', whole='noteheadCircleXWhole', half='noteheadCircleXHalf', short='noteheadCircleX')
neoscore.western.notehead_tables.STANDARD_WITH_X = NoteheadTable(double_whole='noteheadDoubleWholeWithX', whole='noteheadWholeWithX', half='noteheadHalfWithX', short='noteheadVoidWithX')
neoscore.western.notehead_tables.SQUARE = NoteheadTable(double_whole='noteheadSquareWhite', whole='noteheadSquareWhite', half='noteheadSquareWhite', short='noteheadSquareBlack')
neoscore.western.notehead_tables.TRIANGLE_UP = NoteheadTable(double_whole='noteheadTriangleUpDoubleWhole', whole='noteheadTriangleUpWhole', half='noteheadTriangleUpHalf', short='noteheadTriangleUpBlack')
neoscore.western.notehead_tables.TRIANGLE_LEFT = NoteheadTable(double_whole='noteheadTriangleLeftWhite', whole='noteheadTriangleLeftWhite', half='noteheadTriangleLeftWhite', short='noteheadTriangleLeftBlack')
neoscore.western.notehead_tables.TRIANGLE_RIGHT = NoteheadTable(double_whole='noteheadTriangleRightWhite', whole='noteheadTriangleRightWhite', half='noteheadTriangleRightWhite', short='noteheadTriangleRightBlack')
neoscore.western.notehead_tables.TRIANGLE_DOWN = NoteheadTable(double_whole='noteheadTriangleDownDoubleWhole', whole='noteheadTriangleDownWhole', half='noteheadTriangleDownHalf', short='noteheadTriangleDownBlack')
neoscore.western.notehead_tables.TRIANGLE_UP_RIGHT = NoteheadTable(double_whole='noteheadTriangleUpRightWhite', whole='noteheadTriangleUpRightWhite', half='noteheadTriangleUpRightWhite', short='noteheadTriangleUpRightBlack')
neoscore.western.notehead_tables.TRIANGLE_ROUND_DOWN = NoteheadTable(double_whole='noteheadTriangleRoundDownWhite', whole='noteheadTriangleRoundDownWhite', half='noteheadTriangleRoundDownWhite', short='noteheadTriangleRoundDownBlack')
neoscore.western.notehead_tables.MOON = NoteheadTable(double_whole='noteheadMoonWhite', whole='noteheadMoonWhite', half='noteheadMoonWhite', short='noteheadMoonBlack')
neoscore.western.notehead_tables.PARENTHESIS = NoteheadTable(double_whole='noteheadParenthesis', whole='noteheadParenthesis', half='noteheadParenthesis', short='noteheadParenthesis')

An empty set of parentheses in place of noteheads. All four glyphs are the same.

neoscore.western.notehead_tables.STANDARD_WITH_SLASH_UP = NoteheadTable(double_whole='noteheadSlashedDoubleWhole1', whole='noteheadSlashedWhole1', half='noteheadSlashedHalf1', short='noteheadSlashedBlack1')

Standard noteheads with slashes going from bottom left to top right.

neoscore.western.notehead_tables.STANDARD_WITH_SLASH_DOWN = NoteheadTable(double_whole='noteheadSlashedDoubleWhole2', whole='noteheadSlashedWhole2', half='noteheadSlashedHalf2', short='noteheadSlashedBlack2')

Standard noteheads with slashes going from top left to bottom right.

neoscore.western.notehead_tables.DIAMOND = NoteheadTable(double_whole='noteheadDiamondDoubleWhole', whole='noteheadDiamondWhole', half='noteheadDiamondHalf', short='noteheadDiamondBlack')
neoscore.western.notehead_tables.DIAMOND_WIDE = NoteheadTable(double_whole='noteheadDiamondDoubleWhole', whole='noteheadDiamondWhole', half='noteheadDiamondHalfWide', short='noteheadDiamondBlackWide')

Like DIAMOND but with wider half and short variants

neoscore.western.notehead_tables.DIAMOND_OLD = NoteheadTable(double_whole='noteheadDiamondDoubleWholeOld', whole='noteheadDiamondWholeOld', half='noteheadDiamondHalfOld', short='noteheadDiamondBlackOld')
neoscore.western.notehead_tables.STANDARD_CIRCLED = NoteheadTable(double_whole='noteheadCircledDoubleWhole', whole='noteheadCircledWhole', half='noteheadCircledHalf', short='noteheadCircledBlack')
neoscore.western.notehead_tables.STANDARD_LARGE_CIRCLED = NoteheadTable(double_whole='noteheadCircledDoubleWholeLarge', whole='noteheadCircledWholeLarge', half='noteheadCircledHalfLarge', short='noteheadCircledBlackLarge')

Like STANDARD_CIRCLED but with a larger circle

neoscore.western.notehead_tables.LARGE_ARROW_UP = NoteheadTable(double_whole='noteheadLargeArrowUpDoubleWhole', whole='noteheadLargeArrowUpWhole', half='noteheadLargeArrowUpHalf', short='noteheadLargeArrowUpBlack')
neoscore.western.notehead_tables.LARGE_ARROW_DOWN = NoteheadTable(double_whole='noteheadLargeArrowDownDoubleWhole', whole='noteheadLargeArrowDownWhole', half='noteheadLargeArrowDownHalf', short='noteheadLargeArrowDownBlack')
neoscore.western.notehead_tables.CLUSTER_SQUARE = NoteheadTable(double_whole='noteheadClusterSquareWhite', whole='noteheadClusterSquareWhite', half='noteheadClusterSquareWhite', short='noteheadClusterSquareBlack')

Large tone clusters in square shapes

This uses the same glyph for all durations except short.

neoscore.western.notehead_tables.CLUSTER_ROUND = NoteheadTable(double_whole='noteheadClusterRoundWhite', whole='noteheadClusterRoundWhite', half='noteheadClusterRoundWhite', short='noteheadClusterRoundBlack')

Large tone clusters in round shapes

This uses the same glyph for all durations except short.

neoscore.western.notehead_tables.CLUSTER_SECOND = NoteheadTable(double_whole='noteheadClusterDoubleWhole2nd', whole='noteheadClusterWhole2nd', half='noteheadClusterHalf2nd', short='noteheadClusterQuarter2nd')

Tone cluster glyphs spanning a second

neoscore.western.notehead_tables.CLUSTER_THIRD = NoteheadTable(double_whole='noteheadClusterDoubleWhole3rd', whole='noteheadClusterWhole3rd', half='noteheadClusterHalf3rd', short='noteheadClusterQuarter3rd')

Tone cluster glyphs spanning a third

neoscore.western.notehead_tables.CLUSTER_SECOND_DIAMOND = NoteheadTable(double_whole='noteheadDiamondClusterWhite2nd', whole='noteheadDiamondClusterWhite2nd', half='noteheadDiamondClusterWhite2nd', short='noteheadDiamondClusterBlack2nd')

Tone cluster glyphs spanning a second using diamond glyphs

This uses the same glyph for all durations except short.

neoscore.western.notehead_tables.CLUSTER_THIRD_DIAMOND = NoteheadTable(double_whole='noteheadDiamondClusterWhite3rd', whole='noteheadDiamondClusterWhite3rd', half='noteheadDiamondClusterWhite3rd', short='noteheadDiamondClusterBlack3rd')

Tone cluster glyphs spanning a second using diamond glyphs

This uses the same glyph for all durations except short.

neoscore.western.notehead_tables.INVISIBLE = NoteheadTable(double_whole='', whole='', half='', short='')

Blank non-printing noteheads

neoscore.western.notehead_tables.ALL_TABLES: List[NoteheadTable]

A list of all the notehead tables in this module