Using CSound with MilkyTrackerX

Adding Reverb into an old skool tracker like MilkyTrackerX?

Yes

<CsoundSynthesizer>
<CsOptions>
-odac -b2048
</CsOptions>
<CsInstruments>

; written for milkytracker by coderofsalvation/Leon van Kammen,2022
; example usage: csound --nosound --strset1=/tmp/in.wav --strset2=/tmp/out.wav reverb.csd

sr = 44100 
ksmps = 32 
0dbfs  = 1 
nchnls = 2
giRoom = 0.9
giDamp = 0.35
giWet  = 0.5;
giDry  = 0.9;
giOut  = 0.001;
gkDone = 0
gSin  strget 1                  ; input file
gSout strget 2                  ; output file
giLen filelen gSin              ; length file
giDuration = giLen +(4*giRoom)  ; add reverb tail
gkrecording = 0

FLpanel "Reverb",300,350 
  gkDry, giSliderDry  FLslider  "dry", 0, 1, 0 ,1, -1, 270,15, 15,20
  gkWet, giSliderWet  FLslider  "wet", 0, 1, 0 ,1, -1, 270,15, 15,60
  gkRoom,giSliderRoom FLslider  "roomsize", 0, 1, 0 ,1, -1, 270,15, 15,100
  gkDamp,giSliderDamp FLslider  "damp", 0, 1, 0 ,1, -1, 270,15, 15,140
  gkExit,ihExit FLbutton        "exit",1,  0,  21,  80,   25,  15, 315, 0, 98, 0, 0.001 
  gkApply,ihApply FLbutton      "apply", 1,  0,  21,  80,   25,  200, 315, 0, 99, 0, giDuration
  gkPreview,ihPreview FLbutton  "preview", 1,  0,  21,  80,   25,  110, 315, 0, 1, 0, giDuration
  FLsetVal_i giDry, giSliderDry
  FLsetVal_i giWet, giSliderWet
  FLsetVal_i giRoom, giSliderRoom
  FLsetVal_i giDamp, giSliderDamp
FLpanelEnd      
FLrun           

instr 1 ; play audio from disk
  ga1  diskin2  gSin, 1, 0, 0      ; play file from disk
  arevL, arevR freeverb ga1, ga1, gkRoom, gkDamp, sr, 0
  gaMix = (ga1*gkDry)+(arevL*gkWet)
  if (gkrecording != 1) then
    outs gaMix,gaMix
  endif
endin

instr 98
  exitnow
endin

instr 99
 if (gkrecording == 0) then 
   gkDone = p2+giDuration
   gkrecording = 1
   event "i", 1,           0,  giDuration ; play instr 1  (in.wav)
   event "i", 98, giDuration,        0.01 ; play instr 98 (exit) when done
 endif
 fout gSout,2,gaMix
endin

</CsInstruments>
<CsScore>
f 0 3600	;DUMMY SCORE EVENT ALLOWS REALTIME PLAYING FOR UP TO 1 HOUR
</CsScore>
</CsoundSynthesizer>
<bsbPanel>
 <label>Widgets</label>
 <objectName/>
 <x>100</x>
 <y>100</y>
 <width>320</width>
 <height>240</height>
 <visible>true</visible>
 <uuid/>
 <bgcolor mode="background">
  <r>240</r>
  <g>240</g>
  <b>240</b>
 </bgcolor>
</bsbPanel>
<bsbPresets>
</bsbPresets>

The fltk stuff is no longer supported. I’m surprised this works for you. But ywah, Milky Tracker seems really nice. I was a Renoise user for years. Actually, I first started writing Cabbage to get plugins into that.

1 Like

Oh wow!

Oh wow….
I was just using MilkyTrackerX just last night.
As stated in prior post - this is ā€˜how’ I found my way here (eventually)! lol

So attached are the extended Scripts Leon added.

It seems that the waveeditor, the sox, and fmmpeg and other command work just fine.
I’ve been trying those out to great effect! :slight_smile:

But yes, I just tried applying a CSsound script during last night’s session.
And just now.

