Jump to content

Traktorizer - Blog


MTE
 Share

Recommended Posts

  • Replies 231
  • Created
  • Last Reply

Top Posters In This Topic

Ich glaub ich stehe kurz vorm Ergebnis wegen dem Taster toggeln...

ich erstellte diese Variable :

static unsigned char taster[50];
hier dann weiter diesen Code
void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam
{
if(taster[20])
{ 
taster[20] = 0;
MIOS_MIDI_BeginStream();
MIOS_MIDI_TxBufferPut(0x9f);
MIOS_MIDI_TxBufferPut(pin);
MIOS_MIDI_TxBufferPut(0x00);
MIOS_MIDI_EndStream();
}
else
{
taster[20] = 1;
MIOS_MIDI_BeginStream();
MIOS_MIDI_TxBufferPut(0x9f);
MIOS_MIDI_TxBufferPut(pin);
MIOS_MIDI_TxBufferPut(0x7f);
MIOS_MIDI_EndStream();
}
}

toggelt aber immer noch nicht, warum ???

Grüße

MTE

Link to comment
Share on other sites

versuch's mal mit [tt]taster[pin] [/tt]statt [tt]taster[20][/tt]

...und lass mal das [tt]static[/tt] weg, denn so weit ich weiß (hallo C-Buch :) ) müssen static-variablen bei der deklaration gleich definiert werden (was bei 50 werten aber vielleicht ein wenig zu tipp-intensiv ist ;) )

(ansonsten sieht das doch schon ganz gut aus ;) )

grüße,

Michael

Link to comment
Share on other sites

Momentan togglest Du die Variable, wenn der Taster sowohl gedrueckt, als auch losgelassen wurde.

Du moechtest aber wahrscheinlich nur dann toggeln, wenn der Taster gedrueckt wurde... dies geht am einfachsten mit einem


  if( pin_value != 0 ) return; // exit if button has not been pressed
[/code]

am Anfang der Funktion

Gruss,

        Thorsten.

Link to comment
Share on other sites

YESSSSSSSSSSSSSSSSSSS

unsigned char taster[60];
void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam
{
if( pin_value != 0 ) return; // exit if button has not been pressed
if(taster[pin])
{ 
taster[pin] = 0;
MIOS_MIDI_BeginStream();
MIOS_MIDI_TxBufferPut(0x9f);
MIOS_MIDI_TxBufferPut(pin);
MIOS_MIDI_TxBufferPut(0x00);
MIOS_DOUT_PinSet0(pin);
MIOS_MIDI_EndStream();
}
else
{
taster[pin] = 1;
MIOS_MIDI_BeginStream();
MIOS_MIDI_TxBufferPut(0x9f);
MIOS_MIDI_TxBufferPut(pin);
MIOS_MIDI_TxBufferPut(0x7f);
MIOS_DOUT_PinSet1(pin);
MIOS_MIDI_EndStream();

MIOS_MIDI_BeginStream();
MIOS_LCD_Clear();
MIOS_LCD_PrintCString("Button ");
MIOS_LCD_PrintBCD4(pin);
MIOS_MIDI_EndStream();
}
}

Jetz sind zwar alle Taster getoggelt aber ich bin ein GROOOßES Stück weiter.

Mit der MIOS_DOUT_PinSet1(pin)-Funktion passt es auch und die entsprechenden LED-Pins kriegen Strom...

Jetz muss ich es nur noch schaffen die Taster,die ich nicht getoggelt brauch zu programmieren...

Danke euch beiden  :D

Grüße

MTE

Link to comment
Share on other sites

also, ich weiß das ist jetzt gemein von mir schon wieder auf die C-Referenz-Liste zu verweisen, aber leider steht es da:

MIOS_MIDI_BeginStream()

use this function before a new MIDI event or stream should be sent. Necessary for a correct function of the MIDIbox Link feature!

D.h. ich habe es noch nie ohne versucht, so wie es da steht, bedeutet das, dass man es wohl schon weglassen könnte, wenn man keine multiplen Cores benutzt.

Trotzdem würde ich es gleich richtig machen, sowas gehört zum guten Code-Schreiben, dass man für alle Eventualitäten für später mitdenkt ;)

Also: lieber zwei Zeilen mehr und in Zukunft keine Kopfschmerzen :)

Grüße,

Michael

Link to comment
Share on other sites

Cool ich habe glaub ne Lösung gefunden, fand zufällig noch nen Code von TK hier im Forum, der auch ginge.....dafür muss ich halt die Taster die ich toggeln will umlöten...

Hier ist mal der Code

unsigned char toggle_state[16];
void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam
{
unsigned char array_index;
// DIN 16..31 should toggle
if( pin >= 16 && pin <= 31 ) {
if( pin_value == 0 ) { // only react when button is pressed
// determine the index of the array element (starts from 0)
array_index = pin - 16;
// toggle the flag which saves the current button state
toggle_state[array_index] ^= 0x01; // '^' is a XOR operation
// send MIDI Note event depending on toggle state
MIOS_MIDI_TxBufferPut(0x90);
MIOS_MIDI_TxBufferPut(0x30 + array_index);
MIOS_MIDI_TxBufferPut(toggle_state[array_index] ? 0x7f : 0x00);
// set LED (same pin number like button)
MIOS_DOUT_PinSet(pin, toggle_state[array_index] ? 0x7f : 0x00);
MIOS_MIDI_BeginStream();
MIOS_LCD_Clear();
MIOS_LCD_PrintCString("Button ");
MIOS_LCD_PrintBCD4(pin);
MIOS_MIDI_EndStream();
}
} else {
// this branch handles DIN 0..15 and DIN 32..127
MIOS_MIDI_TxBufferPut(0x90); 
MIOS_MIDI_TxBufferPut(pin);  
MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); 
}
}

Sieht gut aus, muss das Teil halt auf 10 begrenzen...da ich nur insgesamt 10 von meinen knapp 60 Tastern toggeln möchte.

Nungut,jetz fällt mir aber auf, das ich für diverse Taster die sozusagen "Only-On"-Funktion brauche, die widerum von einem anderen Taster abgelöst wird...

Als Beispiel :

Ich habe PlayPause, CuePlay und CuePause :

wenn CuePlay an ist und CuePause gedrückt wird,soll CuePlay natürlich ausgehen und CuePause daueran sein....und umgekehrt gleiches gilt natürlich auch für PlayPause....es sollten also niemals bei dieser Anordnung 2 Taster gleichzeitig an bleiben,sondern immer nur einer,der von nem anderen abgelöst wird.

Habt Ihr evtl. noch ein paar gute Vorschläge, wie ich das hier reingehackt kriege ?

Eigentlich echt blöd der ganze Streß hier, aber leider bekam ich meine heilige Pitch-Bend-Funktion nicht in die MB64E-Applikation geschrieben, sonst könnte ich mit dieser viel einfacher die Taster definieren...

Grüße

MTE

Link to comment
Share on other sites

Ich denke man sollte dieses Projekt sobald es fertig ist in die MBHP PROJECTS hinzufügen. Natürlich nur wenn TK und MTE dies befürworten. Ich würde mich sofort dransetzen zum loslegen. Ne ideale Ergänzung für alle DJ's !!

Grüsse

Link to comment
Share on other sites

Das is ne Bombenidee, meine Zustimmung hast du, wobei das Projekt ja indem Sinne nicht auf uns basiert. Den Hauptcode für die Bend-Funktion bekam ich ja von Wild Weasel, einige Tipps von Pay_C und viiiiiiel "C" - Input von Audiocommander  ;)

aber cool :)

@dj3nk : Kannst du C programmieren ?

Grüße

MTE

Link to comment
Share on other sites

ich druecke euch sehr die daumen jungs. dass ist naehmlich eine sache von der ich schon ziemlich lange traume.

ich habs aber bis jetzt immer von der software seite her probiert da ich ein ziemlicher elektronik-noob bin.

ich habe grosse erwartungen mit bome's midi translator der in der pro version einen zeitraffer hat. ich hoffe man kann in sehr minimal einstellen damit dies sofort funktionieren koennte.

Link to comment
Share on other sites

Was heisst "können" ? gg. Habs mal gekonnt. Also mir sind Programmiersprachen und deren Logik nicht fremd. Allerdings musste ich mich bisher noch nich vertieft damit befassen. Also ich könnt mich schnell einarbeiten, aber dazu brauch ich widerum erst nomma finanzielle Mittel um mir die Bauteile für nen Controller zu besorgen, da trocken proggen nich so toll is :)

Link to comment
Share on other sites

Hi

Ich denke man sollte dieses Projekt sobald es fertig ist in die MBHP PROJECTS hinzufügen.

da hab ich mir mal folgendes überlegt :

Also ich hätte gerne so ein Kiste -> http://www.rulecam.net/photos/displayimage.php?pos=-4030

Nur die Sektionen schön perfekt aufgeteilt und viiiiiel weiter angeordnet , und die Effekt Station nicht per Umschalter auf die Low,Mid,High etc sondern alles separat......dazu Menüscrollen etc etc....

Ich arbeite mittlerweile an nen neuen Prototyp dafür, bis jetz mal auf dem Corel Designer aufgemalt (Ich liebe dieses Programm :) )

Lasst uns da doch irgendwie zusammen die perfekte Kiste zusammenstellen, richtig mit USB-Anschluß und eben allen Schikanen............nennen wir das Projekt mal   "MB - DJ"  oder  "MB - TDS"  8)

Mein Problem dabei ist, ich krieg das mit der Programmierung nicht hin, habe auch mittlerweile keine Lust mir das Gehirn damit zu zermatern, ich bräuchte dafür sicher noch ein halbes Jahr und das is mir einfach zuviel Stress.....wenn wir uns zusammentun könnten, kriegen wir das sicher schneller gebacken.....

Ich werde bei Bourns nochmal Edel-Encoder - Samples bestellen für die Jogs, die Wind Funktion und zum Menüscrollen....Edeltaster weiss ich noch nicht....dachte an solch flachen wie bei den Pioneer DJ-Playern...

Schreibt mir mal eure Anregungen, Meinung, Ideen und lasst uns zusammen dieses Ding kreiren, als Vorlage für die nexten DJs die sich hier Input für Ihre Projekte holen möchten....

Also,

wer hat Lust,

wer hat ICQ (PM an mich,dann kriegt er meine Nr.)

und wer hat die Muse-Bögge-Zeit-Kopf-Hirn-Kaffee-Geduld-keine Freundin  ;D  uns das zu programmieren ??

Lieben Gruß

MTE

Link to comment
Share on other sites

Hi!

Find das eigentlich eine gute idee.

Es gab da schon mal eine thread ich glaub ich "assembler programmieren" wo der typ der kontrol dj entworfen hat, auskunft gegeben hat wie er das gemacht hat.

Ein riesen Problem wird denk ich immer noch der wind bug sein. Weil mit dem muss man jeweils die ganze Note off senden damit Traktor aufhört zu pitchbenden. Also nur auf 64 halten geht nicht. Ansonsten müsst man sich mit den Counter in Mios auskennen. Hab das mal versucht aber bin gescheitert. Habs dann einfach mit delay gelöst.

Scratchen ist halt eine hoch dynamische Sache. Weiss halt nicht inwieweit das C interface da mit kann. Assembler sollte da schneller sein (das sind aber nur meine Gedanken, vielleicht kann da ein Profi auskunft geben)

Ich hab mir mal ein Jogwheel von einem omnitronic cd top loader besorgt. Muss mit dem mal experimentieren zwecks besserer Auflösung usw.

Eine Idee ist mit gekommen. Da die Midibox ja auch kapazitive Sensoren managen kann könnte man sowas wie auf den CDJ-1000 entwickeln. Also touch sensitive jog wheels. Das könnte man zB mit den Scratch on/off koppeln.

Sollte die Midibox zu ungenau sein gibt es ICs von Qprox die genau das können und nur ein paar cent kosten.

