Re: Trackermodul-Engine (sehr einfach)
Verfasst: Mo 14. Mär 2016, 09:39
Schöner Thread – ich konnte zwar noch nicht alles lesen. Aber mit Schleifen meinst Du das Loopen eines Samples (ich habe bisher nie verstanden, was Du mit den Schleifen konkret meinst)? Ich denke nicht, dass das wild ist. Du musst eh irgendwann die Lauflänge des Samples abfragen/behandeln. Ist die Lauflänge überschritten, dann beginnst du halt wieder von vorn. Diese Abfrage ist auch nicht zeitintensiv, weil Du sie ja nur machen musst, wenn die Samplelänge überschritten ist und die musst Du eh abfragen.
Wegen der Geschwindigkeit würde ich mir keine Sorgen machen. Mein Player konnte auf einem 386sx16 gerade einmal mit Ach und Krach 4 channels bei 16kHz vermixen. Ich habe dort eine CPU-Auslastung von ca. 90%. Auf demselben Rechner vermixt z.B. Inertia Player 8 channels bei 44 kHz und hat noch ordentlich Luft nach oben (was man allein schon an der Bedienbarkeit der Benutzeroberfläche etc. merkt). Auf einem P150 jedoch ist es nahezu vollkommen egal, ob mein Player während eines Games noch mitläuft oder nicht. Derselbe Player nimmt dort nur noch 4% der CPU in Anspruch. Bezogen auf einen Pentium 60 macht das vielleicht den Unterschied aus, ob man einen P60 oder einen P66 braucht. Und das ist wirklich keine Sache, worüber ich mir Gedanken machen würde.
Das einzige Problem, das ich bei Sample-Schleifen hatte, war ein Format-Konventions-Problem. Beispiel: Samplelänge von 22 byte, zuletzt gespielte Sample-Position = 20, Schrittweite wegen aktueller Tonhöhe = 3,25. Ergo ergäbe sich als neue Sample-Position 23,25 (abgerundet auf 23). Muss ich beim Loopen mit Sample-Position 0 beginnen, oder mit Position 1,25 (abgerundet auf 1)?
Ich habe damals beide Versionen programmiert, aber leider kein eindeutiges Ergebnis erhalten. Entweder hatte bei dem einem MOD das Wiederbeginnen fix bei Null schief geklungen, während bei dem anderen ein positionsabhängiges Loopen schief geklungen hat. (Mein Fehler lag also woanders – wahrscheinlich bei den verflixten Effekten) Bei größeren Samples (>500 byte) war es für meine Ohren jedoch total egal, ob beim Loopen immer fix mit Null oder positionsabhängig begonnen wurde.
Als Testsong würde ich doch eher was kurzes machen, wie z.B. den Addams-Familiy-Theme-Song (https://www.youtube.com/watch?v=X6QzbvH-ZNo) und Gesang durch irgendwas anderes ersetzen. Aber mach am Besten, worauf Du am meisten Lust hast!
Wegen der Geschwindigkeit würde ich mir keine Sorgen machen. Mein Player konnte auf einem 386sx16 gerade einmal mit Ach und Krach 4 channels bei 16kHz vermixen. Ich habe dort eine CPU-Auslastung von ca. 90%. Auf demselben Rechner vermixt z.B. Inertia Player 8 channels bei 44 kHz und hat noch ordentlich Luft nach oben (was man allein schon an der Bedienbarkeit der Benutzeroberfläche etc. merkt). Auf einem P150 jedoch ist es nahezu vollkommen egal, ob mein Player während eines Games noch mitläuft oder nicht. Derselbe Player nimmt dort nur noch 4% der CPU in Anspruch. Bezogen auf einen Pentium 60 macht das vielleicht den Unterschied aus, ob man einen P60 oder einen P66 braucht. Und das ist wirklich keine Sache, worüber ich mir Gedanken machen würde.
Das einzige Problem, das ich bei Sample-Schleifen hatte, war ein Format-Konventions-Problem. Beispiel: Samplelänge von 22 byte, zuletzt gespielte Sample-Position = 20, Schrittweite wegen aktueller Tonhöhe = 3,25. Ergo ergäbe sich als neue Sample-Position 23,25 (abgerundet auf 23). Muss ich beim Loopen mit Sample-Position 0 beginnen, oder mit Position 1,25 (abgerundet auf 1)?
Ich habe damals beide Versionen programmiert, aber leider kein eindeutiges Ergebnis erhalten. Entweder hatte bei dem einem MOD das Wiederbeginnen fix bei Null schief geklungen, während bei dem anderen ein positionsabhängiges Loopen schief geklungen hat. (Mein Fehler lag also woanders – wahrscheinlich bei den verflixten Effekten) Bei größeren Samples (>500 byte) war es für meine Ohren jedoch total egal, ob beim Loopen immer fix mit Null oder positionsabhängig begonnen wurde.
Als Testsong würde ich doch eher was kurzes machen, wie z.B. den Addams-Familiy-Theme-Song (https://www.youtube.com/watch?v=X6QzbvH-ZNo) und Gesang durch irgendwas anderes ersetzen. Aber mach am Besten, worauf Du am meisten Lust hast!