Returns an error! :frowning:
Are you saying this won’t work anymore?

I was just getting around to testing this myself!
Because I’d seen the MilkyTrackerX demos on YouTube where it worked! lol OMG

Was working three years ago! lol (https://www.youtube.com/watch?v=PjPLyvbEeLo)

Like the Anzellans said on ā€˜The Mandalorian’…

ā€Is dis da boken?ā€

I still dig/use Renoise. It’s installed on all of my systems.

I’m determined to master MilkyTrackerX!
Something about going out of a conventional DAW and work flow…
I don’t know… I can’t explain it.

Mind you, I’ve not written anything ā€˜great’ with MilkyTracker (I have FTII-clone installed too), but these extra DSPs I’m really digging that Leon added to MilkTrackerX. It’s like even cooler to me.

Determined to get some decent work and tracks out of this old skool approach.

This mean that ALL of these are depreciated now?

(https://csound.com/docs/manual/ControlFltkIntro.html)

So I may have to rule out CSound inside of MilkyTrackeX altogether now! :frowning:

D***it! Just as I was starting to crack into this!
I’m a bit stumped how to get CSoundQT into this.
Leon’s framework made this look soooooo much easier!
OMG! :frowning:

No biggie.
I can still make Cabbage VSTs that will load into gWaveEdit, mhWaveEdit, Ocen, or Audacity.

Yeah, it’s a pity, but fltk became a real pain to support, and had started to present threading issues on certain platforms. :frowning:

I did so more research recently and ā€˜get’ why FTLK was dropped and depreciated in favor of other front-ends.

But hey, yo, Rory, doesn’t change the fact you’ve made one dope AF UI/CSound interface with Cabbage here. Really impressed with the project.

@findsp You might be intersted in this project:

It’s a web based Csound tracker. Very simple, but extremly powerful. I opened it here in work, and found I had to quickly close it or I would be getting no further work done today! :rofl:

Heya Rory,
Looks really dope AF.

Can relate.

Going back to their/his main repos on GitHub to check what’s behind the .io UI.
This will be interesting.

Thanks for tagging/thinking about me on this one.
Appreciated.

Best,
Reso/FINDSP

1 Like

This rather blew me away. This guy’s project?

I just downloaded the .csd right?
Here it is! Looked at it.

Only 147 odd lines of code!

<CsoundSynthesizer>
<CsOptions>
-odac -d
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

gisine ftgen 1, 0, 16384, 10, 1

instr 1
aosc oscil .1*madsr(.001, .2, .2, 1), p4
outs aosc, aosc
endin

instr 2
aosc oscil .2*madsr(.001, 1, 0, 0), (p4/4)+((1+madsr(.001, .2, 0, 0))*40)
outs aosc, aosc
endin

instr 3
kamp madsr .001, .12, 0, 0
kdensity init 4000
ares dust2 kamp, kdensity
outs ares, ares
endin

instr 4
kamp madsr .001, .012, 0, 0
kdensity init 4000
asig dust2 kamp, kdensity
ares atonex asig, 4444
outs ares, ares
endin

instr 5
amod oscil 40, p4
aosc oscil .1*madsr(.001, .2, .2, 1), p4+amod
outs aosc, aosc
endin

instr 6
endin

instr 7
endin

instr 8
endin

instr 9
endin

instr 10
endin

instr 11
endin

instr 12
endin

instr 13
endin

instr 14
endin

instr 15
endin

instr 16
endin
</CsInstruments>
<CsScore>
i 4 0.0000 0.0857 261.6256 0.5000 0
i 2 0.0000 0.5143 32.7032 0.5000 0
i 1 0.0000 1.3714 261.6256 0.5000 0
i 5 0.0000 1.3714 65.4064 0.5000 0
i 4 0.0857 0.0857 261.6256 0.5000 0
i 4 0.1714 0.0857 261.6256 0.5000 0
i 1 0.1714 2.5714 391.9954 0.5000 0
i 4 0.2571 0.0857 261.6256 0.5000 0
i 4 0.3429 0.0857 261.6256 0.5000 0
i 3 0.3429 0.6857 65.4064 0.5000 0
i 4 0.4286 0.0857 261.6256 0.5000 0
i 4 0.5143 0.1714 261.6256 0.5000 0
i 2 0.5143 0.8571 32.7032 0.5000 0
i 4 0.6857 0.3429 261.6256 0.5000 0
i 4 1.0286 0.0214 261.6256 0.5000 0
i 3 1.0286 0.6857 65.4064 0.5000 0
i 4 1.0500 0.0214 261.6256 0.5000 0
i 4 1.0714 0.0214 261.6256 0.5000 0
i 4 1.0929 0.0214 261.6256 0.5000 0
i 4 1.1143 0.0214 261.6256 0.5000 0
i 4 1.1357 0.0214 261.6256 0.5000 0
i 4 1.1571 0.0214 261.6256 0.5000 0
i 4 1.1786 0.0214 261.6256 0.5000 0
i 4 1.2000 0.0214 261.6256 0.5000 0
i 4 1.2214 0.0214 261.6256 0.5000 0
i 4 1.2429 0.0214 261.6256 0.5000 0
i 4 1.2643 0.0214 261.6256 0.5000 0
i 4 1.2857 0.0214 261.6256 0.5000 0
i 4 1.3071 0.0214 261.6256 0.5000 0
i 4 1.3286 0.0214 261.6256 0.5000 0
i 4 1.3500 0.0214 261.6256 0.5000 0
i 4 1.3714 0.0857 261.6256 0.5000 0
i 2 1.3714 0.5143 32.7032 0.5000 0
i 1 1.3714 0.9214 261.6256 0.5000 0
i 5 1.3714 1.3714 103.8262 0.5000 0
i 4 1.4571 0.0857 261.6256 0.5000 0
i 4 1.5429 0.0857 261.6256 0.5000 0
i 4 1.6286 0.0857 261.6256 0.5000 0
i 4 1.7143 0.0857 261.6256 0.5000 0
i 3 1.7143 0.6857 65.4064 0.5000 0
i 4 1.8000 0.0857 261.6256 0.5000 0
i 4 1.8857 0.1714 261.6256 0.5000 0
i 2 1.8857 0.8571 32.7032 0.5000 0
i 4 2.0571 0.3429 261.6256 0.5000 0
i 1 2.2929 0.0214 261.6256 0.5000 0
i 1 2.3143 0.0214 130.8128 0.5000 0
i 1 2.3357 0.0214 261.6256 0.5000 0
i 1 2.3571 0.0214 130.8128 0.5000 0
i 1 2.3786 0.0214 261.6256 0.5000 0
i 4 2.4000 0.0214 261.6256 0.5000 0
i 1 2.4000 0.3429 130.8128 0.5000 0
i 3 2.4000 0.3429 65.4064 0.5000 0
i 4 2.4214 0.0214 261.6256 0.5000 0
i 4 2.4429 0.0214 261.6256 0.5000 0
i 4 2.4643 0.0214 261.6256 0.5000 0
i 4 2.4857 0.0214 261.6256 0.5000 0
i 4 2.5071 0.0214 261.6256 0.5000 0
i 4 2.5286 0.0214 261.6256 0.5000 0
i 4 2.5500 0.0214 261.6256 0.5000 0
i 4 2.5714 0.0214 261.6256 0.5000 0
i 4 2.5929 0.0214 261.6256 0.5000 0
i 4 2.6143 0.0214 261.6256 0.5000 0
i 4 2.6357 0.0214 261.6256 0.5000 0
i 4 2.6571 0.0214 261.6256 0.5000 0
i 4 2.6786 0.0214 261.6256 0.5000 0
i 4 2.7000 0.0214 261.6256 0.5000 0
i 4 2.7214 0.0214 261.6256 0.5000 0
e
</CsScore>
</CsoundSynthesizer>

yeah, and by his own admission a very simple demo :slight_smile:

Since discovering Cabbage/CSound…
I’m must say I’m completely blown away how ā€˜small’ some .csd codebase can be.