Grundsätzlich einmal brauchst du ein System das die Samples abspielt. bass.dll z.B., oder auch fmod. Interessant wird es, wenn du noch Effektprozessoren emulieren willst, evtl. sogar "verzögerungsfrei" (geht nie ganz). Dann musst du deine Sounds selber vorher mischen und durch den Effekti jagen. Das kostet Zeit - also ist pre-processing dran. Das heisst, du müsstest einen Zeitpuffer von der Ausgabe des Streams aus dem Effekti bis zum Abspielen einen kleinen Zeitraum warten, da nicht gewährleistet ist, dass der Effekti die Verarbeitung in konstanter Geschwindigkeit erledigt (wird er praktisch nie tun
Win ist nunmal kein Echtzeit-
OS).
Dann brauchst du ein sehr feines Zeitraster. Unter Cubase ist es eine Zahl, die sich sowohl durch 2 als auch durch 3 teilen lässt, um ein "gerades" "nicht wackelndes" Raster für die Noten zu bekommen. Diese Zahl darf natürlich auch nicht zu klein sein! Cubase hat da irgendwas > 2000 glaub ich (weiss net mehr so genau). Also: Ein Takt besteht aus dieser Anzahl an "Ticks". Das Problem hierbei: Ein Timer, der diesen Takt in geforderter Geschwindigkeit "sauber und gerade" vorgibt. Da böte sich
imho zunächst der MMTimer an - wenn das nicht reicht, muss was krasses her
Man kann aber sicherlich auch mit geringerer "Ticks"-Auflösung fahren. Cubase (und auch Logic) sind natürlich die Spitzenprodukte in dieser Sparte. Also sowas wie eine geeignete 2er-Potenz o.ä. Dann langt der MMTimer alle Male.
Die Eingabe der Daten (des Rythmus): Ich würd's wie die Synthies von Roland machen (TR-505 z.B.). Die haben eine Knopfreihe von 16 oder 32 Buttons, die man ein- und ausschalten kann. Diese sind zugleich das Raster, und man muss nur noch durch die Knopfreihe "laufen" zum Abspielen. Ein Auswahlknopf welches Instrument man gerade bearbeiten möchte gehört dann noch dazu. Will man noch mehr als nur 16-32 Noten hintereinander bringen, so müssten "Patterns" eingebaut werden. Dass heisst, es gibt mehrere solcher "Knopfreihen" (virtuell) für ein Instrument, und diese werden nacheinander abgespielt. In einer guten Implementierung könnten die dann als eigenständiger Block dienen, den man an beliebiger Stelle im Lied einsetzen kann. (Schau dir am besten mal Fruity Loops an, das ist so ziemlich genau das, was ich hier beschreibe! Und affengeil dazu
Hat auch als kleiner Drumcomputer angefangen - mittlerweile ein
sehr krafvolles Tool!)
Die Probleme im Grundsatz sind: Schnelles Abspielsystem; schnelle Streamverarbeitung beim Mixen und bei Effekten, Pre-Processing, ein sauberes und stabiles Raster.
Klingt alles in allem nach einem
sehr interessanten Projekt. Viel Erfolg! (Ich kann leider net mit machen, die Zeit, die Zeit
)
gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel