SISTEMA PARA ALTERAR CIFRA DE MUSICA.

CHRISTIANPIRUS 27/03/2010 10:59:35
#338030
Bom dia!
como posso fazer um editor de cifras em VB6 ou alguma dica que possa substituir por exemplo dentro de um richtextbox um acorde por outro sem alterar o restante do texto, ou seja, substituir o acorde C sem substituir todas as outras letras [Ô]c[Ô] que estão no letra da música?
Ex:
acordes- C Dm F G
letra - Letra da música e acima os acordes sempre em maiúsculo

após a mudança deverá ficar assim
acordes- D Em G A
letra - Letra da música e acima os acordes sempre em maiúsculo

Exatamente como tem nos sites de cifras de músicas.
Se alguem puder me ajudar eu agradeço.
ALEXPASSOS 27/03/2010 11:20:44
#338031
Olá

pra alterar o acorde C e não alterar os outros C do texto...... eu faria o seguinte

colocaria os acordes em variáveis e carregaria junto com o texto na hora..... e fosse alterado o tom da música mudaria as notas das variáveis e carregaria de novo. Eu fiz isso em sistema de laudo médico e funcionou.

Quanto ao trocar o tom da música.... eu penso que poderia cadastrar previamente os tons... exemplo

Original 1/2 tom 1 tom 2 tom 3 tom 4 tom 5 tom
C (dó) C# D E F# G# A#

ai vc verificaria com o original e vai aumentando e claro tem que limitar até onde pode aumentar se for C só pode ir até o B... porque ai já rodou todas os tons.

claro que isso é uma ideia.... tem que colocar na pratica pra ver se funciona.
TECLA 27/03/2010 11:35:49
#338033
Como será feita a substituição de acorde?
CHRISTIANPIRUS 27/03/2010 15:15:53
#338044
Alex Passos,

Obrigado pela dica, mas, não querendo abusar, poderia postar um pequeno código como exemplo?
CHRISTIANPIRUS 27/03/2010 16:24:08
#338046
Utilizando a música postada pelo TECLA

Original:
[txt-color=#0000f0]F7M G7/6
Olha que coisa mais linda, mais cheia de graça
Gm7
é ela a menina que vem e que passa
C7(9-) Am7(11) Ab7(11+) Gm7(11) Gb7(11+)
Num doce balanço, caminho do mar
[/txt-color]
Aumentado em 1/2 tom:
[txt-color=#0000f0]F#7M G#7/6
Olha que coisa mais linda, mais cheia de graça
G#m7
é ela a menina que vem e que passa
C#7(9-) A#m7(11) A7(11+) G#m7(11) G7(11+)
Num doce balanço, caminho do mar [/txt-color]

Pensei em usar o replace, mas como evitar que alguma letra da música seja substituída por engano?
Obs: As letras referentes aos acordes que precisam ser substituídas são [Ô]A[Ô], [Ô]B[Ô], [Ô]C[Ô], [Ô]D[Ô], [Ô]E[Ô], [Ô]F[Ô], e [Ô]G[Ô] e também [Ô]b[Ô] (bemol) e [Ô]#[Ô](sustenido).
MKING 27/03/2010 19:19:00
#338057
cara, inicialmente da pra fazer uma [Ô]gambiarra[Ô] , tipo vc pode marcar toda variavel que for nota com um asterisco por exemplo, [Ô]*A[Ô], [Ô]*B[Ô], [Ô]*C[Ô], [Ô]*D[Ô], [Ô]*E[Ô], [Ô]*F[Ô], [Ô]*G[Ô], [Ô]*b[Ô] (bemol) e [Ô]*#[Ô](sustenido).

Na hora de dar um replace em todas as notas para subir ou descer um tom vc sabera que as notas que devem ser alteradas possuem o * como demarcação, assim não irá alterar a letra da música, e na hora de exibir em tela vc utiliza novamente o replace e joga o valor em uma variavel local, utilizada somente para isso, exibir em tela.

é um workaround , mas pode te ajudar. eu acho.....
CHRISTIANPIRUS 29/03/2010 10:57:35
#338108
Depois de uma pesquisa na internet encontrei um programa que faz o transpose da cifra. Chama-se [Ô]Chord Transpose 1.1[Ô] (freeware) e também tem o [Ô]Decifra2[Ô] (Pago).
O problema do Chord Transpose é que só trabalha com arquivos [Ô].txt[Ô] e na hora de fazer a substituição da cifra acaba alterando alguma parte da letra da música.Exatamente o que eu queria evitar. O Decifra, sem comprar a licença só permite a visualização, o que na minha opnião dificulta a avaliação.
Por enquanto vou utilizar o Chord Tanspose mesmo, mas continuo aguardando alguma dica e se possível exemplo de como fazer, pois tenho pouco conhecimento em VB6.
Tópico encerrado , respostas não são mais permitidas