Projekt(idee): Octakontrol

Shift-Register funktioniert: Countdown von 9 bis 0, der per Taster angehalten werden kann:

Code:
//                  DP g f e d c b a
const byte Z_0[8] = {0,0,1,1,1,1,1,1}; //Zeichen "0" auf 7Segment-Anzeige (Kingbright SC52)
const byte Z_1[8] = {0,0,0,0,0,1,1,0};
const byte Z_2[8] = {0,1,0,1,1,0,1,1};
const byte Z_3[8] = {0,1,0,0,1,1,1,1};
const byte Z_4[8] = {0,1,1,0,0,1,1,0};
const byte Z_5[8] = {0,1,1,0,1,1,0,1};
const byte Z_6[8] = {0,1,1,1,1,1,0,1};
const byte Z_7[8] = {0,0,0,0,0,1,1,1};
const byte Z_8[8] = {0,1,1,1,1,1,1,1};
const byte Z_9[8] = {0,1,1,0,0,1,1,1};
const byte Z_S[8] = {0,1,1,0,1,1,0,1}; //S=5
const byte Z_o[8] = {0,1,0,1,1,1,0,0};
const byte Z_r[8] = {0,1,0,1,0,0,0,0};
const byte Z_E[8] = {0,1,1,1,1,0,0,1};
const byte Z_Punkt[8] = {1,0,0,0,0,0,0,0};

const byte sck = 11;
const byte rck = 12;
const byte ser = 13;

void setup() {                
  pinMode(sck, OUTPUT);
  pinMode(rck, OUTPUT);
  pinMode(ser, OUTPUT);
  pinMode(3, INPUT);
}

void loop() {


  for(int n=9; n > -1; n--){
  
    if(digitalRead(3)==LOW){ //hält die Zeit an
    for(byte i=0 ; i<8; i++){
      switch(n){
        case 0: digitalWrite(ser, Z_0[i]); break;
        case 1: digitalWrite(ser, Z_1[i]); break;
        case 2: digitalWrite(ser, Z_2[i]); break;
        case 3: digitalWrite(ser, Z_3[i]); break;
        case 4: digitalWrite(ser, Z_4[i]); break;
        case 5: digitalWrite(ser, Z_5[i]); break;
        case 6: digitalWrite(ser, Z_6[i]); break;
        case 7: digitalWrite(ser, Z_7[i]); break;
        case 8: digitalWrite(ser, Z_8[i]); break;
        case 9: digitalWrite(ser, Z_9[i]); break;
      }
      digitalWrite(sck, 1);
      digitalWrite(sck, 0);
    }
    digitalWrite(rck, 1);
    digitalWrite(rck, 0);
    delay(1000);
  }
  else n++;
  
  }
  
}

^^ Wenn man nur so einen Countdown will, könnte man das, so vermute ich mal, bestimmt eleganter machen, als mit diesen 1000 Arrays (und dem Switch-Case) - für mein Endziel will ich ja aber bestimmte Zeichen im Zugriff zu haben (gibt es da vielleicht auch bessere Möglichkeiten?)

Nächste Aufgaben: Testen & Verstehen der ShiftOut-Funktion (anstatt der for-Schleife die ich jetzt zum reinschieben&ausgeben benutze), Schieberegister kaskadieren, dokumentieren (damit ich auch morgen noch weiß, was ich da tue).

ps. Bitte nicht von meinem MItteilungsbedürfniss hier irritieren lassen - wie gesagt, ich nutze das hier auch als quasi Notizbuch für mich und mache das eben so offen, da ich 1. hier immer für Anregungen dankbar bin, wenn jemand Lust hat & 2. vielleicht hilfts ja auch mal jemand anderen irgendwann ...

mfG Bruce
 
So, Hausaufgaben fertig. So (mit shiftOut) ist der Countdown (zwei Stellen) doch schon sinnvoller realisiert:

Code:
/*
LED zählt Countdown von 99(sec) auf 00(sec) / 2x 7-Segment

LED Kingbright SC-52 Belegung:
                           a b c d e f g DP
Example: LED Zeichen "2" = 1 1 0 1 1 0 1 0 = binär (shiftOut) = 218
*/

const byte sck = 11; //Pin für Schiebetakt
const byte rck = 12; //Pin für Speichertakt
const byte LEDpin = 13; //Serieller Eingang am Schieberegister
const byte LEDnumber[] = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; //0123456789

