Sequencer/DAW Development: Technische aspecten

travelan

Synth liefde
Lid sinds
4 december 2006
Berichten
461
Locatie
een grote paddestoel, rood met witte stippen.
Vervolg van: https://www.synthforum.nl/forums/showthread.php?s=&threadid=79624

Zoals je kunt lezen in bovenstaand thread ben ik bezig met het schrijven van een nieuwe sequencer. De bedoeling is een serieus en kwalitatief goed eindproduct. Enkele van de voor mij belangrijkste features zijn:
* Goede en snelle (kraakloze) ASIO Support
* Goede en snelle (kraakloze) VSTi/VSTfx Support
* Fijne manier van omgaan met audio files en het bewerken daarvan
* Multitracker met per track een keuze voor de trackopbouw. Dit kan zijn: Audio files (voor zang oid), MIDI (voor het aansturen van externe apparaten, het tekenen in een piano roll), Step sequencer (dus dat de track werkt alsof het 1 eindeloos lang FL Pattern is), een ronde step sequencer (dit concept moet nog worden uitgewerkt, wie o wie voelt zich geroepen om dit goed gedetailleerd op te schrijven?), en misschien nog wat meer, ik vergeet vast wat.
* No-nonsense workflow. De gebruiker moet gelijk weten wat hij kan, hoe het moet en waar alles te vinden is. Dus geen ellenlange cryptische beschrijvingen en menu's, maar gewoon duidelijk (maar daardoor niet beperkt!).
* Voor mij een heel belangrijk punt: Uiterlijk. Dit wordt vaak gezien als van latere zorg. Echter, als het uiterlijk van een applicatie in een zeer vroeg stadium al wordt gemaakt, kan er veel meer rekening worden gehouden met een makkelijke workflow. Het uiterlijk hoeft niet gelijk definitief te zijn, maar toch is het naar mijn idee een goede manier om er voor te zorgen dat de applicatie en de bediening goed met elkaar werken.

De applicatie wordt geschreven in Delphi 2007 (Object Pascal). Ik vond het belangrijk dat er goede libraries zijn voor ASIO en VST voor de programmeertaal waarin ik het schrijf. Dit betekende dat ik een keuze moest maken tussen C++ (de officiele Steinberg libraries) en Delphi (de Tobybear libraries, doen niet onder voor Steinberg). In mijn jonge jaren heb ik erg veel met Visual Basic gewerkt. Hierdoor voel ik mij thuis bij Delphi. De IDE werkt bijna hetzelfde en ik vind een Form Editor lekker makkelijk.
C++ heb ik goed onder de knie, maar ik hou niet zo van Microsoft's manier van werken, en onder windows met GNU compilers werken is ook geen pretje. Dit was al rede genoeg voor mij om deze keer in Delphi te werken.
En ja, het snelheidsverschil tussen Object Pascal en C++ is in dit geval te verwaarlozen. OP werkt in sommige tests zelfs sneller dan C++, dus kom alsjeblieft niet met fabeltjes aan...
Bovendien heb ik de ASIO en VST communicatie zo goed als af, en deze werkt snel, vlekkeloos en goed. Delphi voldoet dus, en ik ben blij met de keuze.

Verder wil ik de Sequencer wel modulair maken. De verschillende trackmodes zullen bijvoorbeeld plug-in based worden. Op deze manier kan een enthousiaste programmeur met een superidee zijn ei kwijt. Bovendien beperk ik mijzelf en anderen hierdoor niet tot Delphi, en kan C++ en zelfs .NET gebruikt worden om de applicatie uit te breiden.

Voor meer informatie en discussie over innovatie en creatieve aspecten verwijs ik je door naar dit thread:
https://www.synthforum.nl/forums/showthread.php?s=&threadid=79758
 
Wellicht ook handig om hiernaaast, voor mensen die willen meewerken aan dit project, een projectsite in te richten. Denk bijvoorbeeld aan sourceforge.net. Wat zou je daar kunnen vinden:

  • Documentatie m.b.t. afspraken (wie doet wat en wanneer)
  • de read me's, release notes, dus alle documentatie inc. versies
  • grafische bestanden m.b.t. afbeeldingen en
  • sourcecode
  • Uiteindelijke binaries met de diverse versies van alfa tot uiteindelijk 1.0 en verder
  • wat men verder kan bedenken.

Daarnaast kan er, op het moment dat er iets te testen valt, een testtraject uitgezet worden. Dat moet wel, anders kun je je testers nooit de juiste scenario's geven die ze moeten testen. In het wilde weg testen is op zijn tijd ook goed (zogenaamde monkeyproof tests), maar die komen eigenlijk pas goed tot hun recht aan het einde. Daarvoor moet elk stuk functionaliteit apart gestest kunnen worden. Een tester moet weten wat er getest moet worden en wat het verwachte resultaat is.

Op zo'n projectsite is ook plaats voor een timeframe. In een project als dit, als je het niet alleen wil doen, heb je de hulp van vrijwilligers en die kunnen niet altijd actief zijn, je kent het wel; kind ziek, mama ziek, verjaardagen, herdenkingsdiensten, optredens. Dat betekent dat je afspraken maakt wanneer iemand iets voor je doet en hoe lang en wanneer je daar resultaat van kunt verwachten. OP het moment dat je zo'n afspraak hebt gemaakt mag je van de persoon verwachten dat het daarna niet meer zo vrijblijvend is. Er mag resultaat verwacht worden.

En nee ik ben geen projectleider.
 
MadDonna, bedankt! :okdan:

Als ik een naam heb zal ik een webdomein kopen en daar een project management module op zetten.
Ik zie SourceForge niet echt zitten, want dat is verplicht open-source. Ik ben niet van plan dit project open-source te maken (wel freeware, en een pro versie). Dit heeft te maken met dat veel libraries (ReWire2 en de ASIO/VST) een erg complexe license hebben als het om opensource gaat. Daar tegenover wil ik wel zo veel mogelijk documenteren over de gebruikte protocollen om de sequencer uit te breiden.

De rede dat ik het niet open-source maak is dezelfde als die van Justin Frankel (ontwerper Reaper).
Lees er hier meer over: http://www.gearslutz.com/board/q-ju...reaper/118545-why-not-open-source-reaper.html
 
Back
Top