Arnes Forum Forum Index Arnes Forum
back to mainsite / zurück zur Hauptseite
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Midi Prozessor zum Spiegeln des Keyboards für Linkshänder

 
Post new topic   Reply to topic    Arnes Forum Forum Index -> Midi Mirror / Prozessor
View previous topic :: View next topic  
Author Message
Arne



Joined: 08 Apr 2002
Posts: 191
Location: BS <-> NDH

PostPosted: Thu Oct 27, 2005 8:32 am    Post subject: Midi Prozessor zum Spiegeln des Keyboards für Linkshänder Reply with quote

Ich baue gerade am Prototyp.

Als Prozessor einen kleinen AVR und die Software in AVR-GCC.
Mein Prototyp lauft schon ich will aber noch weitere Funktionen zum Transponieren einbauen.

Arne
Back to top
Borg Number One



Joined: 10 Sep 2005
Posts: 34

PostPosted: Wed Jan 11, 2006 11:30 pm    Post subject: Reply with quote

Kleiner Tip/Grund-Idee:

+ Die Werte aller Notation-basierenden MIDI-Messages umkehren.
-->Aus links wird rechts.
Z.B. wenn die Werte von moeglichen Notationen im Bereich von 0-64 liegen (habe jetzt nicht die MIDI-Spezifikationen vorliegen), dann wird aus der
0 eine 64,
1 eine 63,
2 eine 62,
3 eine 61,
4 eine 60,
...
63 eine 1,
64 eine 0.


+ Alle anderen MIDI-Messages nicht umkehren.


Dieser Vorschlag bzw. diese Idee laesst sich mit einer Wahrheitstabelle realisieren und auch optimieren. Smile
_________________
BNOBTC & BNOBLG

Borg Number One's:

+ BIOS Tool collection
+ BIOS modifications
+ BIOS Logo gallery

http://bnobtc.pix-art.com
Back to top
Arne



Joined: 08 Apr 2002
Posts: 191
Location: BS <-> NDH

PostPosted: Thu Jan 12, 2006 2:18 pm    Post subject: Reply with quote

Ich Invertiere den Wert für KEY und addiere ein Offset von -3. Dies ist nötig damit die Tastatur um das mitlere D gespiegelt wird.

Code:


//Receive Interruptroutine
SIGNAL(SIG_UART_RECV)      // signal handler for receive complete interrupt
{
 unsigned char x;
 x=UDR;
 
 if (x>127) //New Status
 {
   status=x;
   bcnt=0;
 }
 else
 {
   if (((status&0xF0)==0xA0||(status&0xE0)==0x80)) //Key on/off & Poly
   {
     bcnt++;
     if ((bcnt&1)==1)
     {
       if (tmode[status&0x0F]>127) x=127-x;        //Mirror
       x=(x+(tmode[status&0x0F]&127))&127;         //Transpose
     }
   }

   if (((status&0xF0)==0xB0))                      //Controller
   {
     bcnt++;
     if ((bcnt&1)==0)
     {
      if (lastbyte==0x54)          //Controller 84 Portamento Control
      {
         if (tmode[status&0x0F]>127) x=127-x;    //Mirror
         x=(x+(tmode[status&0x0F]&127))&127;     //Transpose
      }
     }
   }

   if (((status&0xF0)==0xE0))                    //Pitch Bend
   {
     bcnt++;
       if (tmode[status&0x0F]>127) x=127-x;      //Mirror
   }
 }
 lastbyte=x;
 ser_putc(x);
}
Back to top
Arne



Joined: 08 Apr 2002
Posts: 191
Location: BS <-> NDH

PostPosted: Wed May 03, 2006 6:06 pm    Post subject: Reply with quote

Dieses Projekt hängt im Moment. Dies wird denke auch eine weile so bleiben. Die eigentlichen Midi-Funktionen laufen aber für ein brauchbares Menu reicht der Speicher meines 90S2313 nicht mehr. Jetzt hab ich zwei Möglichkeiten.

  1. Das Programm in Assembler neu Schreiben
  2. die Hardware mit einen größeren Kontroller (z.B. MEGA8) neu aufbauen

Im Moment tendiere ich zur zweiten Möglichkeit.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Arnes Forum Forum Index -> Midi Mirror / Prozessor All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group