Cabbage

ProgHead

Gepokt en gemazeld
Lid sinds
26 februari 2019
Berichten
6.009
Locatie
Zeist
Na even met andere zaken bezig geweest te zijn pak ik hier de synth-draad weer op. Ik ga in dit topic op mijn Linux computer uitproberen wat er met Cabbage (een IDE voor Csound) mogelijk is. Csound zelf vond ik eerder te moeilijk, maar wellicht lukt het via Cabbage wel. En ook ben ik heel benieuwd of je er VST-plugins mee kunt bouwen.
 
of je er VST-plugins mee kunt bouwen.
Dat is toch het hele idee met Cabbage? dat het een VST kan exporteren met daar je csound engine er in.

Ik vond Cabbage een beetje moeizaam de keren dat ik er iets mee gedaan heb. Maar wel leuk dat het bestaat.
 
Ik heb zojuist al een voorbeeld synthje als VST geƫxporteerd, en dat lukte. Alleen blijft er wel een noot hangen...

Verder ben ik ook gelijk maar lid geworden van het Cabbage Audio Forum voor specialistische vragen.

Inderdaad is Cabbage voor het bouwen van plugins en effecten met Csound, maar het is ook een IDE voor Csound.
 
In NanoHost werkt de geƫxporteerde VST wel naar behoren. Dat is al een belangrijke stap.
 
Het is ook geen Linux VST, maar een "gewone" VST. Het is mij nooit goed duidelijk geworden waar ik Linux VST's wel in zou kunnen gebruiken. In welke hosts kun je zulke Linux VST's draaien?
 
Sorry ik snap niet wat je bedoelt. Je draait Cabbage op Linux toch? Wat is een "gewone" VST?

Ik zou het draaien in alle hosts die op Linux draaien: Ardour/Mixbus, Reaper, Bitwig, Qtractor, Carla, Zrythm, Tracktion Waveform, BespokeSynth, Cardinal, etc.
 
Probleem is dat ik de Linux-versie van Cabbage niet heb kunnen installeren vanwege dependency problemen, uiteindelijk heb ik toen maar voor de Windows versie van Cabbage onder Wine gekozen die het wel doet. Maar die Windows-versie exporteert (voor zover ik weet) weer geen Linux VST's.
 
Dat ReactOS ziet er wel interessant uit, maar ik wil niet steeds van het een naar het ander blijven hoppen zonder ergens nu eens serieus mee aan de slag te gaan. Mijn uitgangspunt is dat ik Linux versies van audio programma's gebruik tenzij ik die niet aan de praat krijg in welk geval ik het met Windows versies onder Wine probeer wat dan vaak nog wel lukt.

Maar ik heb op het Cabbage forum al een heel verhaal over het installeren van Cabbage op een Linux Mint systeem gevonden en dus wil ik dat nog wel eens proberen...
 
Nieuwe ontwikkeling: de Linux-versie exporteert geen Windows VST's maar enkel Linux VST's, dus heb ik nu ook de Windows versie maar weer opnieuw geĆÆnstalleerd. Ik heb nu dus een Linux-versie en een Windows-versie van Cabbage. 8)

Hopelijk kan ik hier na een tijdje weer wat zelf geprogrammeerde gekkigheid laten horen. :D
 
Hoezo is dat een "nieuwe ontwikkeling"? Lijkt me meer dan logisch dat zo'n "export" niet cross-platform is.
 
De nieuwe ontwikkeling is dat ik nu besloten heb om beide versies te gebruiken, al naar gelang ik een Windows VST of een Linux VST wil exporteren.
 


Bovenstaand geeft de basisopbouw van Cabbage plugin instrumenten.

Cabbage bevat het volgende voorbeeld van een simpel keyboard instrument wat ik in het vervolg van dit topic als startpunt zal nemen:

Code:
<Cabbage> 
form caption("Untitled") size(400, 300), guiMode("queue"), pluginId("def1") 
keyboard bounds(8, 158, 381, 95) 
</Cabbage> 
<CsoundSynthesizer> 
<CsOptions> 
-n -d -+rtmidi=NULL -M0 -m0d --midi-key-cps=4 --midi-velocity-amp=5 
</CsOptions> 
<CsInstruments> 
; Initialize the global variables.  
ksmps = 32 
nchnls = 2 
0dbfs = 1 
 
;instrument will be triggered by keyboard widget 
instr 1 
kEnv madsr .1, .2, .6, .4 
aOut vco2 p5, p4 
outs aOut*kEnv, aOut*kEnv 
endin 
 
</CsInstruments> 
<CsScore> 
;causes Csound to run for about 7000 years... 
f0 z 
</CsScore> 
</CsoundSynthesizer>
 
Code:
<Cabbage>
form caption("Primitive FM-synth") size(400, 300), guiMode("queue"), pluginId("def1")
keyboard bounds(12, 198, 381, 95)
rslider bounds(28, 16, 80, 80)   channel("att") range(0.001, 0.25, 0.1, 1, 0.001)  colour(255, 0, 0, 255)  text("Attack")  textColour(255, 245, 0, 255)
rslider bounds(116, 16, 80, 80)  channel("dec") range(0.001, 0.25, 0.1, 1, 0.001)  colour(255, 0, 0, 255)  text("Decay")   textColour(255, 245, 0, 255)
rslider bounds(212, 16, 80, 80)  channel("sus") range(0, 1, 0.7, 1, 0.001)         colour(255, 0, 0, 255)  text("Sustain") textColour(255, 245, 0, 255)
rslider bounds(304, 18, 80, 80)  channel("rel") range(0, 1, 0.1, 1, 0.001)         colour(255, 0, 0, 255)  text("Release") textColour(255, 245, 0, 255)
rslider bounds(28, 102, 80, 80)  channel("ampcar")  range(0, 1, 0.5, 1, 0.001)     colour(255, 0, 0, 255) text("Volume")     textColour(255, 255, 0, 255)
rslider bounds(114, 104, 80, 80) channel("ampmod")  range(0, 1, 0.5, 1, 0.001)     colour(255, 0, 0, 255) text("Amp of mod") textColour(255, 255, 0, 255)
rslider bounds(212, 104, 80, 80) channel("modind")  range(0, 1000, 500, 1, 0.001)  colour(255, 0, 0, 255) text("Mod index")  textColour(255, 255, 0, 255)
rslider bounds(304, 104, 80, 80) channel("freqrat") range(0, 5, 1, 1, 0.001)       colour(255, 0, 0, 255) text("Freq ratio") textColour(255, 255, 0, 255)
</Cabbage>

<CsoundSynthesizer>

<CsOptions>
-n -d -+rtmidi=NULL -M0 -m0d --midi-key-cps=4 --midi-velocity-amp=5
</CsOptions>

<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

instr 1

  iAtt chnget "att"
  iDec chnget "dec"
  iSus chnget "sus"
  iRel chnget "rel"

  iAmpc chnget "ampcar"
  iAmpm chnget "ampmod"
  iModi chnget "modind"
  iFrat chnget "freqrat"

  kres1 madsr iAtt, iDec, iSus, iRel
  aModulator poscil p5, p4*iFrat
  kres madsr iAtt, iDec, iSus, iRel
  aCarrier poscil p5, kres*(p4 + iModi*(iAmpm*kres1*aModulator))

  out kres*iAmpc*aCarrier, kres*iAmpc*aCarrier

endin

</CsInstruments>

<CsScore>
;causes Csound to run for about 7000 years...
f0 z
</CsScore>

</CsoundSynthesizer>

Mijn eerste primitieve synthje met Cabbage gebouwd. Dit stelt op zich nog niet veel voor, maar het is voor mij wel het bewijs dat ik daarmee uit de voeten kan.
 
Moet nu even weg maar zal later iets proberen. Probleem is wel dat ik geen fatsoenlijk keyboard kan spelen, maar misschien kan ik het synthje wel met een MIDI-bestand aansturen. In elk geval kan ik de GUI laten zien.
 
GUI-in-Host.png


En deuntje (niet lachen aub):

 
Back
Top