Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Drum-Combinator (https://www.delphipraxis.net/21952-drum-combinator.html)

se0man 10. Mai 2004 16:09


Drum-Combinator
 
Hoi,

ich habe mir das vor kurzem etwas durch den Kopf gehen lassen,
für dessen Umsetzung (selbstverständlich mittels Delphi)
ich aber keinen vernünftigen Ansatz finde.

Und zwar handelt es sich dabei um einen kleinen Schlagzeug-Computer,
welcher meinetwegen erst einmal nur drei verschiedene Geräusche wiedergeben soll (Base, HiHat und Snare).
Diese will ich nun aber beliebig in einem Takt platzieren können,
sodass ich mir den Beat im Loop anhören kann.
Die Sounds sollen selbstverständlich auch gleichzeitig 'stattfinden' können.
Ich hoffe, es kam herüber, was ich sagen wollte.
Bin für Fragen jederzeit offen.

Das ganze ist gar nicht meine Idee,
die gibt es schon lange
und wurde auch schon in vielen Programmen umgesetzt.

Ein offensichtlich in VB programmierte (In der Kopfzeile des Programms sitzt das VB-Standart-Symbol) Programm,
das ungefähr meinen Vorstellungen entspricht,
gibt's unter http://www.crunch-music.de/downloads.html kostenlos herunterzuladen (nennt sich Groove-Trainer).

Ich wäre sehr froh,
wenn ihr mir irgendwie dabei helfen könntet,
oder mir sagen könntet,
wir ihr das bewerkstelligt hättet.

Thanx


-se0man

dizzy 10. Mai 2004 18:18

Re: Drum-Combinator
 
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 :roll: ;) )

gruss,
dizzy

se0man 10. Mai 2004 19:33

Re: Drum-Combinator
 
Hey, erstmals Danke für die schnelle Antwort.
Wegen der Hilfe habe ich wohl falsch ausgedrückt,
ich hatte nämlich schon eigentlich vor,
das Ding alleine durchziehen zu können.
Mit Hilfe erhoffte ich vielmehr Tipps und Hilfestellungen,
wie du sie mir ja bestens offerieren konntest.

Ehrlich gesagt,
so kompliziert wie es bei dir herüberkam,
hatte ich es nicht in Erwägung gezogen.
(Außerdem bin ich ja noch in einem Status,
in dem ich mich getrost Anfänger schimpfen darf) :oops:

Fruity Loops werde ich mir gleich mal betrachten.

Danke nochmal :mrgreen:

- se0man

dizzy 11. Mai 2004 00:28

Re: Drum-Combinator
 
Zitat:

Zitat von se0man
[...]so kompliziert wie es bei dir herüberkam,
hatte ich es nicht in Erwägung gezogen.
(Außerdem bin ich ja noch in einem Status,
in dem ich mich getrost Anfänger schimpfen darf) :oops:

Man muss es auch nicht gleich soo kompliziert machen. Hab nur mal so aufgelistet, was man so machen könnte, und den Aufwand den es bedeuten würde ;) Ein einfacher "Spiel-Mir-Samples-Auf-Timer-Event"-Eumel dürfte noch relativ einfach werden. Allerdings kann es dir passieren, dass das keine geeignete Basis für o.g. Features bildet. Das heisst, dass man, falls man dahingehend weiter entwickeln will, um ein Rewrite dieses Parts nicht umhin kommen wird :zwinker:

...Das mit dem "helfen" hab ich wohl deswegen falsch verstanden, weil du mich jetzt auf doofe Ideen gebracht hast... Ich wünschte, ich hätte Zeit für etwas vergleichbares. Aber ich will jetzt erstmal mein aktuelles Fun-Projekt fertig bekommen. Ich mach so selten etwas "wirklich" fertig... das nervt mich schon :stupid:

Zitat:

Zitat von se0man
Fruity Loops werde ich mir gleich mal betrachten.

Ist ein optimales Studienobjekt für so etwas! Und man kann nebenbei noch richtig gute Musik damit zaubern *gg* Mitlerweile ist FL ein vollwertiger Sequenzer mit div. PlugIn-Schnittstellen und eigenen PlugIns und pi und po und trara und einfach groß. Ich kannte es schon aus einer Zeit, als es wirklich nur eigene Wave-Samples aneinanderreihen konnte, und so 2 bis 3 eigene Synthesizer mitbrachte. Da ist's schon lange drüber. Also nicht erschrecken ;)



MfG,
dizzy


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz