Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

MIDI Pick-up Mode: the rapid-movement branch is unreachable

Aberta
#3,942 2 comentários 0 reações 0 responsáveis Ver no GitHub

@mcfnord já está trabalhando nisso.

Desde 25/7/2026.

  • #3835 de @mcfnord — aberto

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
76/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
cpp
Domínio
audio-video-rtc

Direção de pesquisa

Comece em src/audiomixerboard.cpp, em midiPickupTryApply, no ramo de cruzamento, em prevMidi e no local onde são chamados; leia o texto de ajuda de Pick-up Mode em src/clientsettingsdlg.cpp para entender o comportamento pretendido. Rastreie as atualizações do histórico e a seleção da amostra anterior; em seguida, valide que movimentos rápidos que delimitam estritamente sejam tratados, enquanto a janela de tolerância existente permanece correta.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

🤖 AI: Pick-up Mode's rapid-movement handling never executes. Its help text promises a control waits until the physical controller matches the software value, and an inner branch exists to also catch a controller swept fast enough that its values "skip over" that value. That branch is unreachable, for two independent reasons.

midiPickupTryApply returns before appending to the history buffer, so while a control is armed the buffer stays empty and the size() >= 2 guard in front of the crossing test never holds. Independently, prevMidi reads back(), while the sole call site has already pushed the incoming sample onto that same buffer — so prevMidi is the incoming sample, and the bracket test reduces to midiValue == currentValue, which the tolerance check above it has already accepted.

Driving those helpers verbatim across every strictly-bracketing two-sample crossing of the fader range, both samples outside the tolerance: on ee40cfe2, 0 of 147,440 pick up. Repairing either defect alone leaves 0. Repairing both gives 147,440. What remains on stock is the tolerance window by itself — armed at fader 50, 5 of 101 controller positions are accepted, 48 through 52 — so a fader swept briskly steps over the window and stops responding, which is the case the unreachable branch was written for.

Present since the MIDI GUI PR.

🤖 This message was written by AI and reviewed by @mcfnord.

Linguagem predominante
C
Estrelas
1.1k
Forks
250
Merge médio
7d 7h
PRs com merge (30d)
2

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de jamulussoftware/jamulus

Todas as issues de jamulussoftware/jamulus

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.