Jump to content

Traktorizer - Blog


MTE
 Share

Recommended Posts

Oh geheiligte Götter des Assembler-Durchblicks, möget ihr mir Erleuchtung bringen auf meinem schweren Pfad.. :)

Ich stehe kurz vorm Finishing meines Traktor-Updates, habe meine alte Box neu arrangiert und nun mit 2 Encodern ausgestattet, die via Umschalter Scratchen oder Pitch-Benden sollen..

Hier im Forum stiess ich auf diesen interessanten Topic --> http://www.midibox.org/forum/index.php?topic=5794.0

Ich versuchte nun diesen Code in die MidiboxE Firmware zu integrieren, aber vieles verstehe ich noch nicht so ganz, stehe erst am Anfang meiner Assemblier-Karriere  :)

Ich bekam diese Errors beim quickbuilden

Error[113]  C:\MIDIBOX64E_V2_2-CODE\MAIN.ASM 558 : Symbol not previously defined ENC_PITCH_BEND2)

Error[113]  C:\MIDIBOX64E_V2_2-CODE\MAIN.ASM 567 : Symbol not previously defined (SCRATCH_TIMER)

Error[113]  C:\MIDIBOX64E_V2_2-CODE\MAIN.ASM 571 : Symbol not previously defined (SCRATCH_TIMER)

Error[113]  C:\MIDIBOX64E_V2_2-CODE\MAIN.ASM 606 : Symbol not previously defined (PITCH_BEND_TIMER)/

Hat jemand das eigentlich schon richtig umgesetzt oder is das noch in der Forschung  ??? habe keine wirklichen Hinweise im Forum bisher entdeckt, oder bin ich einfach nur zu blöd zum lesen  ::)  :)

Ich wäre auf jeden Fall seeeeeehr dankbar wenn mir da jemand unter die Arme greifen könnte, vieles erklärt sich von selbst beim programmieren aber manche sachen wollen einfach net in meinen Schädel rein.

Die nächste Frage wäre dann, wie ich den Umschalter von Scratch auf Pitchbend programmiere....aber eins nach dem anderen...

So, ich geh jetz ma Aspirin kaufen und dann wird weitergebüffelt

Grüße

MTE

Link to comment
Share on other sites

  • Replies 231
  • Created
  • Last Reply

Top Posters In This Topic

Error[113]  C:\MIDIBOX64E_V2_2-CODE\MAIN.ASM 558 : Symbol not previously defined ENC_PITCH_BEND2)

...

Tja, wenn ich mir den Code in dem von Dir genannten Thread so anschaue, dann sind diese Varaiablen tatsächlich nicht definiert. Der Code-Schnipsel scheint also unvollständig zu sein. Evtl. kann st Du ja nOne mal eine PM schreiben, ob er Dir seinen Code zukommen lässt.

Gruß,

Raphael

Link to comment
Share on other sites

Jo, habe dem Pay_c gemailt und er gab mir einige Tipps *freu :)

Was mich sehr verwirrt hat und ich durch Zufall auf meinen Fehler stiess war...

In der MB64e-Firmware steht das die Encoder auf die ersten 2 Shiftregister gelegt werden, wäre das laut meinem Bild hier ?

SR.jpg

so hatte ich es ursprünglich gelötet....auf SR2 die Encoder, auf den Rest die Buttons.

Als ich in "Edit Events" den Encoder drehte,stand "Button" drüber....

egal ob ich es in MPASM so

#define DEFAULT_DIN_SR_PIN_01_08 2

#define DEFAULT_DIN_SR_PIN_09_16 3

#define DEFAULT_DIN_SR_PIN_17_24 1

#define DEFAULT_DIN_SR_PIN_25_32 4

#define DEFAULT_DIN_SR_PIN_33_40 9

#define DEFAULT_DIN_SR_PIN_41_48 10

#define DEFAULT_DIN_SR_PIN_49_56 11

#define DEFAULT_DIN_SR_PIN_57_64 12

oder so definiert hatte...

#define DEFAULT_DIN_SR_PIN_01_08 1

#define DEFAULT_DIN_SR_PIN_09_16 2

#define DEFAULT_DIN_SR_PIN_17_24 3

#define DEFAULT_DIN_SR_PIN_25_32 4

#define DEFAULT_DIN_SR_PIN_33_40 9