Die Idee mit den PS controller für Menü scrollen ist mir auch schon gekommen. Find ich gut. Vor allem weil ich ganz auf keyboard und maus verzichten will. Kann man aber auch mit encodern lösen. So wie ich. Ich poste mal ein paar aktuelle pics von meiner Box.

Ich hab halte leider das gefühl das das Interesse für so eine box hier im Forum bescheiden ist. Es gibt hier jede menge Leute die sich super auskennen aber nicht auflegen sonder eher produzieren.

Sollte es sowas wie auf HowTo geben dann werden sofort die ganzen Kinder aus dem Traktor Forum kommen und auch sowas bauen wollen. Und ich finde das das vermieden werden soll weil das irgendwie am Sinn dieser Platform vorbei geht (Nämlich u.a etwas über Elektronik, Programmierung, Midi, usw. zu lernen .... und... etwas zu geben und zu nehmen)

Alle bisherigen Controller Lösung von kommerziellen Anbietern, namlich XONE 3D, dieser Behringer Dings, Faderfox sind nicht ausgereift (Behringer, proprietär, für eigene Software) oder schlicht zu teuer (Xone, 1500€  !!?!?!?)

D.h. ist gibt sicher ein Interesse für ein low cost traktor midi box. Aber ich fürchte leider nicht hier im Forum sondern eher drüben bei den Traktor Leuten.

Mich würde die Meinung von anderen zu diesem Thema interessieren.

Vor allem auch Ideen zur technischen realisierung.

Grüsse

Michael

Link to comment
Share on other sites

  • 1 month later...

Mal ein Zwischenstand hier... :)

Gestern mal die Jog-Wheels zu Ende gelayoutet...gespannt wie die graviert rüberkommen *freuuuu

Ansonsten wird das Ding der absoluter Killer-Teilchenbeschleuniger....

@ Ranger, wir könnten uns ja dann zusammentun wegen der Programmierung

Grüße

MTE

Traktorizer-V4_thumb.jpg

254_Traktorizer-V4_jpgb9bdc6d5e13a96a3c8

Link to comment
Share on other sites

Hi MTE,

zusammen proggen wäre super,

leider bin ich noch lange nicht soweit, mache gerade PSU unit, dann Gehäuse,

gestern habe ich bei Ebay einen gebr. Controller ersteigt, DM2 ( xxx.mixman.com )heisst das Ding, hat zwei Wheel Ringe, befürchte aber, das die Dinger zu klapprig sind und zu gross für mein Layout

Dein Layout ist echt scharf !

Muss leider auch einige Platinen ändern, habe mich mit den Steckern bisschen verschätzt,

ich stelle nochmal in meinem Projek neue Bilder ein,

zum Thema Frontplatte:

kennst Du einen Kleber, mit dem man 3mm Senkkopfschrauben direkt auf die Rückseite der Alufrontplatte kleben kann ?

Ich werde mich bei Zeiten doch an Dich und Deinen Kumpel wenden um eine Alufrontplatte zu bestellen

( wenn möglich blau, 2,5mm mit Gravur ),

Wie dünn könnte denn eure dünnste Frontplatte aus Alu farbig mit Gravur sein ?

Was macht Du mit dem Traspose Fader in Deinem Layout ?

MfG

ranger930

Link to comment
Share on other sites

DM2 sieht fluffig aus...grad mal gegoogelt :) ...wie teuer hast den bekommen ?

Zum Kleber...hmm würde es mal mit 2-Komponenten versuchen...

Zur Dünnheit :) wird Dir sicher Aileroned nacher noch antworten, er hat da mehr Ahnung von den Materialien...

Grüße

MTE

Link to comment
Share on other sites

Jo passiert mir auch desöfteren...aber gestern verpasste ich nen C64 II bei Ebay...ging für 3,50.- über den Tisch  :'(

Wirst du den DM2 aufschrauben und metzgern ??? Mich würde brennendst der Aufbau und die Schaltung interessieren...  ;D

Grüße

MTE

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...