void setup() {                
  pinMode(sck, OUTPUT);
  pinMode(rck, OUTPUT);
  pinMode(LEDpin, OUTPUT);
}

void loop() {

//Countdown von 99 bis 0
for(int i=9; i>-1; i--){
for(int n=9 ; n>-1; n--){
shiftOut(LEDpin, sck, LSBFIRST, LEDnumber[n]);
shiftOut(LEDpin, sck, LSBFIRST, LEDnumber[i]);
digitalWrite(rck, 1);
digitalWrite(rck, 0);
delay(1000);
}
}

}

Auch Potiwerte (skaliert auf Midi) kann ich auf den beiden 7-Segment darstellen ... 3 wären dafür natürlich besser, so wird jetzt von 99 bis 127 "Quatsch" angezeigt. btw auf das Erzeugen des Zeigers für den "LEDnumber"-Array bin ick stolz! Mache mit Hilfe von Modulo aus 0 -127 = dreimal 0 bis 9 ...
Code:
/*

LED gibt Potiwert zurück (allerdings: nur mit zweistelligem Display, daher Anzeige nur bis 99 korrekt

LED Kingbright SC-52 Belegung:
                           a b c d e f g DP
Example: LED Zeichen "2" = 1 1 0 1 1 0 1 0 = binär (shiftOut) = 218
*/

const byte sck = 11; //Pin für Schiebetakt
const byte rck = 12; //Pin für Speichertakt
const byte LEDpin = 13; //Serieller Eingang am Schieberegister
const byte LEDnumber[] = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; //0123456789

byte poti;
byte ersteStelle;
byte zweiteStelle;
byte dritteStelle;

void setup() {                
  pinMode(sck, OUTPUT);
  pinMode(rck, OUTPUT);
  pinMode(LEDpin, OUTPUT);
}

void loop() {

//Poti lesen und auf Display ausgeben
poti=analogRead(0)>>3; //>>3 = /8 = Skalierung auf Midi
dritteStelle=poti%10;
zweiteStelle=((poti%100)-dritteStelle)/10;
ersteStelle=(poti-(poti%100))/10;

shiftOut(LEDpin, sck, LSBFIRST, LEDnumber[dritteStelle]);
shiftOut(LEDpin, sck, LSBFIRST, LEDnumber[zweiteStelle]);
//shiftOut(LEDpin, sck, LSBFIRST, LEDnumber[ersteStelle]); auskommentiert, da nur 2x 7Segment-Anzeige vorhanden

digitalWrite(rck, 1);
digitalWrite(rck, 0);

}

Letztlich brauch ich aber beides nicht - will ja auf dem Display nur Modi/Zuweisungen darstellen (bspw. sO für Solo).

Nächste Hausaufagben: shiftIn von Tastern per 74HC165 ... denke mal, das wird jetzt auch nicht mehr so schwierig ... und dann kann es losgehen mit dem "großen" Programm / Layout mache ich eh schon parallel.

mfG Bruce
 
Eine Frage hätte ich: Wie willst du die aktuellen parameterwerte des Octatrack auf die Octakontrol bekommen, der Octatrack sendet die ja nicht raus.
 
sushiluv schrieb:
Eine Frage hätte ich: Wie willst du die aktuellen parameterwerte des Octatrack auf die Octakontrol bekommen, der Octatrack sendet die ja nicht raus.
Gute Frage! Aber, schlechte Antwort: (Vorerst) gar nicht. Ich persönlich brauche das für meine Spielweise nämlich nicht und jeder "Standard-Midi-Controller" (bspw. UC33) hat das ja auch nicht (ausgenommen DAW-Controller sozusagen).

Aber: Der Octatrack kann doch ControllerChange senden. Ich weiß aber nicht, ob es auch "sende-alle-Controllerwerte-bei-Programm-Wechsel" im Octatrack gibt. (?)
Und: ich plane in meinem Schaltplan auch schon eine entsprechende Midi-Buchse ein, die für ein Feedback des Octatracks genutzt werden kann/soll - steht softwaretechnisch auf meiner ToDo-Liste nur noch ganz unten (weil für mich nicht wichtig, aber grundsätzlich natürlich cool).

mfG Bruce
 
Aber: Der Octatrack kann doch ControllerChange senden. Ich weiß aber nicht, ob es auch "sende-alle-Controllerwerte-bei-Programm-Wechsel" im Octatrack gibt. (?)

Hab vor einigen Monaten mal bei Elektron angefragt, leider sendet er nicht alle controllerwerte bei programmwechsel. da du das ja nicht benötigst, isses aber auch egal. :)
 
Naja, wie geschrieben, ich habe das schon auf dem Zettel, nur eben weiter unten.

Falls du eine Übersicht hast, was der Octatrack beim Programmwechsel sendet, kannst du mir das ja vielleicht mal übermitteln?

btw. nächste Hausaufgabe erledigt: Eingangsschieberegister läuft auch und - das macht mich besonders froh, da es dafür nicht so ganz komplette Hilfen/Tutorials gibt bzw ich nix/nicht viel gefunden habe (deswegen hat es auch etwas länger gedauert) - mit SPI & in Kombination von 74HC165 und 74HC595.

Code:
/*
Using SPI:
Parallel load register 74HC165 with 4 momentary switches controls 4segment display via out register 74HC595
*/

#include <SPI.h> //use SPI library
// sck @digitalPin #13; //SPI clock - defined by SPI library
// miso @digitalPin #12; //SPI master in / slave out - defined by SPI library
// mosi @digitalPin #11; //SPI master out / slave in - defined by SPI library

const byte ss = 10; //SPI slave select - used as Load Pin (PL) @74HC165 & Latch Clock (RCK) @74HC595

byte input;
byte sw;

const byte LEDnumber[10] = {B00111111, B00000110, B01011011, B01001111, B01100110, B01101101, B01111101, B00000111, B01111111, B01101111}; //0, 1, 2, 3, 4, 5, 6, 7, 8, 9

void setup() {
  pinMode(ss, OUTPUT);//it is necessary to define ss as output
  //start & configure SPI
  SPI.begin();
  SPI.setDataMode(SPI_MODE0);
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(SPI_CLOCK_DIV2);
}

void loop() {

digitalWrite(ss, 1); //74HC165: load into ShiftRegister / 74HC595: load into Outputs

byte input = SPI.transfer(0x00);  //send byte (8bit) from 74HC165 (uses sck as clock and miso as input line)

//evaluate input "bit by bit" and make it a switch
for(int n=0;n<4;n++){
if(bitRead(input,n)==1){
sw=n;
}
}
/*alternate: reading the whole byte:
switch(input){
case B00000001:
…
case B00000010:
…
*/

SPI.transfer(LEDnumber[sw]); //send byte (8bit) to 74HC595 (sck as clock and mosi as output line)

digitalWrite(ss, 0);  //74HC165: inputs enabled / 74HC595: no change

}
(diesmal sogar auf englisch kommentiert! ;-) )

Und: Falls jemand mal einen "Zeichensatz-Generator" für Kingbright SC52 braucht, ick hab da mal was gebastelt ... s.u.

mfG Bruce
 

Anhänge

  • Arduino_74HC595-SC52-11_charsetGenerator.xlsm
    74,1 KB · Aufrufe: 2
Multiplexed Fader & Potis im Schaltplan (nur hochgeladen da axul danach gefragt hatte und ich das per PM nicht schicken kann):



mfG Bruce
 

Anhänge

  • Arduino_multiplexedPotis.jpg
    Arduino_multiplexedPotis.jpg
    105,1 KB · Aufrufe: 102
So nach diversen Tests und Rumprobierereien: Midi-Merge funktioniert jetzt und ich kann auch andere Pins für Midi-IO am Arduino Board als die für die hardware-serielle Kommunikation nutzen. Problem war nämlich, dass der Programm-Upload via USB nicht mehr funktioniert hatte, wenn ich Midi-In am RX (digitaler Pin 0) des Boards angeschlossen hatte. USB läuft nämlich auch über diesen Pin und da jibbet Probleme ... Lösung war die SoftwareSerial-Library zu nutzen und da war jetzt am einfachsten für mich die Midi-Library von "Franky", welche ich vorher schon getestet hatte, zu modifizieren. Diese Library bietet (in der originalen Version) schon u.a. den Vorteil, dass Midi-Merge sehr easy & reibungslos funktioniert. Mit der Serial- bzw. SoftwareSerial-Library habe ich das noch nicht zufriedenstellend hinbekommen und da ich ja auch mal fertig werden will, war das etwas unelegante aber funktionierende Modifizieren der Midi-Library das beste für mich ... wie dem auch sei: Hier mal etwas Code in dem das alles etwas dokumentiert ist:

Code:
/*
Using a modified Midi Library based on Frankys Midi Library 3.2 which enables the usage of other
digital pins instead of the standard pins 0 and 1 (hardware serial RX / TX)

tested on Arduino Uno R3
Source of the original library is: http://www.arduino.cc/playground/Main/MIDILibrary

Modification is, that the SoftSerial Library instead of the standard Serial is incorporated by 3 Steps:

1.
change in the Library at MIDI.h (renamed MIDI_sofSerial.h):
line37 to: #define USE_SERIAL_PORT         MidiIO_1

2.
changes in the Library at MIDI.cpp (renamed MIDI_sofSerial.cpp):
line11 to (only if library files are renamed): #include "MIDI_softSerial.h"
line14 to: #include "SoftwareSerial.h"
line15 addtion: SoftwareSerial MidiIO_1(2, 3);
so default pins are RX=2 & TX=3 - change (2, 3) to any other desired
also you could define multiple input/outputs (further changes/addtions in the library neccesary)

3.
copy "SoftwareSerial.h" and "SoftwareSerial.cpp" into your Midi library folder
i.e. to: C:\Program Files (x86)\arduino-1.0.1\libraries\MIDI_softSerial
source of these files is the SoftwareSerial folder
i.e. from: C:\Program Files (x86)\arduino-1.0.1\libraries\SoftwareSerial
*/


//below a sample code which
//routes midi input to the output
//and merges it with midi controller data
//midi controller data generated from a potentiometer (on analog input pin 0)

#include <MIDI_softSerial.h>

byte poti=0;
byte last =0;

void setup() {
MIDI.begin();
}

void loop() {
MIDI.read();

poti=analogRead(0)>>3;

if(poti!=last){
  MIDI.sendControlChange(101,poti,1);
  last = poti;
  }

}

Softwaregrundlagentechnisch bin ick damit durch! Jetzt wird endlich zusammengeschrieben & die Platine fertich gemacht ... für letztere steht die finale Hardware (Potis & Taster) allerdings noch nicht, hab aber schon Testmaterial da.

Wen interessiert dit allet? :D

mfG Bruce
 
Mich insofern, als dass ich an der Octakontrol Interesse habe. Daher: Viel Erfolg weiterhin!
 
Meiner Meinung nach sind solche oder andere ähnliche Wege, der falsche Weg. Absolut. Richtig, müsste ein XYZ-Controller einfach ein kleines Gerätchen sein, so ähnlich wie MIDIpal oder RuinWesen MINIcommand, mit mehreren Midi Inputs und Outputs. 2 Inputs oder mehr, 3 Outputs oder mehr. Als Input Geräte können dann beliebige schon vorhandene Lösungen benutzt werden, Faderfox, BCR2000, UC33e oder irgendwas neueres. Bei diesen Input Geräten hat man den harten Zugriff auf die Parameter. Sollte halt möglichst so aussehen wie man sich sein System vorstellt, auch eine Kombination von mehreren Geräten, deshalb 2 oder mehr Inputs erlauben, je nachdem wieviel Geräte man kombinieren möchte.

Die kleine magische Box, muss dann Output Signale an den entsprechenden Output-Ports erzeugen, je nachdem was am Eingang reinläuft. Die Software in dieser Box MUSS als source verfügbar sein, nicht nur für die Käufer, nicht als pseudo-open wie im rpeSEQ12, für alle, auch für Nichtkäufer, damit man auch vorher GENAU sehen kann was das Gerät NICHT KANN.

Jetzt im Falle von Octatrack, muss man halt das Handbuch und die Spezifikation eines Octatracks hernehmen und entsprechende Outputs generieren. NRPN, Sysex, CC, Program Change oder was auch immer. MIDIpal und MINIcommand haben eben erkannt, dass dies der richtige Weg ist. Jetzt sollten nur noch ALLE HERSTELLER erkennen, dass dies der EINZIGE richtige Weg ist. Denn diese kleine magische Box ist eben das Herz des Systems, das ist wichtig, wieso sollte man Zeit verschwenden, erst mal irgendwas zu bauen, wo man nur an die Inputsignale rankommt, und am Herzen wurde immer noch nichts geändert? Oder irgendwie halbherzig wird dann irgendein schlappes Herz abgeliefert. Nein, die ganze Energie sollte in die Entwicklung des Herzens gesteckt werden, nicht anderso.

