Nur OnTopic VMC System - MIDI-Eurorack-Module auf Arduino-Basis - SQ-3P, ChordTrigger, Clock-Distribution, voltage-to-Midi...

Bitte stark genau im Thema bleiben wie es im ersten Beitrag steht. Alles andere gilt als OT und kann gelöscht werden.
ah, ok... in dem Fall könnte es evtl. auch helfen im mainloop den Buffer öfter zu lesen...

also like this:


midi.read();

display.ausgabe();

midi.read();

irgendwasrechnen...

midi.read();

button1.read();

...
 
Mach ich eh.
Das Problem tritt wirklich nur bei BufferOverrun wg MIDI-Loop auf.
 
ok, dann musst du wohl das Interrupt-Fass aufmachen...

(aber es wundert mich schon etwas was da in deinem Code so lang laufen kann - zwischen zwei MIDI-Befehlen vergeht im Vergleich zur Prozessorgeschwindigkeit eine sehr sehr lange Zeit und allzu komplexe Berechnungen sind für die Anwendung sicher auch nicht nötig)

EDIT: tippe aber stark auf das Display... evtl. nicht so oft und nicht "am Stück" updaten
 
Zuletzt bearbeitet:
Es gibt zwei Sachen:
1.) ich habe (noch) eine floating-point operation bei der Tempoberechnung für die interne Clock drin. Der Atmeg328 hat aber soweit ich weiß keine Floatingpoint-Unit drin. Also muss er den Kram mühsam "zu Fuß" rechnen.
2.) Ja das dürfte das Display sein. Das Display ist aber so ziemlich Kern der ganzen Applikation mit der Darstellung der verschiedenen Step-Arten. Beim SQ-3P ists ja noch harmlos. Aber beim chordTrigger und bei einem kommenden SQ-4m (vier Mono-Sequenzen mit separaten Sequenzlängen und separatem Einstarten) wird die echtzeitnahe Display-Darstellung komplett essentiell.
 
  • Daumen hoch
M.i.a.u.: Max
ok dann noch viel Erfolg...

die float-Geschichte ist es eher nicht würde ich sagen, ist zwar wirklich nicht auf dem Chip implementiert soweit ich weiß, aber trotzdem kann ich es mir nicht vorstellen dass dir das hier das Genick bricht

wenn du das Display-Update in sagen wir vier Schritten machst mit jeweils einem Serial-Read dazwischen wäre das aus User-Sicht aber immer noch wie realtime würde ich sagen

mit Interrupts wird's halt leider sehr schnell sehr hässlich
 
Kann mann nicht eine Display abschaltung programmieren? und zb das dann einschalten bei stop und mit einer tastencombo aktivieren / deaktivieren ?
 
Kann man natürlich alles. Aber das ist letztlich nicht das Problem. Das Problem ist tatsächlich der kontinuierliche BufferOverrun im Fall eines MIDI-Loops. Das hat schon ganz andere Geräte zum Komplettaufhängen gebracht.
 
So, das Wetter wird wärmer, ich kann langsam auf den Balkon und löten.
Dann soll der VMC noch ein schönen kleines Holzgehäuse kriegen, wobei schön wirds vielleicht nicht unbedingt...

Bin schon dolle gespannt und noch mal ein dickes Dankeschön an Fanwander. ;-)

Gibt es eigentlich einen für den VMC1 relevanten Unterschied zwischen den Arduino Nano Revisionen? Aktuell wird wohl v3 verkauft, ich hab aber noch einen alten rumfliegen...
 
Zuletzt bearbeitet:
Gibt es eigentlich einen für den VMC1 relevanten Unterschied zwischen den Arduino Nano Revisionen? Aktuell wird wohl v3 verkauft, ich hab aber noch einen alten rumfliegen...
Auf jeden Fall der unterschiedliche USB-Interface Chip; der ist aber auch schon in der Programmier-Anleitung erwähnt. Sonst ist mir noch nichts aufgefallen. Ich hab aber nur einen 1er Clone, 3er Originale und 3er Clones probiert.

Ich hab durch Zufall heute einen Arduino Nano Every ausprobiert (also die neueste Version mit mehr ProzessorPower und RAM), und da funktioniert - warum auch immer - die Änderung von per Poti eingegebenen Werten nicht. Die Potis selbst werden aber durchaus korrekt abgefragt. Was da los ist ist mir noch nicht ganz klar.
 
Der @fanwander SQ3P in freier Wildbahn (beim Happy Knobbing).
Echt klasse!
Freut mich. Hoffentlich heute abend gibts noch eine Version 1.13 bei der man die Center-Taste für die Transponierung wählen kann.

SQ-4M wird immer krasser (vier Tracks, jeweils unterschiedliche Länge, unterschiedliche Clockteiler, ein Track kann einen anderen transponieren und die Velocity kommt wieder von einem anderen Track, sehr spannend...), ist aber noch nicht vorführfähig
 
Jetzt NEU!!11elf:

https://www.florian-anwander.de/sq-4m/

SQ-4m
Sequencer mit vier mono Spuren, unabhängig lang, unabhängige Clock-Ratio.
Noch eine Beta-Version, macht aber schon sehr großen Spaß!


Version 0.15 0.16 ist released:

Der Sequencer kann jetzt auch MIDI CC-messages senden - was sehr großer Spaß ist, eine oder zwei Noten-Tracks und dazu der Rest CC-Tracks.

Man kann übrigens die Step-Länge und/oder Track-Anzahl ändern. Zwar nur im Source code, aber es ist sehr einfach und ist im Manual beschrieben. Die maximale Anzahl an zu speichernden Schritten darf 256 nicht überschreiten, aber mit 16 Tracks zu 16 Steps kommt man schon verdammt weit. (der Default ist im moment noch aus Kompatibilitätsgründen bei 4 Tracks).
EDIT1: Das mit der Änderung der Track/Step-Anzahl muss ich leider korrigieren - da passt nicht mit dem momentanen Aufbau des Factory-Reset zusammen. Aber das werde ich noch vor der Codegrößen-Optimierung angehen, weil es wirklich super ist, viele Spuren zu haben.


EDIT2: Das mit dem Factory-Reset ist hoffentlich gefixt. Ich hab jetzt die Spuranzahl auf 14 erhöht.


Leider bin ich jetzt mit der Code-Länge an der Grenze des Arduino angelangt. Bevor ich weiteres Features hinzunehmen kann, muss ich erst mal den Code stringenter gestalten.
 
Zuletzt bearbeitet:
Hört sich super an!
Ich hoffe ich komme bald mal dazu das Update zu machen.
 

Mal ein kleines Beispiel, was so mit dem SQ-4M geht:

Eingespielt sind 13 Spuren die genau einen Step lang sind mit jeweils nur einem einzigen Ton: A3,C4,E4,F4,A4,C5,E5,F5,A5,C6,E6,F6,A6.
Der Witz ist, dass jede Spur mit einem anderen Clockteiler vom eingehenden Clock getriggert wird, und zwar genau entsprechend der Spurnummer. Also Spur 1 spielt auf jedes Clocktick, Spur2 und jedes zweite, Spur3 auf jedes dritte, und so weiter. Beim Start sind alle Spuren gemutete, und nach und nach ent-mute ich die Spuren (beginnend mit dem C4). Zum Schluss kommt noch eine 14 Spur dazu die einen oktavierenden Bass spielt, ein F2 und F3 auf den Steps 1 und 7 spielt. Zum Schluss hin mute ich immer mehr Spuren.
Das ganze wird dann einfach ab und zu hoch oder runter transponiert. Die Velocity ist Random gesteuert und wird in der Mitte angehoben.
 
Zuletzt bearbeitet:
Anhang anzeigen 143925
Mal ein kleines Beispiel, was so mit dem SQ-4M geht:

Eingespielt sind 13 Spuren die genau einen Step lang sind mit jeweils nur einem einzigen Ton: A3,C4,E4,F4,A4,C5,E5,F5,A5,C6,E6,F6,A6.
Der Witz ist, dass jede Spur mit einem anderen Clockteiler vom eingehenden Clock geteilt wird, und zwar genau entsprechend der Spurnummer. Also Spur 1 spielt auf jedes Clocktick, Spur2 und jedes zweite, Spur3 auf jedes dritte, und so weiter. Beim Start sind alle Spuren gemutete, und nach und nach ent-mute ich die Spuren (beginnend mit dem C4). Zum Schluss kommt noch eine 14 Spur dazu die einen oktavierenden Bass spielt, ein F2 und F3 auf den Steps 1 und 7 spielt. Zum Schluss hin mute ich immer mehr Spuren.
Das ganze wird dann einfach ab und zu hoch oder runter transponiert. Die Velocity ist Random gesteuert und wird in der Mitte angehoben.

EDIT: das angehängte STE-005.mp3 ist das gleiche Pattern ohne Clockteiler und ohne Random Velocity.
Ist das Piano aus nem Roland Rompler?
 
Es gibt jetzt eine inoffizielle Version 0.17:

Die Anleitung auf der Seite ist nicht angepasst, und der link ist auch nur hier bekannt.

Zwei neue Funktionen:
WRITE drücken und halten und dann STOP drücken -> Löscht alle Spuren der sequenz (bzw schreibt lauter Pausen und setzt auf Steplänge 1)

und (viel wichtiger):

WRITE ist jetzt bei laufender Sequenz möglich.

Die aktuell gewählte Spur wird benutzt.
Beenden des Schreibvorgangs mit PLAY (damit die gesamte Sequenz weiterläuft)
Das Einstarten auf einen gewünschten Zeitpunkt ist etwas tricky, und ich habe leider (noch?) keine Möglichkeit die Sequenz zu verschieben.
 
Zuletzt bearbeitet:
Auf jeden Fall der unterschiedliche USB-Interface Chip; der ist aber auch schon in der Programmier-Anleitung erwähnt. Sonst ist mir noch nichts aufgefallen. Ich hab aber nur einen 1er Clone, 3er Originale und 3er Clones probiert.

Ich hab durch Zufall heute einen Arduino Nano Every ausprobiert (also die neueste Version mit mehr ProzessorPower und RAM), und da funktioniert - warum auch immer - die Änderung von per Poti eingegebenen Werten nicht. Die Potis selbst werden aber durchaus korrekt abgefragt. Was da los ist ist mir noch nicht ganz klar.
Hast du hier mittlerweile evtl. schon rausbekommen können, woran das liegen könnte?
 
Ich hab die SQ-3P Software mal provisorisch so modifiziert, dass auch Expressive E Osmose angesteuert werden kann. Dazu war es nötig, dass direkt mit dem NoteOn ein ChannelPressure Befehl gesendet wird (der Pressure-Wert selbst ist unerheblich). Den 5Pin MIDI Eingang muss man auf DSP-In oder DSP-In+Thru stellen und Osmose empfängt nur auf Kanal 1 (scheint ein momentan provisorischer Modus zu sein).

Osmose reagiert auf die Velocity, die über CV1 bestimmt wird. Die CV-gesteuerte Notenlänge ist in der Version derzeit deaktiviert.

 
Mal ein kleines Beispiel, was so mit dem SQ-4M geht

Hat das (SQ4M) mal jemand ausprobiert und kann berichten?
Das Beispiel von Florian klingt ja supergut, insofern bin ich versucht das auszuprobieren.
Aber man muss dafür den SQ-3P runterwerfen, richtig? Ich scheue noch den Aufwand... Die Anleitung für die Installation neuer Software sieht für mich erst mal einschüchternd aus. Und auf den SQ-3P kann ich nicht verzichten.
 


Zurück
Oben