#define DEFAULT_DIN_SR_PIN_41_48 10

#define DEFAULT_DIN_SR_PIN_49_56 11

#define DEFAULT_DIN_SR_PIN_57_64 12

Nun habe ich die Encoder auf SR6 gelötet (nach obigem Bild) und Firmwaretechnisch so gelassen wie in der ersten Quote.....  Funzt jetzt :)

Um nun richtig Pitchbenden zu können stellt man (laut Pay_c) den Enc-Mode auf "40 +/- speed" oder "00 +/- speed "..... je nach Laune :)

wobei "40 +/- speed" ideal ist....den Enc rückwärts gedreht hat man immer einen Wert von 63.....vorwärts 65...

NUR

im Traktor bleiben die Werte je nach Drehung konstant, d.h. Pitchbend steht dann immer konstant auf + oder -

Wie kriege ich nun den Effekt hin wie man es von üblichen Pioneer-DJ-Playern gewöhnt ist, daß, wenn man das Jogwheel loslässt, das Pichbending aufhört, wäre doch dann der logische Wert des Encoders von 64 oder ?

Müsste man dann doch evtl in die Firmware noch etwas dazubauen ?

Lieben Gruß

MTE

Link to comment
Share on other sites

Ooppsi Daisy   ::)

Hatte ich vergessen, aber ich postete eh nachdem ich dir gemailt hatte LOL...egal, machmer einfach hier weiter     ;D

Auszug aus Pay_c`s Mail : ....hoffe es ist ok wenn ich das poste    :D

Zu dem Benden: Puh... daran hab ich jetzt nicht so wirklich gedacht. Hmm, evtl nen extra Button darauf legen? Der die ganze Geschichte auf Null zieht? Sollte als MIDI-Message oder Traktor-intern kein Problem sein. Mit dem Enc alleine wirst du das nicht hinbekommen, weil der Enc normalerweise nicht merkt, ob er beruehrt wird oder nicht (das sind dann spezielle Encoder mit leitender Oberflaeche, die ueber Kapazitaetsmessungen ausgelesen werden - ist ein weeenig komplizierter, schau dir mal bei Interesse die MBLC an, die dieses Feature fuer bestimmte Motorfader bietet - wie man DAS und OB und mit welchen Bauteilen ins MB64E einbezieht? Kaaaaine Ahnung, sorry).

Traktortechnisch ist das absolut kein Problem, hatte immer bisher mit Buttons gebendet....

Das mit den leitenden Encodern denk ich ist falsch, die Pioneer (oder Denon...whatever)-CD-Player haben ja eine Gummimatte auf dem Jogwheel, d.h. is mal nix via Touch-sensor oder so...

Ne ich glaube die Lösung liegt schon in ner kleinen Programmierung, wie hier beschrieben --> http://www.midibox.org/forum/index.php?topic=5794.0

das bin ich grad am analysieren und gleichzeitig noch assembler lernen *ächz...aber ich denke in ner Woche bin ich schlauer (war in Mathe immer ne Null  ::) )

Grüße

MTE

Link to comment
Share on other sites

Das mit den leitenden Encodern denk ich ist falsch, die Pioneer (oder Denon...whatever)-CD-Player haben ja eine Gummimatte auf dem Jogwheel, d.h. is mal nix via Touch-sensor oder so...

... Nein, das ist nicht falsch. Fast alle Pro-Mixer haben Touch sensitive Encoder... genau so, wie "Pay_C" erklärte.

Man mische der Plastik-Schmelze oder Gummi-Masse bei der Knopf-Herstellung etwas Graphit bei und schon leitet das Zeug genug um eine kapazitive Touch-Funktion damit steuern zu können.

Greets, Roger

Link to comment
Share on other sites

Hi!

Ich habe hier eine Lösung für Traktor in C geschrieben. -> letzte Seite

http://www.midibox.org/forum/index.php?topic=3852.0

Mit einer Taste kann umgeschaltet werden zwischen 2 Funktionen mit den Encodern.

Einmal is das zum Pitchbend. Gedrückt kann man im Track vor und zurückspulen.

Ich würde dir empfehlen dich ein bisschen in das C Interface hineinzuarbeiten weil damit kannst du dann wirklich GENAU das machen was du für deine Box brauchst. Dauert vielleicht ein paar Tage ist aber definitiv den Aufwand wert.

Ahja. Ich denke scratchen mit Traktor kann man abhaken. Dafür sind Technics da.

Grüsse

Michael

Link to comment
Share on other sites

Öööhh krass,grad ein sdcc skeleton genommen...deinen code reingeworfen....make.bat aktiviert...das ganze in die box geschubst...und staun....aufm display steht "Traktor Midibox by Wild Weasel" -- ....funzt......aber nur HALB.....die encoder sagen sie sind taster....*LOL*...könnte es noch umlöten, bin aber zu müde (1:33 Uhr grad :D )

aber geil, hätt nie gedacht das ich das auf anhieb kapiere....die codeschnipsel scheinen mir auch um einiges verständlicher als assembler.....sehr geil

das mit C gefällt mir

....morgen mehr :)  *freu

D A N K E

MTE

Link to comment
Share on other sites

hmm ne das will noch nicht so richtig...habe immer noch das gleiche Problem, daß der Bender entweder auf + oder - stehen bleibt :(

Poti-mässig geht nur jeder 7. Pot

bei definition...

// define number of shift registers

MIOS_SRIO_NumberSet( 8 );  <--von den Abständen net verwirren lassen, is nur für hier sonst werden Smilies angezeigt

MIOS_AIN_UnMuxed();

MIOS_AIN_NumberSet( 8 );

MIOS_AIN_DeadbandSet(7);

hat jeder 7. Pot eine feste Nummer

bei dieser Einstellung...

// define number of shift registers

MIOS_SRIO_NumberSet( 8 );

MIOS_AIN_UnMuxed();

MIOS_AIN_NumberSet(26);

MIOS_AIN_DeadbandSet(7);

geht auch nur jeder 7.,wobei bei denen die Potinummer durcheinander springt....seltsam

Ich benutze 26 Potis in meiner Box und hab alle möglichen Einstellungen ausprobiert, jedoch ohne Erfolg

*Kopfknatter

Link to comment
Share on other sites

Hi!

Pots sind bei mir unmuxed. Also ohne Schieberegister und deshalbt direkt an das core gelötet. Musst das also in "muxed" ändern und die Anzahl der Pots eingeben.

Das mit den Pitchbend hab ich weiter oben in meinem log beschrieben. Du musst da 2 Funktionen in Traktor erstellen. Eine pitch und dann Up und dann down. Dann gehst du auf learn und dann einmal rechts drehen und bei der anderen Funktion einmal links.

Hoffe das ist verständlich. Das ganze ist notwendig um einen bug in Traktor zu umgehen.

Die Encoder sind auf die ersten eingänge auf Shiftregister 1 gelegt. Da is aber in dem Skeleton noch eine datei dabei wo man die Encoder defínieren muss.

Musst du durchsehen.

Grüsse

M.

Link to comment
Share on other sites

Ich nochmal.

Also das sind die Traktor Funktionen

traktor.gif

und das hier die mios_tables.inc Einträge


_MIOS_ENC_PIN_TABLE
MIOS_ENC_PIN_TABLE
	;; encoders 1-16
	;;        SR  Pin  Mode
	ENC_ENTRY  1,  0,  MIOS_ENC_MODE_DETENTED    ;
	ENC_ENTRY  1,  2,  MIOS_ENC_MODE_DETENTED    ;
	ENC_ENTRY  1,  4,  MIOS_ENC_MODE_DETENTED    ;
	ENC_ENTRY  1,  6,  MIOS_ENC_MODE_DETENTED    ;
	ENC_EOT

wobei aber nur 2 nötig sind. Also linkes und rechtes Deck.

Mit den anderen mach ich was anderes. Play list rauf und runter und solche dinge.

Um zu erklären was da geschieht.

Wenn ein Encoder verstellt wird gibts ein Midi ON signal. Ist also wie wenn eine Taste gedrückt wird und gedrückt gehalten wird. Dann wird gewartet 20ms -> siehe delay. Und dann das entsprechende Midi OFF.

Das ganze macht also nicht anderes als einen Tastendruck zu simulieren. Da diese Funktion aber jedes mal neu aufgerufen wird wenn der Encoder über eine Raste drüberläuft kann man damit mit einem gewissen "gesteppten" gefühl pitchbenden.

Das delay kann man ev. noch kürzer stellen zwecks feinerer Auflösung.

Und ausserdem habe ich gelesen das das mit dem delay nicht sehr elegant ist weil alle anderen Funktionen der Box auch delayed werden. Ein counter wäre da besser sagt man.

Hab ich bis jetzt keine Nachteile feststellen können.

Link to comment
Share on other sites

;D  ;D  ;D  ;D  ;D  ;D  ;D 

--- >> F  U  N  Z  T << ---    *freustrahlhüpfterrorberzerkwieblödamjogwheeldreh....

;D  ;D  ;D  ;D  ;D  ;D  ;D 

voll geil, hey yoh....hätt nicht gedacht das es doch so einfach zu kompilieren ist

am Traktor sagt er mir zwar an Deck B beim Midi-Learn "Note-??" aber es geht trotzdem ohne probleme...das delay passt auch...sehr ähnlich wie bei den guten Pioneers

so solls auf jedenfall sein :)

so, werde mich nun mal an die Taster und Led-lötung wagen und hoffe, daß das Ding bis heut Abend steht, dann wird erstma die ganze Nacht geschebbert

Also, nochmals vielen lieben Dank für eure Hilfe, waren 2 sehr anstrengende Wochen purer Forschung und Errros,hätt das Ding am liebsten an die Wand gehauen...

........neeeee........

immer schön lieb haben und schön knuddeln  :D

Auf bald

MTE

Link to comment
Share on other sites

buttons brauchst du ned extra definieren

nur hier

[tt]MIOS_SRIO_NumberSet( 8 )[/tt]

Verdammte smilies.

-> Anzahl der Schieberegister ändern

Dann hau aber auch gleich bitte das hier

              unsigned char shuttle_1;
	      unsigned char shuttle_2;
	      shuttle_1_alt = MIOS_DIN_PinGet(31);
	      shuttle_2_alt = MIOS_DIN_PinGet(33);
	      
	      if (pin >= 8 && pin <= 15 || pin == 31 || pin == 33)
	      {
				      unsigned char A = MIOS_DIN_PinGet(8);
				      unsigned char B = MIOS_DIN_PinGet(9);
				      unsigned char C = MIOS_DIN_PinGet(10);
				      unsigned char D = MIOS_DIN_PinGet(11);
				      				      				      
	            unsigned char E = MIOS_DIN_PinGet(15);
				      unsigned char F = MIOS_DIN_PinGet(14);
				      unsigned char G = MIOS_DIN_PinGet(13);
				      unsigned char H = MIOS_DIN_PinGet(12);
	            
				      if (shuttle_1_alt == 1)
							      {
							      MIOS_MIDI_TxBufferPut(0xb1);
							      MIOS_MIDI_TxBufferPut(02);
							      
							      
							      if (A == 0 && B == 1 && C == 1 && D == 0){shuttle_1 = 7; MIOS_MIDI_TxBufferPut(0x0a);}
							      if (A == 0 && B == 0 && C == 1 && D == 0){shuttle_1 = 6; MIOS_MIDI_TxBufferPut(0x0a);}
								    if (A == 0 && B == 0 && C == 0 && D == 0){shuttle_1 = 5; MIOS_MIDI_TxBufferPut(0x13);}
								    if (A == 0 && B == 1 && C == 0 && D == 0){shuttle_1 = 4; MIOS_MIDI_TxBufferPut(0x1c);}
								    if (A == 1 && B == 1 && C == 0 && D == 0){shuttle_1 = 3; MIOS_MIDI_TxBufferPut(0x25);}
								    if (A == 1 && B == 0 && C == 0 && D == 0){shuttle_1 = 2; MIOS_MIDI_TxBufferPut(0x2e);}
								    if (A == 1 && B == 0 && C == 1 && D == 0){shuttle_1 = 1; MIOS_MIDI_TxBufferPut(0x37);}
								    if (A == 1 && B == 1 && C == 1 && D == 0){shuttle_1 = 1; MIOS_MIDI_TxBufferPut(0x37);}
							      if (A == 1 && B == 1 && C == 1 && D == 1){shuttle_1 = 0; MIOS_MIDI_TxBufferPut(0x40);}
							      if (A == 1 && B == 0 && C == 1 && D == 1){shuttle_1 = 1; MIOS_MIDI_TxBufferPut(0x49);}
								    if (A == 1 && B == 0 && C == 0 && D == 1){shuttle_1 = 2; MIOS_MIDI_TxBufferPut(0x52);}
								    if (A == 1 && B == 1 && C == 0 && D == 1){shuttle_1 = 3; MIOS_MIDI_TxBufferPut(0x5b);}
								    if (A == 0 && B == 1 && C == 0 && D == 1){shuttle_1 = 4; MIOS_MIDI_TxBufferPut(0x64);}
								    if (A == 0 && B == 0 && C == 0 && D == 1){shuttle_1 = 5; MIOS_MIDI_TxBufferPut(0x6d);}
								    if (A == 0 && B == 0 && C == 1 && D == 1){shuttle_1 = 6; MIOS_MIDI_TxBufferPut(0x76);}
								    if (A == 0 && B == 1 && C == 1 && D == 1){shuttle_1 = 7; MIOS_MIDI_TxBufferPut(0x7f);}
								    		    
								    MIOS_LCD_Clear();
								    MIOS_LCD_PrintCString("Shuttle 1 ");
								    MIOS_LCD_CursorSet(0x40);
								    MIOS_LCD_PrintBCD3(shuttle_1);
								    }
					       
					    else
					    {
								    MIOS_MIDI_TxBufferPut(0xb1);
							      MIOS_MIDI_TxBufferPut(10);
							      
							      
							      if (A == 0 && B == 1 && C == 1 && D == 0){shuttle_1 = 7; MIOS_MIDI_TxBufferPut(0x0a);}
							      if (A == 0 && B == 0 && C == 1 && D == 0){shuttle_1 = 6; MIOS_MIDI_TxBufferPut(0x0a);}
								    if (A == 0 && B == 0 && C == 0 && D == 0){shuttle_1 = 5; MIOS_MIDI_TxBufferPut(0x13);}
								    if (A == 0 && B == 1 && C == 0 && D == 0){shuttle_1 = 4; MIOS_MIDI_TxBufferPut(0x1c);}
								    if (A == 1 && B == 1 && C == 0 && D == 0){shuttle_1 = 3; MIOS_MIDI_TxBufferPut(0x25);}
								    if (A == 1 && B == 0 && C == 0 && D == 0){shuttle_1 = 2; MIOS_MIDI_TxBufferPut(0x2e);}
								    if (A == 1 && B == 0 && C == 1 && D == 0){shuttle_1 = 1; MIOS_MIDI_TxBufferPut(0x37);}
								    if (A == 1 && B == 1 && C == 1 && D == 0){shuttle_1 = 1; MIOS_MIDI_TxBufferPut(0x37);}	
							      if (A == 1 && B == 1 && C == 1 && D == 1){shuttle_1 = 0; MIOS_MIDI_TxBufferPut(0x40);}
							      if (A == 1 && B == 0 && C == 1 && D == 1){shuttle_1 = 1; MIOS_MIDI_TxBufferPut(0x49);}
								    if (A == 1 && B == 0 && C == 0 && D == 1){shuttle_1 = 2; MIOS_MIDI_TxBufferPut(0x52);}
								    if (A == 1 && B == 1 && C == 0 && D == 1){shuttle_1 = 3; MIOS_MIDI_TxBufferPut(0x5b);}
								    if (A == 0 && B == 1 && C == 0 && D == 1){shuttle_1 = 4; MIOS_MIDI_TxBufferPut(0x64);}
								    if (A == 0 && B == 0 && C == 0 && D == 1){shuttle_1 = 5; MIOS_MIDI_TxBufferPut(0x6d);}
								    if (A == 0 && B == 0 && C == 1 && D == 1){shuttle_1 = 6; MIOS_MIDI_TxBufferPut(0x76);}
								    if (A == 0 && B == 1 && C == 1 && D == 1){shuttle_1 = 7; MIOS_MIDI_TxBufferPut(0x7f);}
								    	
								    MIOS_LCD_Clear();
								    MIOS_LCD_PrintCString("Shuttle 1 alt ");
								    MIOS_LCD_CursorSet(0x40);
								    MIOS_LCD_PrintBCD3(shuttle_1);
		          }
		    	  if (shuttle_2_alt == 1)
							      {
							      MIOS_MIDI_TxBufferPut(0xb1);
							      MIOS_MIDI_TxBufferPut(03);
							      
							      
							      if (E == 0 && F == 1 && G == 1 && H == 0){shuttle_2 = 7; MIOS_MIDI_TxBufferPut(0x0E);}
							      if (E == 0 && F == 0 && G == 1 && H == 0){shuttle_2 = 6; MIOS_MIDI_TxBufferPut(0x0E);}
								    if (E == 0 && F == 0 && G == 0 && H == 0){shuttle_2 = 5; MIOS_MIDI_TxBufferPut(0x13);}
								    if (E == 0 && F == 1 && G == 0 && H == 0){shuttle_2 = 4; MIOS_MIDI_TxBufferPut(0x1c);}
								    if (E == 1 && F == 1 && G == 0 && H == 0){shuttle_2 = 3; MIOS_MIDI_TxBufferPut(0x25);}
								    if (E == 1 && F == 0 && G == 0 && H == 0){shuttle_2 = 2; MIOS_MIDI_TxBufferPut(0x2e);}
								    if (E == 1 && F == 0 && G == 1 && H == 0){shuttle_2 = 1; MIOS_MIDI_TxBufferPut(0x37);}
								    if (E == 1 && F == 1 && G == 1 && H == 0){shuttle_2 = 1; MIOS_MIDI_TxBufferPut(0x37);}
							      if (E == 1 && F == 1 && G == 1 && H == 1){shuttle_2 = 0; MIOS_MIDI_TxBufferPut(0x40);}
							      if (E == 1 && F == 0 && G == 1 && H == 1){shuttle_2 = 1; MIOS_MIDI_TxBufferPut(0x49);}
								    if (E == 1 && F == 0 && G == 0 && H == 1){shuttle_2 = 2; MIOS_MIDI_TxBufferPut(0x52);}
								    if (E == 1 && F == 1 && G == 0 && H == 1){shuttle_2 = 3; MIOS_MIDI_TxBufferPut(0x5b);}
								    if (E == 0 && F == 1 && G == 0 && H == 1){shuttle_2 = 4; MIOS_MIDI_TxBufferPut(0x64);}
								    if (E == 0 && F == 0 && G == 0 && H == 1){shuttle_2 = 5; MIOS_MIDI_TxBufferPut(0x6d);}
								    if (E == 0 && F == 0 && G == 1 && H == 1){shuttle_2 = 6; MIOS_MIDI_TxBufferPut(0x76);}
								    if (E == 0 && F == 1 && G == 1 && H == 1){shuttle_2 = 7; MIOS_MIDI_TxBufferPut(0x7f);}
								    		    
								    MIOS_LCD_Clear();
								    MIOS_LCD_PrintCString("Shuttle 2 ");
								    MIOS_LCD_CursorSet(0x40);
								    MIOS_LCD_PrintBCD3(shuttle_2);
								    }
					       
					    else
					    {
								    MIOS_MIDI_TxBufferPut(0xb1);
							      MIOS_MIDI_TxBufferPut(04);
							      
							      
							      if (E == 0 && F == 1 && G == 1 && H == 0){shuttle_2 = 7; MIOS_MIDI_TxBufferPut(0x0E);}
							      if (E == 0 && F == 0 && G == 1 && H == 0){shuttle_2 = 6; MIOS_MIDI_TxBufferPut(0x0E);}
								    if (E == 0 && F == 0 && G == 0 && H == 0){shuttle_2 = 5; MIOS_MIDI_TxBufferPut(0x13);}
								    if (E == 0 && F == 1 && G == 0 && H == 0){shuttle_2 = 4; MIOS_MIDI_TxBufferPut(0x1c);}
								    if (E == 1 && F == 1 && G == 0 && H == 0){shuttle_2 = 3; MIOS_MIDI_TxBufferPut(0x25);}
								    if (E == 1 && F == 0 && G == 0 && H == 0){shuttle_2 = 2; MIOS_MIDI_TxBufferPut(0x2e);}
								    if (E == 1 && F == 0 && G == 1 && H == 0){shuttle_2 = 1; MIOS_MIDI_TxBufferPut(0x37);}
								    if (E == 1 && F == 1 && G == 1 && H == 0){shuttle_2 = 1; MIOS_MIDI_TxBufferPut(0x37);}
							      if (E == 1 && F == 1 && G == 1 && H == 1){shuttle_2 = 0; MIOS_MIDI_TxBufferPut(0x40);}
							      if (E == 1 && F == 0 && G == 1 && H == 1){shuttle_2 = 1; MIOS_MIDI_TxBufferPut(0x49);}
								    if (E == 1 && F == 0 && G == 0 && H == 1){shuttle_2 = 2; MIOS_MIDI_TxBufferPut(0x52);}
								    if (E == 1 && F == 1 && G == 0 && H == 1){shuttle_2 = 3; MIOS_MIDI_TxBufferPut(0x5b);}
								    if (E == 0 && F == 1 && G == 0 && H == 1){shuttle_2 = 4; MIOS_MIDI_TxBufferPut(0x64);}
								    if (E == 0 && F == 0 && G == 0 && H == 1){shuttle_2 = 5; MIOS_MIDI_TxBufferPut(0x6d);}
								    if (E == 0 && F == 0 && G == 1 && H == 1){shuttle_2 = 6; MIOS_MIDI_TxBufferPut(0x76);}
								    if (E == 0 && F == 1 && G == 1 && H == 1){shuttle_2 = 7; MIOS_MIDI_TxBufferPut(0x7f);}
								    	
								    MIOS_LCD_Clear();
								    MIOS_LCD_PrintCString("Shuttle 2 alt ");
								    MIOS_LCD_CursorSet(0x40);
								    MIOS_LCD_PrintBCD3(shuttle_2);
		          }
		    	   
		    }
		           	
		    else 
		    {		   	   	  
raus. Lass aber bitte das hier
                        MIOS_MIDI_TxBufferPut(0x90); 
  			MIOS_MIDI_TxBufferPut(pin);
  			MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f);

stehen. Das is der Befehl zum Button drück als Midi schicken.

Das oben im ersten code fenster geht nur bei mir weil ich noch extra Ringe um die Encoder herum habe.

MfG

M.

Link to comment
Share on other sites

Jo, weisst zufällig nen guten Webspace-Anbieter wo ich MP3s (so ca. 150MB groß) ablegen kann für meine Mixe....dann is das geböngt

Vorausgesetzt Du stehst auf düsteren,schubigen Goa ;)

Greetz

Edit : Ab und zu streame ich auch Live...hast zufällig ICQ...dann schick ich Dir bei Gelegenheit mal die Stream-Addy :)

Link to comment
Share on other sites

Jo, weisst zufällig nen guten Webspace-Anbieter wo ich MP3s (so ca. 150MB groß) ablegen kann für meine Mixe....dann is das geböngt

Ich bin schon seit ein paar Jahren bei domaingo und für den günstigen Preis (5 bis 15 EUR/Monat) eigentlich sehr zufrieden (im Power-Tarif). Habe (glaube ich) 700 MB. Hat aber ein Script-Timeout (ist aber für die meisten PHP-Anwendungen gut ausreichend), Chat-Server und Freeware-Archive sind Kündigungsgrund und der Support kostet, aber im (kostenlosen) Forum gibt's eigentlich auch immer Hilfe. Und das Admin-Menü ist ziemlich selbsterklärend und recht umfangreich. Nur mit mehreren Domains gibt's wahrscheinlich günstigere Provider :)

Grüße, Michael

Link to comment
Share on other sites

Moin

danke mal für den Tip, aber ich suche eher Provider, die kostenlosen Webspace anbieten (bin derzeit arbeitslos, und mein Budget ist sehr begrenzt :( )

zurück zum eigentlichen Thread ...

wo definiere ich die taster

- funzt -

einige sollen auf on/off stehen...

ich meine quasi, button 1mal gedrückt...daueran...wiedergedrückt....aus :)

nochne Idee dazu....wenn ich einen taster auf daueran stelle soll ein anderer ausgehen....brauche das um bei cue/pause und cue/play zu switchen

Grüße

MTE

Link to comment
Share on other sites

Moin,

Hi MTE ,

hab mal ein paar fragen:

du benutzt einen ganz normalen encoder für die wheels, oder ?

ist es nicht eigentlich egal, an welche SR man die encoder anschliesst ?

habe bislang gedacht, dass man dies nur in applikation einstellen muss,

wenn nicht, bitte erkläre uns dies,

ich habe ein jog dial ( typ Alps ) aus einem doppel-dvd- player und möchte das innere rad und den äusseren shuttle ring benutzen, um durch das menü im traktor zu wandern, ist dies auch schon realisiert ?

MfG ranger930

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share


×
×
  • Create New...