Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

**harm spine import errors out on unrecognized token

Abierto
#1,655 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
28/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
data

Línea de trabajo

Start with the humdrum harm-token handling in music21/humdrum/harmparser.py, where the parser returns None for unrecognized tokens (around line 66), and reproduce by parsing the linked .krn file with converter.parse(format='humdrum'). Done means an unrecognized **harm token no longer raises, and the maintainers have settled whether the fix is a default object, an opt-out setting, or keeping the raw token string, since the issue lists all three without choosing. The thread has no replies and the issue is over three years old, so confirm the approach with a maintainer before writing code.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

music21 version

8.3.0

Problem summary

Steps to reproduce

import music21
path = 'https://raw.githubusercontent.com/jcdevaney/TAVERN/master/Beethoven/B068/Joined/B068_00_01a_a.krn'
score = music21.converter.parse(path, format='humdrum')   # raises type error

Expected vs. actual behavior
I would expect the **harm spine parser to either not run by default or to handle unrecognized symbols without raising an error. If running the parser remains the default, perhaps there could be a setting that lets us not run the parser.

More information
This was run on a mac m1. An easy fix would be to have some sort of handling of unrecognized chord symbols. This line currently returns None which is fine but the final result of an unrecognized token should be some kind of default or empty music21 roman object.
The reason the score linked to above doesn't process is because it encodes the duration information into the chord tokens as well which is a relatively common thing to do in humdrum. In my case, I am not even using the results of the HarmParser. Instead I use music21's tools for reading any spine and take the **harm tokens as they are. But even doing it this way does not work without editing the score to remove the durations and occasional other unrecognized tokens.
Ideally there would be:

  1. a default value for unrecognized tokens
  2. a way to omit automatic parsing of **harm spines
  3. a bit of a side-quest, but it seems like you should be able to access the original **harm token's string no matter how it eventually gets represented (like the .contents attribute of objects in spine.eventList)
Lenguaje dominante
Python
Estrellas
2.6k
Forks
459
Merge medio
1 d 7 h
PR fusionados (30 d)
40

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cuthbertLab/music21

Todos los issues de cuthbertLab/music21

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.