Bin mal gespannt was Dein Gerät am Schluß alles im Herzen beinhalten/unterstützen wird. Und was nicht! Das ist die wichtige Grenzlinie, was kann es am Schluß IMMER NOCH NICHT. Nur als ein weiteres negatives Beispiel: Spectralis, super Sound, kann anscheinend einige Sachen, aber keine externe Kontrolle der Parameter über Midi? Was soll so ein Schmarn? Midi Input vorhanden, ja, Parameter vorhanden, ja, Kontrolle der Parameter über Midi, nein! Da fehlt das Herz im System sozusagen.
 
Die wiederholten Denkanstöße meines Vorredners sind mittlerweile sicherlich bei allen Interessierten angekommen.

Daher wäre ich ihm dankbar, wenn er seine durchaus diskussionswürdige Idee in einen eigenen Thread auslagern würde, da sie dem hier diskutierten und bereits in der Realisierung befindlichen Projekt deutlich zuwider läuft und somit hier als unnötiges Rauschen wahrgenommen werden kann.
 
TonE schrieb:
Meiner Meinung nach sind solche oder andere ähnliche Wege, der falsche Weg. [...]Bin mal gespannt was Dein Gerät am Schluß alles im Herzen beinhalten/unterstützen wird. Und was nicht!
Jo, okay. Wie eingangs, glaube ich, schonmal angedeutet: Ursprünglich ging es mir darum: Ich will am Octatrack die Lautstärke der 8 Tracks direkt per Fader steuern können. Eine MKII die einfach etwas tiefer ist und unten 8 Fader hat, hätte ich wahrscheinlich sofort gekauft. Auf die Tracklevel bekommt man jedenfalls direkt Zugriff per Midi CC - ebenso, wie in der Anleitung zu lesen ist, auch auf viele andere Parameter.
Nun war/ist mein Ansatz also:
1. TrackLevel-Fader
2. Ein Gehäuse für den Controller welches mechanisch mit dem Octatrack-Gehäuse verbunden ist
3. + Ein paar Sachen oben drauf, die mir sinnvoll erscheinen (Taster, Potis, ...) - auch durch die Anregungen hier.

Da noch tiefer einzusteigen, das "Herz des Octatracks zu hacken" ist m.E. 1. in dem Fall gar nicht notwendig (vielleicht in ganz wenigen Details) und 2. zu viel für mich (Zeit...)

-----------------
btw. Ich habe mal den Entwickler der von mir benutzten/modifizierten Midi-Library angeschrieben und ihn von meinem Vorgehen berichtet. Er hat mir schnell und sehr gut geantwortet:
Hello Marcel,

Thank you for the fix, I already implemented a similar feature on the development branch, it's available here:
https://github.com/FortySevenEffects/ar ... elease/4.0

It's using templates so that one can use both the hardware serial and software serial at the same time, with multiple instances, to create a merger for example.

I still have some tweaks to do to make it compatible with USB midi and I'll release it.

Regards,

François Best
Hardware & Software Engineer

D.h. mit in Entwicklung befindlicher Version 4 der Library kann ich mir meinen "Mod" sparen und - noch besser - USB/Midi-Interface zu integrieren (derzeit noch auf meiner persönlichen wishlist, aber war noch nicht durchdacht/entwickelt/programmiert) wird auch möglich! (das wäre übrigens noch etwas "aus dem Herz" des Octatrack, wie ich finde - Midi per USB sollte bei solchen Kisten heute Standard sein)

mfG Bruce
 
Aktueller Entwurf des PCBs für die Bedienoberfläche. Anordnung der Potis, Fader, Taster und der beiden 7Segment-Anzeigen steht fest, die Dimensionen sollten soweit passen (eigene Bibliothek gebastelt...). Die sonstigen Bauteile sind noch etwas frei in ihrer Anordnung, werden während dem Routing noch rumgeschoben.

Denke, ich mach das doch doppelseitig sonst werden mir das zuviele Brücken. Falls jemand Tipps dazu hat: Gerne! :)

Der Blick auf die ganzen Airwires kann ganz schön demotivierend sein ... :sad:

mfG Bruce
 

Anhänge

  • OctaPCB.jpg
    OctaPCB.jpg
    259,4 KB · Aufrufe: 39
Nur damit hier nicht der (berechtigte ;-) ) Verdacht aufkommt, ick hätte aufgegeben ... nee, dauert nur alles aus diversen Gründen. Um noch etwas Erfahrungen zu sammeln habe ich bzw. haben wir jetzt erstmal ein etwas abgespecktes Midi-Controller-Projekt in Arbeit: MBaseKontrol, eine Controller-Kiste für die genial klingende, aber unvorteilhaft zu bedienende, Jomox MBase01 (und 11):



Erste Tests verliefen bisher erfolgreich, Controller werden gesendet, MBase lässt sich grundsätzlich toll damit bedienen.

(Geplante) Features:
- Gehäuse in MBase-Abmessungen (soll genau neben die MBase passen, ggf. mechanisch verbindbar)
- Bedienelemente: 8 Potis, 2 Taster, 1 Schalter (Power On / Off), Status LED, Power LED
- Eingänge / Ausgänge: klassisches Midi-Trio + "Midi-Feedback" (mal gucken, ob sich letzteres tatsächlich realisieren lässt), 9V DC
- Software:
- Steuerung* von: Tune, Pitch, Decay, Harmonics, Pulse, Noise, Attack, EQ, Compression
- sowie für MBase11: Compression, Gate Time, Metal Noise, Volume, LFO Sync, LFO One Shot, LFO Intensity, LFO Rate
- Umschaltbar zwischen Jump Mode und Pickup Mode
- einfacher 8-Step Sequencer

zu*: Im Bereich von 0 bis 127, der jomoxige Bereich von 128 - 255 lässt sich per Midi nicht steuern.

mfG Bruce
 
Mal ein Update zum Oktakontrol (den MBasekontrol haben wir jetzt wieder nach hinten geschoben - "hin und her" können uns ja leisten :D ):

So sieht das jetzt grob aus:
OKtakontrol-Flyer.jpg


Infos gibt es dort: http://ag-kw.de/oktakontrol/

Insgesamt ist das jetzt gegenüber den zahlreichen Ideen jetzt wieder etwas abgespeckt, dafür aber auch wieder näher an meiner ursprünglichen Idee.
Prototypplatinen (sind zwei) dazu sind fertig & belötet, die Grundfunktionen programmiert, am Gehäuse arbeiten wir zur Zeit (sind da aber auch auf einem - für uns - sehr coolen Weg) ... mehr kommt demnächst ...

mfG Bruce

ps: Ja, ick weiß es heißt nicht "Elektrom" ...
 
Rein technisch gesehen ist es kein Problem zwei Oktakontrols zu benutzen ;-) ... wenn der Prototyp komplett ist, können wir aber auch mal über dieses Problem nachdenken (zwei Octatracks mit einem Oktakontrol zu steuern) ...

mfG Bruce
 
Bruce schrieb:
Nur damit hier nicht der (berechtigte ;-) ) Verdacht aufkommt, ick hätte aufgegeben ... nee, dauert nur alles aus diversen Gründen. Um noch etwas Erfahrungen zu sammeln habe ich bzw. haben wir jetzt erstmal ein etwas abgespecktes Midi-Controller-Projekt in Arbeit: MBaseKontrol, eine Controller-Kiste für die genial klingende, aber unvorteilhaft zu bedienende, Jomox MBase01 (und 11):

[ http://www.youtube.com/watch?v=AE6usnEUmNM (•Youtube VIDEOLINK) ]

Erste Tests verliefen bisher erfolgreich, Controller werden gesendet, MBase lässt sich grundsätzlich toll damit bedienen.

(Geplante) Features:
- Gehäuse in MBase-Abmessungen (soll genau neben die MBase passen, ggf. mechanisch verbindbar)
- Bedienelemente: 8 Potis, 2 Taster, 1 Schalter (Power On / Off), Status LED, Power LED
- Eingänge / Ausgänge: klassisches Midi-Trio + "Midi-Feedback" (mal gucken, ob sich letzteres tatsächlich realisieren lässt), 9V DC
- Software:
- Steuerung* von: Tune, Pitch, Decay, Harmonics, Pulse, Noise, Attack, EQ, Compression
- sowie für MBase11: Compression, Gate Time, Metal Noise, Volume, LFO Sync, LFO One Shot, LFO Intensity, LFO Rate
- Umschaltbar zwischen Jump Mode und Pickup Mode
- einfacher 8-Step Sequencer

zu*: Im Bereich von 0 bis 127, der jomoxige Bereich von 128 - 255 lässt sich per Midi nicht steuern.

mfG Bruce


kuhle sache. wie siehts mit den jomox controller aus, der tät mich auch interessieren, ganz zu schweigen vom octakontrol.
 
Den MBaseKontrol haben wir erstmal wegen dem Oktakontrol unterbrochen. Letzteren wollen wir auf jeden Fall zuerst fertig machen. Wenn das läuft werden wir auch den MBaseKontrol wieder aufnehmen. Die geposteten features funktionieren im einzelnen bis auf die "Midi-Feedback-Funktion" (da gibt die Mbase leider nicht das her, was ich mir vorgestellt habe) auch schon. Der ungefähre Stand / ToDo dafür ist:
- die einzelnen Funktionen in einem "großen" Programm zusammenschreiben (ist komplexer als ich dachte, das effizient und übersichtlich zusammenzuschreiben)
- Sequenzer-Timing verbessern (wobei es schon ganz gut läuft)
- Gehäuse (da helfen uns dann die Erfahrungen vom Oktakontrol)
- Revision der Platine

mfG Bruce
 
Hier mal ein hübsches rendering vom aktuellen Design (leichte Änderungen sind in der finalen Version noch möglich):

Oktakontrol-Detailbilder.jpg


mfG Bruce
 
Bitte, magst Du kurz umreissen, wie sich in dem aktuellen Rendering das Zusammenspiel der Drucktaster untereinnder und zusammen mit dem OT gestalten soll? Die "rechte" Seite ist ja deutlich abgespeckt worden.
 
serge schrieb:
Bitte, magst Du kurz umreissen, wie sich in dem aktuellen Rendering das Zusammenspiel der Drucktaster untereinnder und zusammen mit dem OT gestalten soll? Die "rechte" Seite ist ja deutlich abgespeckt worden.

Aaaalso, ...

... wenn der Oktakontrol eingeschaltet wird, sind die 8 Drucktaster unter den 8 Fadern im "Mute-Mode", d.h. sie muten bei draufdrücken die Audiokanäle 1 bis 8.
... wenn man den Drucktaster "Funktion" ganz rechts gedrückt hält, kann man die Modes umschalten bzw die 8 Drucktaster alternativ nutzen:
- Taster "Funktion" gedrückt halten + Taster #1 "Mute" einmal drücken schaltet in den "Mute-Mode", man kann dann mit den 8 Tastern die 8 Audiokanäle muten
- Taster "Funktion" gedrückt halten + Taster #2 "Solo" einmal drücken = wie vor, nur mit Solo
- Taster "Funktion" gedrückt halten + Taster #3 "Un-mute all" setzt alle mutes zurück
- Taster "Funktion" gedrückt halten + Taster #4 "Un-solo all" setzt alle solos zurück
- Taster "Funktion" gedrückt halten + Taster #5 "Trak-Arm" schaltet in den "Track-Arm-Mode", man kann dann mit den 8 Tastern die Track-Arms der 8 Audiokanäle aktivieren (oder wie auch immer man das jetzt richtig sagt)
- Taster "Funktion" gedrückt halten + Taster #6 "Rek-Arm" = wie vor, nur mit Rec Arm
- die letzten beiden Taster sind frei konfigurierbar (bspw. Fader-Zuweisung ändern o.ä./ letztlich ist alles frei konfigurierbar / aktuell noch per Arduino-Code selbst schreiben, geplant aber auch per Computer-Programm)

Rechts oben den Taster bitte vorerst vergessen, der ist (aktuell) ein reset-button (was auch per on/off schalter funktioniert) und kommt entweder ganz weg oder wird ersetzt mit einem zweiten "Funktion"-button ... oder so... :)

mfG Bruce
 


News

Zurück
Oben