Skip to content

Comments

feat: Add comprehensive implementation example for Kurzweil SP76II with velocity sensitivity curves#18

Merged
oxesoft merged 12 commits intooxesoft:masterfrom
seiler-emerson:kurzweil_sp76ii
Jan 9, 2026
Merged

feat: Add comprehensive implementation example for Kurzweil SP76II with velocity sensitivity curves#18
oxesoft merged 12 commits intooxesoft:masterfrom
seiler-emerson:kurzweil_sp76ii

Conversation

@seiler-emerson
Copy link
Contributor

Hi there!

First of all, thank you for this amazing project! It was the foundation for my own MIDI controller and a great source of learning.

I've just finished a implementation for my Kurzweil SP76II keyboard and wanted to contribute it back to the community. To keep things clean and non-invasive, I've placed all my work inside a dedicated folder (kurzweil_sp76ii).

This contribution includes:

A refactored, modular version of the scanner code.

Implementation of 4 selectable velocity sensitivity curves.

A detailed, step-by-step README.md file inside the folder, explaining the entire process for this keyboard.

The only change to the root of the project is a small addition to the main README.md, adding a new "Community Implementations" section that points to this new implementation example. I believe this can be a valuable resource for other users, just like Leandro Meucchi's PDF was.

Thank you for your time and consideration. I'm looking forward to your feedback!

Best regards,
Emerson Seiler

@seiler-emerson
Copy link
Contributor Author

Hi Daniel, I hope you're having a blessed week.

Just a reminder to take a look at this PR when you have some time. I'm very excited about the possibility of adding this Kurzweil implementation example to the project.

I'm available to make any changes or provide more information if needed.

Thank you for your time and consideration!

@oxesoft
Copy link
Owner

oxesoft commented Oct 15, 2025

Hi, Emerson! First, I really appreciate your submision. Actions like yours are very important. For that reason, I let to work on this in a moment that I have total focus, what wasn't possible yet. Anyways, as you put yourself available to make changes, I'll put some comments now. :-)

@seiler-emerson
Copy link
Contributor Author

Hi Daniel, thanks for the feedback!
I just submitted some new commits fixing the issues you requested.
Let me know if there's anything else! Thank you very much.

@Filipe-QuickFlip
Copy link

Congratulations on the PR, @seiler-emerson. The implementation and modular structure look excellent. The addition of velocity curves adds significant value, especially for those seeking a more realistic key response, The documentation is also very clear, making it much easier for anyone wanting to use this as a base for other keyboards. Great contribution!

@oxesoft
Copy link
Owner

oxesoft commented Jan 6, 2026

Olá, Emerson! Em bom português, enfim, parei para fazer a refatoração que o código merece. Após suas adições, se fez necessário criar o conceito de "models", onde cada modelo de teclado contém apenas o que é referente ao mesmo, como número de teclas, seu padrão de pinos e a devida documentação.
Eu queria tua ajuda para testar o código, pois não tenho mais nem o Arduino Mega nem um módulo de teclado fácil (os dois que tive doei há anos). A parte dos potenciômetros eu não evoluí. Vi que ainda precisa ser trabalhada, mas o código está como você fez, apenas com cada variável em seu devido módulo. Quando você confirmar que o básico está funcional, me avisa para eu integrar o pull request na linha principal.

@oxesoft
Copy link
Owner

oxesoft commented Jan 8, 2026

Criei alguns testes unitários juntamente com um mockup do Arduino que dão segurança após refatorações com indisponibilidade do hardware.

@oxesoft
Copy link
Owner

oxesoft commented Jan 8, 2026

Estou trabalhando na implementação dos potenciômetros.

@seiler-emerson
Copy link
Contributor Author

Olá Daniel. Obrigado pelo retorno.
Estou sem o teclado, irei pegá-lo esta noite e amanhã inicio os testes.
Sobre os potenciômetros, havia descartado eles do meu projeto, preciso ver o que tenho de material para validá-los.

@oxesoft
Copy link
Owner

oxesoft commented Jan 8, 2026

Além de estar fazendo testes unitários que garantam o correto funcionamento, também pretendo comprar o material necessário para validar tudo na prática. Tenho um M-Audio Keystation 88 cuja placa controladora já está nas últimas (corrosão que causa comportamentos aleatórios). É o momento certo de trocar por um Arduino Mega. 🙂

@seiler-emerson
Copy link
Contributor Author

O Keystation é o candidato perfeito para essa nova fase do projeto. Inclusive, há plugins muito interessantes hoje em dia para testar, como o Numa Player 2.

​Sobre os testes, eu não tenho mais o teclado do projeto nem o Arduino Mega comigo, mas vou pegá-los emprestados para realizar as validações que você pediu.

​Além disso, tenho as teclas de um Axiom Pro e um conjunto Fatar TP40 (88 teclas). Meu plano para o TP40 é usar um STM32 para testar o Midibox, pois já tenho as peças aqui.

​Para o Axiom, vou esperar um momento mais oportuno para comprar o Arduino Mega (com 16u2), pois os preços estão um pouco elevados e, como estou em fase de recolocação profissional, estou priorizando o controle de gastos.

@oxesoft
Copy link
Owner

oxesoft commented Jan 9, 2026

Fiz a implementação inicial dos potenciômetros.

@oxesoft
Copy link
Owner

oxesoft commented Jan 9, 2026

Como as funcionalidades estão agora minimamente cobertas por testes unitários considero que está bom o suficiente para fazer o merge na linha principal. Caso encontremos bugs, sigamos o fluxo de novos pull requests.

@oxesoft oxesoft merged commit 984e276 into oxesoft:master Jan 9, 2026
@seiler-emerson
Copy link
Contributor Author

Fiz um teste preliminar, sem os potenciômetros, está funcionando. Entretanto, a resposta às curvas não ficou tão suave quanto antes. Vou investigar melhor o que está causando isso.

@seiler-emerson
Copy link
Contributor Author

Obrigado pela aprovação do PR 🙏🏼

@oxesoft
Copy link
Owner

oxesoft commented Jan 9, 2026

Talvez possamos regerar as curvas. Vou tentar plotar elas para investigar.

@oxesoft
Copy link
Owner

oxesoft commented Jan 28, 2026

Emerson, tente o código atualizado. Atenção ao valor máximo da velocidade, que deve ficar na faixa de 20 a 30 milisegundos para um bom resultado.

@seiler-emerson
Copy link
Contributor Author

Obrigado Daniel, estou aguardando meu arduino chegar, está em transporte. Em breve lhe retorno.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants