LISP?

Ja - dat vrees ik ook. Het is nu al zo dat ik blij ben als blijkt dat een zekere taal me om de een of andere reden niet bevalt, want dan hoef daar verder niet al te veel tijd in te steken. Hoe een mens het zichzelf moeilijk kan maken... :(
Ik zou je richten op 1 stuk software en daar minimaal een half jaar insteken.
 
Dat wordt dan C++. Niet omdat ik die het leukste vind, maar omdat C++ het belangrijkste is voor als je zelf plugins of apps wilt bouwen. Dat laatste kan weliswaar sneller met bijvoorbeeld FAUST of SynthCraft, maar zodra er daarbij iets niet werkt loop ik direct vast omdat mijn basiskennis aangaande C++ (of C) en kwesties rond compileren e.d. nu nog tekort schiet.
 
C++ is natuurlijk super om eigen dingen te programmeren.

Dit zeggend dat is maar een gedeelte van het complete verhaal. Dsp snappen, de uiterlijk en logica zijn er ook nog.

Maar er zijn ook uitdagingen als wat wil jezelf eigenlijk maken. Wordt het niet te grote of complex.

En wat mij opvalt is het er al. Denk ik van ik wil een x idee. Blijkt er al een x met wat extra gemaakt te zijn. Vaak nog gratis ook!

Dus c++ mooi als het lukt voor je!

Er zijn ook open source projecten om mee samen te werken.

En je kan zo invloed heb met je ideeën. En leer je ook een aantal dingen van zo’n project.
 
Ik ben al oud, en dit is waarschijnlijk mijn laatste kans om mij C++ nog eigen te maken. Wacht ik daar nog een paar jaar mee dan vind ik het allemaal wel best en heb ik er ook de fut ook niet meer voor om nog zo'n langdurige studie aan te vangen.

Maar DSP is het probleem niet. Dat vind ik niet moeilijk, want dat is eigenlijk gewoon discrete wiskunde en differentievergelijkingen. Een GUI maken kan ik ook al. Deze bijvoobeeld is mij mooi zat:

ChaosSynth.png
 
Vraagje @ProgHead als je kijkt naar de specs van je computer, zou je dan niet gewoon op die specs bare metal willen programmeren? Je kunt je ook afvragen of een plugin handig is want dan moet je weer een host hebben. Meeste computers hebben wel een stereo uit. Misschien kun je het 2x mono maken en 1 dc coupled voor CV eventueel. Das dan wel weer geinig voor met je modular samen.
 
Het idee van plugins te willen maken is ooit ontstaan toen ik al die leuke gratis VST-plugins ontdekte die met SyntEdit door hobbyisten gemaakt zijn. Zo ontstond de gedachte dat ik zulke dingen ook zelf zou willen maken. Inmiddels werk ik liever met open source en gratis software, en het hoeft het ook niet meer zo nodig een plugin te zijn, een standalone app is ook goed.

@Disharmonic stelde pas voor dat ik een eigen programmeertaal zou kunnen schrijven. Het is een verleidelijk idee maar vrijwel zeker te hoog gegrepen. Net als bare metal programmeren. Liever bijt ik mij nu vast in C++, wat nog net te doen moet zijn.
 
@Disharmonic stelde pas voor dat ik een eigen programmeertaal zou kunnen schrijven. Het is een verleidelijk idee maar vrijwel zeker te hoog gegrepen.

Heb naar aanleiding van dat er (weer) 'ns naar gekeken. Voor iets dat interactief is voor een gebruiker zou een interpreter voor een eigen taal geschikt zijn, ik denk dat het wel te doen is. Je kunt het op verschillende manieren maken, bijvoorbeeld met een Abstract Syntax Tree (AST), of met een control table. Elk met hun voor- en nadelen en die twee kun je ook weer op verschillende manieren realiseren. Of je moet het allemaal in één keer heel complex willen maken, maar anders is het niet echt veel moeilijker dan een ander project met een 'medium' moeilijkheidsgraad, als je ervaring hebt met programmeren Er is ook best wat info te vinden over het onderwerp.
 
OK - ik hou het in gedachten. Waar zou ik dan van uit moeten gaan, van assembler?

Hoe dan ook ga ik nu eerst verder met C++.
 
Naar iPlug2 heb ik gekeken, maar dat zit op het moment nog niet in de Linux Mint repositories. En iets installeren vanaf GitHub helpt je meestal van de regen in de drup, tenzij je ook zelf al een ervaren developer bent. Als iPlug2 ooit een gebruikersvriendelijk programma wordt zal ik er nog weer eens naar kijken.
 
OK - ik hou het in gedachten. Waar zou ik dan van uit moeten gaan, van assembler?

Hoe dan ook ga ik nu eerst verder met C++.

Als je C++ voldoende onder de knie hebt, daar zou het prima mee kunnen.
 
Hoe bedoel je? Dat ik een eigen programmeertaal maak die op C++ gebaseerd is?
 
Hoe bedoel je? Dat ik een eigen programmeertaal maak die op C++ gebaseerd is?

Nee, je kunt een taal net zo maken als je wil. Maar de interpreter, nodig zodat je code geschreven in die taal kunt uitvoeren, die schrijf je in een andere taal. Dat zou in C++ kunnen zijn, maar iets anders natuurlijk ook.
 
Dus je zou eerst een taal X helemaal los van welke bestaande computertaal of type computer dan ook kunnen verzinnen, en daar dan later een interpreter voor kunnen schrijven die de programma's in X in programma's in een reeds bestaande computertaal omzet...?
 
Dat laatste is eigenlijk een transpiler. Maar het eerste, een taal ontwerpen waarvoor je een interpreter maakt op een platform om code te kunnen uitvoeren geschreven in die taal, een interpreter voor een ander platform zal die code net zo uitvoeren. Of er moeten echt grote verschillen zijn in de hardware dat het om die reden niet kan, maar dat zal in dit geval waarschijnlijk niet zo zijn. Geluid maken doen ze allemaal wel. Ontwerp een taal, bouw interpreters voor deze taal met als doel bijvoorbeeld Windows, Linux en Apple-dingen, en de software die je schrijft in de nieuwe taal draait op al deze machines.
 
Dat zou mij als project alleen aanspreken als die taal X ook het echt iets nieuws is. Er moet een filosofie achter zitten die haaks staat op de reeds bestaande talen, wat niet makkelijk te verzinnen is. Maar ik zal er mijn gedachten eens over laten gaan. Op het moment heb ik nog geen idee.
 
Heb naar aanleiding van dat er (weer) 'ns naar gekeken. Voor iets dat interactief is voor een gebruiker zou een interpreter voor een eigen taal geschikt zijn, ik denk dat het wel te doen is. Je kunt het op verschillende manieren maken, bijvoorbeeld met een Abstract Syntax Tree (AST), of met een control table. Elk met hun voor- en nadelen en die twee kun je ook weer op verschillende manieren realiseren. Of je moet het allemaal in één keer heel complex willen maken, maar anders is het niet echt veel moeilijker dan een ander project met een 'medium' moeilijkheidsgraad, als je ervaring hebt met programmeren Er is ook best wat info te vinden over het onderwerp.
Maar wat zou het voordeel zijn? Je kan met alle bestaande talen en omgevingen al zo veel. Als je C++ goed wil leren ben je al even bezig, en alles wat volgt gaat dan sneller. Je kan dan je projecten sneller bouwen en je bezig houden met experimenteren. Een eigen taal bouwen is echt wat je doet om een probleem op te lossen wat met de huidige talen nog niet is opgelost. Niet om leuke plug-ins te bouwen.
 
Maar wat zou het voordeel zijn? (...) Niet om leuke plug-ins te bouwen.

Nee, dat laatste niet. Maar @ProgHead zoekt ook iets om gemakkelijk en naar eigen inzicht met audio e.d. te kunnen experimenteren en ik krijg soms de indruk dat bestaande tools hem niet bieden wat hij zoekt, op een toegankelijke manier. Een taal bedenken, dat hoeft wellicht met een goed doordacht ontwerp niet eens zo heel complex of uitgebreid te zijn, die precies dat biedt wat hij zoekt kan wellicht een oplossing zijn. Ik merk dat @ProgHead met andere talen soms wat gefrustreerd lijkt te raken hoe het is bedacht, qua syntax en andere ontwerpkeuzes. In dit geval lijkt me roll your own daarom niet zo'n heel gek idee om als suggestie mee te geven.
 
Nee, dat laatste niet. Maar @ProgHead zoekt ook iets om gemakkelijk en naar eigen inzicht met audio e.d. te kunnen experimenteren en ik krijg soms de indruk dat bestaande tools hem niet bieden wat hij zoekt, op een toegankelijke manier. Een taal bedenken, dat hoeft wellicht met een goed doordacht ontwerp niet eens zo heel complex of uitgebreid te zijn, die precies dat biedt wat hij zoekt kan wellicht een oplossing zijn. Ik merk dat @ProgHead met andere talen soms wat gefrustreerd lijkt te raken hoe het is bedacht, qua syntax en andere ontwerpkeuzes. In dit geval lijkt me roll your own daarom niet zo'n heel gek idee om als suggestie mee te geven.
Een eigen taal ontwerpen vereist wel een en ander aan kennis, niet alleen op het gebied van programmeren en machine niveau maar ook van conceptueel en abstract denken. En een probleem oplossen wat niet voorhanden is met andere talen in de interactie van mens naar machine. C++ is ooit begonnen om een schalings probleem op te lossen, python het probleem van moeilijke en onleesbare code. En "dwingt" een bepaalde elegantie af.

Als je niet vloeiend bent in minstens een paar talen en daarbinnen je creativiteit niet kwijt kunt of je tegen een probleem aanloopt dat je wil oplossen, dan zou je het kunnen overwegen. Maar dan nog de huidige stacks bieden echt al zo veel. Een eigen omgeving bouwen omdat je niet kan vinden wat je zoekt kan ik mij nog voorstellen, maar dat kan prima met C++, python of een combinatie van talen.

Mijn inschatting is dat @ProgHead zijn ei meer dan kwijt kan als hij afdoende kan lezen en schrijven met C++, Supercollider, PureData, Python, of wat dan ook. En uit de onderzoeksfase stapt en gewoon een half jaar aan de gang gaat. Consistentie is belangrijker dan wat dan ook met het leren van dit soort dingen. Anders blijf je zoeken naar iets wat "laagdrempelig en complex is" voor je projecten terwijl vloeiend worden in een taal/omgeving/skill naar keuze je die ruimte vanzelf biedt. Maar het gaat niet vanzelf en kost gewoon tijd en inspanning. En dat is moeilijk. Research is leuk en aardig, leren leuk, lastig en frustrerend. Maar eenmaal door die periode dan gaat de wereld open.
 
Back
Top