QBPlay - QuickBasic's Play-Befehl
-
- Beiträge: 114
- Registriert: 11.09.2004 07:58
- Wohnort: Mannheim
- Kontaktdaten:
Du meinst man sollte immer alles selbst neu erfinden anstattShadowTurtle hat geschrieben:Achja. Bitte kein FMod nutzen - das ist Doof.
bereits vorhandene gute Libraries zu benutzen?

Das kann einem viel viel Zeit sparen, und FMOD ist wirklich stark OK.
Oder was meinst Du mit "doof" ?
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
-
- Beiträge: 114
- Registriert: 11.09.2004 07:58
- Wohnort: Mannheim
- Kontaktdaten:
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
a) die aktuelle Version ist in Hannover
b) ich bin in Paderborn
c) jetzt am Wochenende bin ich kurz in Hannover, und kann dann an die Daten und ggf. noch ein bißchen Zeit in Änderungen investieren.
d) die 100% CPU-Auslastung zu entfernen ist dann schnell gemacht
e) 44,1kHz/stereo/16Bit-WAV-Dateien benötigen nunmal 176kByte pro Sekunde. Du kannst aber Deinen fertigen Song als Datei speichern und dann von dort aus abspielen (und natürlich nicht vergessen, den jeweiligen QBPlay-Song wieder aus dem Speicher freizugegeben (geht mit QBPlay_Free...)
f) bis ich weitere Features einbaue, kann leider noch etwas Zeit vergehen, obwohl da noch weitere schöne Features schlummern (Makros, Transponierungen, ....) Ziel wird dann sein: Mit so wenig Zeichen wie möglich die schönsten Songs zu schreiben, unter Zuhilfenahme mächtiger Substitution- & Makro-Funktionen...
g) Goto a)
b) ich bin in Paderborn
c) jetzt am Wochenende bin ich kurz in Hannover, und kann dann an die Daten und ggf. noch ein bißchen Zeit in Änderungen investieren.
d) die 100% CPU-Auslastung zu entfernen ist dann schnell gemacht
e) 44,1kHz/stereo/16Bit-WAV-Dateien benötigen nunmal 176kByte pro Sekunde. Du kannst aber Deinen fertigen Song als Datei speichern und dann von dort aus abspielen (und natürlich nicht vergessen, den jeweiligen QBPlay-Song wieder aus dem Speicher freizugegeben (geht mit QBPlay_Free...)
f) bis ich weitere Features einbaue, kann leider noch etwas Zeit vergehen, obwohl da noch weitere schöne Features schlummern (Makros, Transponierungen, ....) Ziel wird dann sein: Mit so wenig Zeichen wie möglich die schönsten Songs zu schreiben, unter Zuhilfenahme mächtiger Substitution- & Makro-Funktionen...
g) Goto a)
!UD2
@FroggerProgger:
Sehr gute Arbeit .. bin gespannt, wie sich das entwickelt.
@all:
Zuerst wollte ich folgendes "Liedchen" zur Untermalung für meinen kleinen
FX für'n diesjährigen PureWinterContest verwenden.
Mach ich jetzt aber doch nicht ... deswegen zur vorweihnachtlichen
Stimmung ein kleines QB-Weihnachtsständchen von mir für Euch
Sehr gute Arbeit .. bin gespannt, wie sich das entwickelt.
@all:
Zuerst wollte ich folgendes "Liedchen" zur Untermalung für meinen kleinen
FX für'n diesjährigen PureWinterContest verwenden.
Mach ich jetzt aber doch nicht ... deswegen zur vorweihnachtlichen
Stimmung ein kleines QB-Weihnachtsständchen von mir für Euch

