- Olle Truck
- Medlem ●
Kan nån rekommendera ett C++ baserat musikprogram/synt? Skulle vilja programmera lite. Trodde Csound var grejen men det verkar det inte vara?
Hm, jag vet inte... skulle vilja ha nåt där man typ kan slänga ihop instrument där jag själv definerar de olika delarna i C++. Med etablerad kod för olika delar, som man kan utgå från som exempel. Csound verkade vara nåt liknande men verkar inte låta en göra egen C++-kodning, så vitt jag fattar från t.ex http://mitpress.mit.edu/e-books/csound/frontpage.html
Skulle helst vilja sitta i Linux, där jag kör gnus gcc-kompilator. Har av nån anledning alltid antagit att nån skapat nån sorts syntarkitektur, med lite fördefinerade bibliotek, klasser och så för C++? Är ganska halvtaskig på C++-programmering så skulle vilja ha nåt att utgå från som man kan sitta och ändra lite grand och pula med lite steg för steg sådär. hittade nåt här som verkar intressant, men vet inget om det:
http://sig.sapp.org/doc/introduction/
Man borde väl kunna använda synthedit (sharewaremjukvarumodular) och sen skriva egna moduler till det (i C++ med SDK). Så att man kan använda SE:s GUI och för en del grundläggande saker och de delar av ljudkedjan som man vill ha bra koll på skriver man egna moduler till.
Jovisst finns sådant.. men för just linux så har jag ingen aning längre.. förträngt helt att man kan använda det till vanligt desktopbruk.
sig++ ser ju iofs ut att fungera för linux.. men räkna inte med några höjdaralgoritmer med tanke på dess ålder. En bra början kanske
Vad finns om man kör Windows eller Mac?
sonicbirth och synthedit har jag för mig fungerar bra för sånt
OK, verkar intressanta ska kolla upp dom mera noggrant.
Kan nån rekommendera ett C++ baserat musikprogram/synt? Skulle vilja programmera lite.
Jag använder nästan uteslutande Steinbergs VSTi SDK och Microsoft Visual C++ för att skriva mjukvarupluggar. För ren simulering och algoritmutveckling rekommendera jag dock Matlab och deras Filter Design Toolbox.
Fan, jag har också varit sugen på detta grymt länge. Programmerar en del C++ på skolan, men kommer aldrig igång med nå't eget på fritiden. Ni som pysslar lite.. kan ni inte ge lite generella tips? Hur kom ni igång? Finns det några schyssta böcker/forum/etc där man kan läsa mer? Kodexempel? osv.. Jag tycker det verkar som vi är ganska många som är intresserade av detta, trots allt.
"kan ni inte ge lite generella tips?"
Börja med att läsa igenom alla böcker om C++ och allmän "software engineering" (datastrukturer, programmeringsmetodik osv) som du kan få tag på. Om du kan C++ sen tidigare så börja med Bjarne's bok.. den vred iaf om min syn på det språket.
"Hur kom ni igång?"
Jag struntade i att det fanns en omvärld i ~5 år.. sen så började det gå ganska så automatiskt. Man brukar för övrigt säga att det tar runt 10 år att lära sig programmera C++
"Finns det några schyssta böcker/forum/etc där man kan läsa mer?"
Massor.. mer exakt om vad?
"Kodexempel?"
Massor.. mer exakt om vad?
Jag rekommenderar inte att försöka lära sig hur saker fungerar med kodexempel om de inte är skrivna just för lärande syfte.. utan använd kodexempel för att förbättra din stil.
Alltså, jag är rätt bekant med C++... har pluggat det i flera år (påstår inte att jag är speciellt duktig, men är absolut inte helt grön). Straustrup står här i bokhyllan sedan länge, men inte fasen får jag till några mjukissynthar för det. Datastrukturer och programmering i allmänhet är inget problem för mig, men jag känner att jag inte ens får börja använda min kunskap eftersom att jag helt enkelt inte vet hur jag ska komma igång. Som Olle skrev skulle jag också vilja ha någon slags ram att hålla mig inom och sedan experimentera mig fram därifrån. Att börja med ett tomt projekt som skall bli en mjukissynth känns som att ta sig vatten över huvudet för min del. Jag antar att det som förbryllar mig mest är hur jag kan få mina program att jobba mot hårdvaran, typ ljudkort, midi o.s.v..
Så, jag vet egentligen inte vad som är mitt problem, men jag får inte till något. Har svårt att ställa konkreta frågor då jag inte riktigt vet vad det sitter i. Men det är nog inte i brist på "programmeringstänk" i alla fall...
Det är ju rätt stor skillnad på att vara slängd i C++ och på att göra välljudande musikinstrument. Själv började jag på enklast tänkbara vis, med att rendera en .wav-fil. Insåg dock snart att det var mina mattekunskaper som var käppen i hjulet. Plockade lite algoritmer på nätet, och fick ihop nåt som lät hyggligt, men jag fattade ju noll av filtret...
"Det är ju rätt stor skillnad på att vara slängd i C++ och på att göra välljudande musikinstrument."
Nävisst.. men om man ska göra något som är lätt att bygga vidare på (som det verkar som) så bör man kunna strukturera upp det hela innan man börjar. Det underlättar massor att kunna språket då.
Vad jag vet så skrivs många externa objekt i C++, jag kan det inte själv men ska gå en introduktionskurs i sommar tänkte jag.
Kolla länkarna:
http://www.cycling74.com/products/dldoc.html den som Olle tipsade om, samt:
http://www.cycling74.com/community/guide.html#maxdevsoft
http://grrrr.org/ext/
Ett gratisalternativ är ju att använda Pd, Miller Pucketts gratisversion av Max, där ska det också gå att skriva egna objekt i C. Bara Mac dock.
http://www-crca.ucsd.edu/~msp/software.html
http://www-crca.ucsd.edu/~msp/Pd_documentation/x4.htm
Det finns något som kallas Synthesis Toolkit (STK) som är C++-kod för att göra mjukvarusyntar. Inte särskilt färdigt, och ingen särskilt avancerad kod (det jag tittat på iallafall), men en grund att starta ifrån kanske.
Jag har för mig att man kan skriva egna extensions i C++ till MAX, PD, SuperCollider och csound så det är väl bara att plocka hem dem och se vad som passar dina önskemål. Det finns en hel del DSP-kod på nätet och ännu mer om man grottar ner sig i vetenskapliga tidskrifter, men precis som Peter H skriver så krävs rätt mycket matte.
Personligen skulle jag tro att alla former av digital syntes är lättare att ge sig på än analoghärmande saker, eftersom det är mer rakt på och mindre emulerande av ickelinjäriteter i analoga kretsar. Och det är förmodligen lättare att få till bra eller iallafall intressanta resultat - det har ju ändå tagit ett tag innan professionella kodare fick till vettiga filter och oscillatorer i kod.
Antar att du redan sett följande, vet inte om det är något att ha, men vafasen: http://www.oldcrows.net/~patchell/Windows/WindowsProgramming.html
Det finns en del opensourcesyntar som man kan kika på...
man jag vetefan egetligen hur nödvändigt det är att kunna koda en VSTplugg från scratch när det finns synthedit och synthmaker, det senare verkar otroligt lovande, Ska man nu inte göra någon banbrytande kvanfysiksynth med OpenGl-gränssnitt så varför sitta och programmera gränssnittsfunktioner, midi-mojänger osv själv när någon redan gjort jobbet? Synthmaker har inget C++-SDK, däremot har det kodkomponenter där man kan skriva in sin egen DSPkod direkt i gränssnittet. - www.synthmaker.com ( längtar efter ledig sommartid så jag kan gräva ner mig i och skaffa lite M4Dz|<1llZ på synthmaker. )
Hm, jag vet inte... skulle vilja ha nåt där man typ kan slänga ihop instrument där jag själv definerar de olika delarna i C++. Med etablerad kod för olika delar, som man kan utgå från som exempel.
Det är synthedit du letar efter,
http://www.synthedit.com/downloads_sdk_main.htm - bara å börja knacka
Det är synthedit du letar efter,
http://www.synthedit.com/downloads_sdk_main.htm - bara å börja knacka
OK, fina puckar, ska kolla upp det.
PD finns för Linux och Windows också, inte bara för mac. MAX/MSP finns numera också till Windows.
PD verkar ju schysst, externals i C/C++ som sagt:
http://iem.kug.ac.at/pd/externals-HOWTO/
ska se om jag kan få det att funka på Linux.
Jag visste inte att det fanns för Linux och Windows, det är ju fint