modulo offset???

Fragen und Antworten, Beispiele

Moderator: herw

Antworten
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

modulo offset???

Beitrag von helmsklamm »

sry, aber ich hab grad nen totalen aussetzer:

prob: sequenza rattert brav von pos 0-63. möchte ich die seqeunz kürzen, einfach am modulo B eingang die wunschkonstante setzen und die range wird nach konstantenvorgabe sauber "geloopt". soweit so klar.

nun möchte ich aber aber einen "offset", bspw. soll der sequenza nur die positionen 7-19 spielen. damit es bei 19 wieder nullt, baruch ich also eine 18konstante am B IN. soweit so einfach,. das prob sind die 7 steps offset. häng ich einen addierer vor das modulo, beginnt alles stets bei null, hänge ich den addi dahinter, läuft es logischerweise hinten bis 26 statt 19.

ich denk, ich brauch ein start- und ein endmodulo, aber ich hab grad vollblockade: ich krieg diesen zwangsweise 0 start nicht "geoffset".


appropos: sofern ich das überblicke "modulot" nur der B , während A keine ahnung was macht - hab ich leider auch komplett vergessen:(
und wozu dient eigentlich der div-out? ausser das er nur integer ausgibt, unterscheidet er sich doch nicht vom normalen div, oder?
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
Triton
synthesist
Beiträge: 58
Registriert: 1. August 2010, 17:22
Wohnort: Gießen
Kontaktdaten:

Re: modulo offset???

Beitrag von Triton »

Argh, Modulo ist immer so vertrackt.

Mal probieren:

(A-19) mod 12 + 7
bzw. (A+5) mod 12 + 7 (müsst dasselbe rauskommen)

Da landet die 19 auf der 7. Hm.

Welche Zahl soll denn auf welche Zahl gehen? 0-63 gehen kreisweise rein, raus soll der Loop 7-19?

---

Der Div macht die normale Integer-Division glaub ich, mit konsequentem Abrunden.
Benutzeravatar
KlangRaum
synth guru
Beiträge: 647
Registriert: 1. August 2006, 12:55

Re: modulo offset???

Beitrag von KlangRaum »

Tip: Nie mit einer absoluten Start bis Endposition rechnen sondern immer mit Offset und Anzahl der Steps.... dann macht das mit dem Addieren und anschliessendem Modulo (zum wrappen) keine Probleme. Start und Ende sind dann Werte, die ganz am Ende der Berechnung fast schon wie nebenbei rauskommen.

Ich schau später mal, irgendwo hab ich ne Universalschaltung...

Gruss
Peter
Siggi Natur ? :mrgreen:
Benutzeravatar
KlangRaum
synth guru
Beiträge: 647
Registriert: 1. August 2006, 12:55

Re: modulo offset???

Beitrag von KlangRaum »

Schau mal hier, vielleicht hilft Dir das weiter:
Seq_clock.jpg
Ist eigentlich selbsterklärend...
Pattern Len gibt die Länge vor, Clockshift verlegt den Startpunkt nach vorne (Rotation). Vom Prinzip ist das auch leicht zu erweitern, wenn Du zb einen Ausschnit von 16 aus 64 Steps abspielen willst...

Gruss
Peter
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Siggi Natur ? :mrgreen:
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Re: modulo offset???

Beitrag von helmsklamm »

Triton hat geschrieben:
Welche Zahl soll denn auf welche Zahl gehen? 0-63 gehen kreisweise rein, raus soll der Loop 7-19?
genau so.

@klang…

ich hab mich wohl missverstädnlich ausgedrückt - ich wollte keinen zeitlichen versatz, sondern ein "value-offset". deine schalte generiert aber nur einen zeitlichen offset: Das pattern-modulo entspricht ja meiner eh vorhandenen 0-63. das shift-add ist klar, das letzte modulo nullt wieder alles, allerdings um den shiftwert zeitlich versetzt!
ich such aber nen echten werteversatz mit "wrap" beschneidung: wenn ich vorne 5 positionen zuaddiere, sollen hinten 5 positionen abgeschnitten werden.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
Rampensau
meister
Beiträge: 192
Registriert: 6. Dezember 2009, 20:32

Re: modulo offset???

Beitrag von Rampensau »

Das Intervall ist ja [7, 19] = [0+7, 12+7]. Umfasst also 13 Schritte und ist um 7 Schritte von der 0 verschoben.

Folglich benötigst du x mod 13 und addierst direkt danach ne 7 hinzu.
Modseq_A.jpg
Wenn du die Intervallgrenzen doch direkt in Anfangs- und Endschritt eingeben willst, ergibt sich das Offset aus dem Startwert. Und der Modulooperator (also die Anzahl der Schritte) aus der Differenz von Anfangs- und Endschritt +1.
Wenn man jetzt den Fall abfangen will, dass sich der Startwert höher als der Endwert eingeben lässt, also dass der Zähler rückwärts läuft :D , muss man auch noch was zwischenklemmen. Ich habs mit nem Rectify-sign gelöst.
Modseq_B.jpg
Modulo Seq.zip
Wer näher nachvollziehen will, was das Modulo macht, kann ja mal in die Core-Umsetzung reinschauen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Rampensau am 3. März 2011, 22:06, insgesamt 1-mal geändert.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: modulo offset???

Beitrag von herw »

Rampensau hat geschrieben:Das Intervall ist ja [7, 19] = [0+7, 12+7]. Umfasst also 13 Schritte und ist um 7 Schritte von der 0 verschoben.

Folglich benötigst du x mod 13 und addierst direkt danach ne 7 hinzu.
Modseq_A.jpg
Wenn du die Intervallgrenzen doch direkt in Anfangs- und Endschritt eingeben willst, ergibt sich das Offset aus dem Startwert. Und der Modulooperator (also die Anzahl der Schritte) aus der Differenz von Anfangs- und Endschritt +1.
Wenn man jetzt den Fall abfangen will, dass sich der Startwert höher als der Endwert eingeben lässt, also dass der Zähler rückwärts läuft :D , muss man auch noch was zwischenklemmen. Ich habs mit nem Rectify-sign gelöst.
Modseq_B.jpg
Modulo Seq.zip
Wer näher nachvollziehen will, was das Modulo macht, kann ja mal in die Core-Umsetzung reinschauen.
das ist sehr schön, dass du primary und core direkt im Vergleich darstellst, so muss es sein. So viel Core wie möglich und so wenig primary wie nötig!!
Benutzeravatar
Rampensau
meister
Beiträge: 192
Registriert: 6. Dezember 2009, 20:32

Re: modulo offset???

Beitrag von Rampensau »

@Peter:
das Modulo in der Mitte in deiner Schaltung ist redundant. Das kann man doch weglassen.
Es gilt:
Modulo.jpg
wobei C der Rotations-Parameter ist. Unsere Schaltungen sind übrigens (abgesehen von den Step-Filtern und der Clockrate) identisch, wenn ich in meiner Schaltung die Rotation vorklemme und du in deiner Schaltung noch das Offset hinterklemmst.

"mod" wird übrigens oft als "%" geschrieben. In dem Zusammenhang wird "div" als "/" geschrieben.

Wie schon richtig beobachtet, ist "div" das Ergebnis einer ganzzahligen Division, ohne Beachtung der Nachkommastellen.
Modulo ist dann der Rest unter Beachtung der Nachkommastellen.

Bsp:

1.5 / 1 = 1
1.5 % 1 = 0.5

denn:
1 * 1 + 0.5 = 1.5

Dieser Fall ist mir unklar:

Bsp:
-5 / 2 = -3 (????)
-5 % 2 = 1

denn:
-3 * 2 +1 = -5

Der Windows-Taschenrechner lässt negative Reste (?) zu, also sieht da die Rechnung anders aus:

Bsp:
-5 / 2 = -2
-5 % 2 = -1 (????)

denn:
-2 * 2 +(-1) = -5

1. Kann ein Rest ja nicht negativ sein, oder?
2. Wenn man auf die Art zB Dezimalzahlen in Binärdarstellung konvertiert, ist der zweite Weg (Windows-Rechner) nicht zulässig.
3. Das Ergebnis der Div-Operation ist im ersten Weg einfach nur unbefriedigend und nicht wirklich intuitiv.
4. Rechnet der Windows Rechner falsch?
herw hat geschrieben:das ist sehr schön, dass du primary und core direkt im Vergleich darstellst, so muss es sein. So viel Core wie möglich und so wenig primary wie nötig!!
Core ist ja auch super! Allein schon wegen der QuickBusse.

Grüße
Benjamin
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Re: modulo offset???

Beitrag von helmsklamm »

hey benji

vielen dank. die schalte iss ja herrlich simpel. kA was ich hier fürn ausfall hatte. danke.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Antworten