Code: Alles auswählen
If InitSound() = 0
MessageRequester("Error", "Ärger beim Sound initilisieren!")
End
EndIf
leadPattern00.s = "O4 T110 L8 D P G P G A G F# E P E P E P A P A H A G F# P D P"
leadPattern01.s = "O4 T110 L8 D P H P H < C > H A G P E P D D E P A P F# P G P P"
bassPattern00.s = "O2 T110 L8 D > D < G > G < G > G < G > G < C > C < C > C < C > C < A > A < A > A < A > A < D > D < D > D"
bassPattern01.s = "O2 T110 L8 D > D < G > G < G > G < G > G < C > C < C > C < C > C < A > A < A > A < D > D < G > G P P"
stringPattern00.s = "O3 T110 L4 D L2 G L4 G L2 C L4 D L2 A L4 A L2 D"
stringPattern01.s = "O3 T110 L4 D L2 G L2 G L2 C L4 L4 D L4 A L4 D L4 G P"
*Lead.QBSong = QBPlay(leadPattern00+leadPattern01, 2, 100, 0, #QBPlay_Tone_Rect ,10, 100)
*Bass.QBSong = QBPlay(bassPattern00+bassPattern01, 2, 70, 0, #QBPlay_Tone_Saw , 10, 10)
*String.QBSong= QBPlay(stringPattern00+stringPattern01, 2, 10, 0, #QBPlay_Tone_Tan, 10, 10)
QBPlay_Mix(*Lead, *Bass, 0)
QBPlay_Mix(*Lead, *String, 0)
QBPlay_Start(*Lead,0)
Delay(*Lead\lengthMs)
End
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Kannst du für die nächste version bitte den Parameter "sustain" kapseln, dass er >= 0 und < 100 bleibt? Ich hatte gerade ernsthafte Probleme meinen PC wieder in Ordnung zu bekommen, weil ich den Parameter auf 1000 gestellt hab (wollte wohl wissen wie lang das braucht zum Rechnen). Nach gut 2 Minuten startete der PC neu und es bootete nichtmehr. Gut, das konnte ich mit 2 BIOS Funktionen wieder korrigieren, aber das hat mir fast schon 'nen Herzkasper beschert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Was laaaaange währt wird endlich fertig (insbes. @DarkDragon
)
Die neue QBPlay-Version ist nun auch PB4-tauglich (inkl. der Libs).
Die hohe CPU-Auslastung während der Songerstellung habe ich nicht verändert, da ich nicht überall zwischenduch Delay()s einbauen möchte. Stattdessen kann sich da jeder selbst drum kümmern, indem er auf Wunsch vor einer langen Berechnung die Thread-Priorität entsprechend niedriger einstellt.
Den Sustain (mittels XS) möchte ich zudem nicht auf bspw. 100 nach oben beschränken, da sich höhere Sustain-Werte (z.B. auch mal 3000) einfach gut anhören. Daher nur die Warnung: Höherer Sustain = längere Rechenzeit pro Note, also sparsam und bei langsamen Melodien einsetzen (nicht bei schnellen Arpeggios, wie z.B. im Song 'YearsAgo_Ex' - da dauert dann die Songberechnung schonmal eine Minute...)

Die neue QBPlay-Version ist nun auch PB4-tauglich (inkl. der Libs).
Die hohe CPU-Auslastung während der Songerstellung habe ich nicht verändert, da ich nicht überall zwischenduch Delay()s einbauen möchte. Stattdessen kann sich da jeder selbst drum kümmern, indem er auf Wunsch vor einer langen Berechnung die Thread-Priorität entsprechend niedriger einstellt.
Den Sustain (mittels XS) möchte ich zudem nicht auf bspw. 100 nach oben beschränken, da sich höhere Sustain-Werte (z.B. auch mal 3000) einfach gut anhören. Daher nur die Warnung: Höherer Sustain = längere Rechenzeit pro Note, also sparsam und bei langsamen Melodien einsetzen (nicht bei schnellen Arpeggios, wie z.B. im Song 'YearsAgo_Ex' - da dauert dann die Songberechnung schonmal eine Minute...)
!UD2