Autor |
Beitrag |
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: So 29.10.06 18:36
Hier also mein aktuelles Projekt.
Nach dem Lesen dieses Tutorials von Delphic/Nico Michaelis, und nach dem Testen der mitgelieferten Samples hab ich mich auch mal dran gemacht, einen einfachen Tracker zu schreiben. Dabei kam richtiges C64/Amiga Feeling auf....
Mithilfe Midi-ähnlicher Tracker-Dateien werden in Echtzeit die Lieder abgespielt, die man mehr oder weniger komfortabel erstellt hat.
Zur Technik: die Events(Note An/aus usw.) werden in verschiedenen Tracks erstellt. Vor dem Abspielen mithilfe der fmod-dll werden die Tracks vorkompiliert, damit man damit was anfangen kann. Instrumente gibts im Moment folgende:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| Synth_Instr_Sine = $0000; Synth_Instr_Triangle = $0001; Synth_Instr_Sawtooth = $0002; Synth_Instr_Pulse = $0003; Synth_Instr_Noise = $0004; Synth_Instr_Piano = $0100; Synth_Instr_Clavinet1 = $0101; Synth_Instr_Clavinet2 = $0102; Synth_Instr_EOrgan = $0103; Synth_Instr_Flute = $0200; Synth_Instr_Trumpet = $0201; Synth_Instr_Bell = $0300; |
Zur Bedienung: in der Events-Liste spielt sich fast alles über die rechte Maustaste ab. Es gibt kein Undo/Redo (wäre auch recht schwierig), also lieber Sicherungskopien speichern!
Der Editor ist nicht OpenSource, da die da drin verwendeten Komponenten 1. keiner hat und 2. ich sie nicht veröffentlichen kann, da sie "zusammenkopiert" sind, zumindest eine. Außerdem gibts da nichts interessantes
Der Tracker selbst wird aber als OpenSource veröffentlicht. Der Code dürfte Nico etwas bekannt vorkommen, die eigentliche Tonerzeugung ist aus dem genannten Tutorial.
Wer Kommentare, Fehler oder sonst Feedback hat, immer her damit!
Auch wenn ich nicht weiß, ob ich noch mehr Instrumente mache. Es soll schon das Electro-Musik-Feeling da bleiben ...
Update 6 (2008-04-22)
*Änderung des BT-Dateiformats (Version 1->2), noch mehr Redundanzen beseitigt
*BT-Dateien haben jetzt Versionssignatur, ab diesem Update aufwärts wird alles (lese-)kompatibel sein!
*Timeline-Editor
*Neue Instrumente: Drumkit
*BTS: Repeat-Bug gefixt
Update 5 (2007-11-27)
*Änderung des BTS Formats bzgl. NoteDelay
*Änderung des BT-Dateiformats (Version 0->1), Redundanzen beseitigt
Update 4 (2007-11-26):
+BTS
Update 2/3:
*Komische Fehler behoben
Update 1:
+Rauschen als Wellenform
+Lautstärke über Volume-Events
+kleinere Fixes
Downloads:
BlitzTracker-Core: (Delphi-Src, 10kb) www.martoks-place.de...phi/bt/Synth_src.zip
Der Synthie mit Beispielen: (Exe+bt+bts, 520kb) www.martoks-place.de.../delphi/bt/Synth.zip
Lesenswert auch die genauere Beschreibung auf meiner Seite. Hier wird auch genauer auf die Möglichkeiten des Editors eingegangen.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Zuletzt bearbeitet von Martok am Di 22.04.08 17:51, insgesamt 7-mal bearbeitet
|
|
alias5000
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Di 31.10.06 21:35
Also ich krieg da nur Fehler...
Beim Programmstart kommt ein "Fehler bei der Bereichsprüfung" und wenn dann die Programmoberfläche angezeigt ist, kommt für jeden Knopf eine AV.
Gruß alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Chryzler
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Di 31.10.06 21:50
alias5000 hat folgendes geschrieben: | Also ich krieg da nur Fehler...
Beim Programmstart kommt ein "Fehler bei der Bereichsprüfung" und wenn dann die Programmoberfläche angezeigt ist, kommt für jeden Knopf eine AV.
Gruß alias5000 |
Bei mir auch. Trotzdem hab ich's hinbekommen, ein paar Tönchen zu spielen.
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 31.10.06 22:43
alias5000 hat folgendes geschrieben: |
Beim Programmstart kommt ein "Fehler bei der Bereichsprüfung" |
Kann eigentlich nicht sein....
alias5000 hat folgendes geschrieben: | und wenn dann die Programmoberfläche angezeigt ist, kommt für jeden Knopf eine AV. |
Stimmt, die Actionlist hat gemacht, was sie wollte...
Hab ne geupdatete Version hochgeladen, die auch die fmodConf.exe enthält. Sollte Eigentlich auch ohne Config gehen, aber man weiß ja nie....
Chryzler hat folgendes geschrieben: |
Trotzdem hab ich's hinbekommen, ein paar Tönchen zu spielen. |
*Freu* Falls was gutes(oder zumindest besseres als meine 3 Tracks...) bei rauskommt, lädst dus hoch, ja?
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
alias5000
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Mi 01.11.06 11:42
hm sorry, aber jetzt gehts noch weniger. Fehler bei Bereichsprüfung bleibt. Danach folgt aber eine endlose Schleife von AV Meldungen auf die Adresse 00000000. (Relativ unabhängig, was ich bei der fmodconf.exe einstell)
Gruß alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Chryzler
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Mi 01.11.06 12:07
Bei der ersten Version ist glaub ich gekommen, dass er auf den files-Ordner nicht zugreifen kann, 'Zugriff verweigert'.
|
|
alias5000
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Mi 01.11.06 12:21
Ja das hatte ich jetzt bei der zweiten Version auch. Habs dann woanders hinkopiert und dann gings komischerweise. Beide stellen waren ganz einfach Ordner...
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 01.11.06 13:37
alias5000 hat folgendes geschrieben: | Ja das hatte ich jetzt bei der zweiten Version auch. Habs dann woanders hinkopiert und dann gings komischerweise. Beide stellen waren ganz einfach Ordner... |
Ich glaube, das war der entscheidende Hinweis. Bei mir: woanders hinkopiert->Fehler!
Es hatte über drei Ecken mit der Sprachdatei zu tun. Der wollte den ORDNER als DATEI aufmachen....
Jetzt sollte es gehen.
Langsam wirds peinlich...es sollte hier doch um den Synthie gehen, und nicht darum, dass ich Mist geproggt hab...
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
alias5000
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Mi 01.11.06 14:03
hm, ok, jetzt funktionierts schonmal. aber ich versteh nicht, wie ich das jetzt bedienen soll. Könntest du vllcht ein gutes Demoprojekt posten?
gruß alias5000
ps.: mit der tastatur in meiner linken hand schreibts sichs schlecht
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 01.11.06 14:36
alias5000 hat folgendes geschrieben: | hm, ok, jetzt funktionierts schonmal. aber ich versteh nicht, wie ich das jetzt bedienen soll. Könntest du vllcht ein gutes Demoprojekt posten? |
Wenn ich eins hätte....
Du kannst über die Buttons oben einen neuen Track einfügen. In der Combobox wird das Instrument ausgewählt. Dann kannst du die Events in diesem über die Rechte Maustaste unten bearbeiten(Events einfügen, Zeiten ändern, Typ ändern). Im Player kannst du dann entweder alles oder nur den aktuell markierten Track abspielen.
Was vllt noch gut zu wissen ist: die Frequenz/Pitch von Pulsen bewegt sich zwischen 0 und 1000, damit wird das Verhältnis zwischen den Wellentälern/Bergen geregelt.(500=Square)
alias5000 hat folgendes geschrieben: | ps.: mit der tastatur in meiner linken hand schreibts sichs schlecht |
Wieso hat man die Tastatur in der Hand?
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
alias5000
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Mi 01.11.06 14:54
Das ist mir soweit schon klar, bloß verstehe ich irgendwie nicht, wie das ganze funktioniert. Wenn ich da chronologisch mit Note on und off und ein paar pausen dazwischen was mach, kommt entweder ein Dauerton, oder gar nix. So mit Noten und Pausen hgeht das irgendwie net. Entweder Bug, oder ich weiß net, wie man die Events einsetzt...
Gruß alias5000
PS.: tja, aufm Schreibtisch lötet sichs halt immer noch am besten, dann iss kein Platz für die Buchstabendrücker mehr
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 01.11.06 15:25
Tja, ich sollte vielleicht erwähnen, das man die Time Before setzen sollte.
Ich bastel mal was, was ein Paar Töne spielt.
alias5000 hat folgendes geschrieben: |
PS.: tja, aufm Schreibtisch lötet sichs halt immer noch am besten, dann iss kein Platz für die Buchstabendrücker mehr |
Nagut, das ist ein Argument. (Deshalb hab ich hier auch 2 Schreibtische^^)
Edit: fertig, klingt aber grausam...
Einloggen, um Attachments anzusehen!
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Chryzler
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Fr 03.11.06 18:08
Ich glaube ich habs kapiert wie's geht. Die Steuerung ist aber ziemlich kompliziert...
Ich hab mal ein paar Akkorde gebastelt:
Einloggen, um Attachments anzusehen!
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 03.11.06 18:15
Chryzler hat folgendes geschrieben: | Die Steuerung ist aber ziemlich kompliziert... |
Jo, da wird irgendwann mal noch ne richtige Timeline hinkommen (wenn ich ne richtig Kompo dafür finde, bzw. Zeit hab, eine zu schreiben. Die Wiederholungen sind das Problem. Wie stellt man die wohl dar?)
Zum Lied: hätte nicht gedacht, das sowas damit möglich ist^^
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
monster
Beiträge: 51
Win XP
Delphi 2005 PE
|
Verfasst: Sa 11.11.06 20:08
Hey Martok,
bin zufällig beim Googlen auf dein Post gestossen, auf der Suche nach fmod-Tutorials. Ich hab mich auch von delphics Tutorial inspirieren lassen und spiele auch ein wenig mit synths herum.
Dein Programm ist echt nett! Okay, ich vermisse zwar Noten oder wenigstens Tabulatur, aber das kommt bestimmt noch. Was bestimmt auch eine Verbesserung wäre, wär wenn Du die Instrumente aus dem Source raushälst, so dass man eigene Instrumente erstellen kann. Das wäre sicher auch gut zum Experimentieren, "Instant Playing" halt.
Ich mache das mit Scripts, JvInterpreter ist dafür unglaublich gut geeignet; ein Tutorial dazu gibts ja auch im dglwiki.
Für ne Timline braucht man wohl eine Translator-Funktion, die deine "Events" in Klangmaterial umwandelt und vice versa. Wenn man die Trackposition als Parameter übergibt reicht das ja. Ich benutze kein repeat, der User kann höchstens ein Sample mehrfach loopen.
Bin gespannt auf die nächste Version...
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mo 26.11.07 14:28
Nach ziemlich genau etwas über einem Jahr hab ich das Programm mal wieder ausgegraben. Ich werde mich jetzt mal an eine einfachere Variante zur Trackerstellung machen. Im Moment schwebt mir da eine Scriptsprache vor, ich bastle grade an nem Testscript, dass ich dann vertonen werde
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mo 26.11.07 19:30
Ich werd immer besser Vorhin angefangen, und zumindest bei mir funktioniert alles
Bei der Gelegenheit habe ich das dann auch mal auf meine Seite umverlegt, die aktuellen Downloads gibts auch dort:
www.martoks-place.de/delphi/blitztracker/
Bei der neuen Version geht es vor allem um BTS, am besten erstmal lesen und dann die Beispieldatei angucken, dann sollte sich die Logik recht schnell erschließen
Wie damals schon gesagt: macht was draus, und auch wenn ich bestimmt keine Script-oder ähnliche Instrumente-Live-Generier-Logik einbaue, nehm ich trotzdem gerne neue Instrumenten-Funktionen auf. Mit der etwas einfacheren Eingabe könnte doch hier mal etwas Schwung rein kommen...
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
BenBE
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 27.11.07 12:21
Wie sieht das aus mit mehreren Noten gleichzeitig spielen?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 27.11.07 18:46
So wie bei vielen Synthies: machs dir selber
Aber wie bei mir typisch, bin ich grade dabei, die Modulverarbeitung umzuschreiben, so dass die Module nicht mehr compiliert gecached werden. Damit müsste man auch Track-Spezifisches Staccato/Legato hinkriegen. Mehr Modifier dürften dann auch möglich sein, da sich die Tracks nicht mehr ins Gehege kommen.
Ach ja: was haltet ihr davon, das Dateiformat etwas zu optimieren? Schließlich gibts es viele Befehle die keine Parameter haben, da lässt sich noch was rausholen.. Würde allerdings heißen das keine alten Dateien mehr gehen. Die die ich habe würd ich ja selber konvertieren...
Edit: Zu spät für Gegenmeinungen
Auf meiner HP befindet sich jetzt das Update. Changelog siehe oben...
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Ironwulf
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Di 27.11.07 20:40
duftes programm ;D
nur die bedienung ist ein klein wenig umständlich
da du dir auf deiner hp die 9. von beethoven gewünscht hast hab ich dir mal den 4. satz daraus in deinem prog gemacht (Freude schöner Götterfunken)
Einloggen, um Attachments anzusehen!
|
|
|