What do you think of Guitar Lab and Synth Lab? |
They rock! Keep making me fun software like this. |
|
100% |
[ 2 ] |
They're OK. I could take 'em or leave 'em. |
|
0% |
[ 0 ] |
They suck! Go do something useful with your time! |
|
0% |
[ 0 ] |
|
Total Votes : 2 |
|
Author |
Message |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Tue Mar 25, 2008 6:05 pm Post subject:
Guitar Lab and Synth Lab Subject description: Source code and progress updates |
 |
|
With help from Frostburn, I have managed to unify my two music laboratory programs, Guitar Lab and Synth Lab. Since they now work together I will be reporting progress updates and posting source code for either program in this combined electromusic.com thread.
You can run the two programs together on the ChucK miniAudicle and the output of Guitar Lab will get sent to Synth Lab for effects processing or other purposes. You can still run them separately if you want, though now they both require the file Communication.ck to run. There are three configurations:
1. ChucK up Communication.ck and then Guitar_Lab*.ck to run Guitar Lab by itself.
2. ChucK up Communication.ck and then Synth_Lab*.ck to run Synth Lab by itself.
2. ChucK up Communication.ck, then Guitar_Lab*.ck, then Synth_Lab*.ck to run them both together.
At the moment Guitar Lab is a bit of a CPU hog just by itself, and both of the programs combined are creating a total of 537 shreds. On my 3-year old 1.25 GHz G5 eMac things slow down quite a bit, but new computers are probably several times faster than that machine, so people with new computers should not have much trouble I suppose. I am putting Guitar Lab on a diet and exercise program to slim it down a bit, so look for the situation to get more manageable in the near future.
Also there are now so many windows that the clutter is getting out of hand, making it difficult to get to the window that you want at any given time. To deal with this I recommend using the Window pull-down menu of the ChucK miniAudicle to select your desired window. That works just fine and is plenty convenient.
I must also thank my net-buddy kijjaz for suggesting this Chuck Grand Unification Theory in another thread. Now our ChucK programs can interact and share audio easily, which will help us to work together more effectively as programmers and music enthusiasts. Wow.
Of course, it would be a cruel tease if I got you all exited about this improvement and didn't post the source code, so here it is. Please use this code for good and not evil, as it is powerful and dangerous!
Description: |
A very simple and effective little communication bridge between Guitar Lab and Synth Lab. ChucK this one up first. |
|
 Download (listen) |
Filename: |
Communication.ck |
Filesize: |
375 Bytes |
Downloaded: |
222 Time(s) |
Description: |
"Forget all about that macho stuff and learn how to play Guitar Lab" |
|
 Download (listen) |
Filename: |
Guitar_Lab29.ck |
Filesize: |
88.02 KB |
Downloaded: |
219 Time(s) |
Description: |
"Synth Lab: making quality music since, um, last week" |
|
 Download (listen) |
Filename: |
Synth_Lab31.ck |
Filesize: |
119.58 KB |
Downloaded: |
233 Time(s) |
|
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Tue Mar 25, 2008 8:18 pm Post subject:
|
 |
|
Good news. I figured out how to significantly reduce the CPU burden of Guitar Lab. I tested it on the Boolean Sequencing logic matrix buttons and it worked. The idea is to remove sporked shreds that are not in use at the moment.
To accomplish this, I put a global two dimensional integer array variable at the top of the file to hold all the ID's of the button shreds, put a me.id () function call at the beginning of the button-watching function, and wrote sporking and removing functions that are called by the "play" button shred. Now the program starts up with the buttons functioning but when you press "play", all 96 of those shreds get removed by Machine.remove (int). When you press "stop", all the button watching shreds get shreduled up again. I didn't do this before because I was unfamiliar and didn't know how to get the shred ID's or how to use the Machine library functions. Live and learn, eh?
Unfortunately with this approach we do lose the capability of adjusting the matrix buttons while the music is playing, but that is a small price to pay to make the application become user friendly again. I can also do this trick with the instrument buttons and sliders, so hopefully the shred count will soon be a lot lower. Score one for ChucK again! |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Thu Mar 27, 2008 6:55 am Post subject:
|
 |
|
Wish List and To Do list for Guitar Lab and Synth Lab
o Optimize Synth Lab shred sporking - top priority
o Add DigitalTape to Synth Lab with signal control interface
o Redo Guitar Lab user interface (reposition and resize MAUI thingies)
o Arbitrary Waveform Generator
o FFT/IFFT Interface
o FFT/IFFT Unrealizable filter(s)
o Ping/Pong Delay
o Morph Module (echo, reverb, and feedback)
o Guitar Thunder Module (plays thunder in respose to guitar input)
o Phase Detector (identifies and tracks peak frequencies)
o Phase Locked Loop
o Do something with moving MAUI objects
Above are some future improvements for my Lab programs. If you have any wish list items, you can post them here. _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Fri Mar 28, 2008 7:00 am Post subject:
|
 |
|
I just reduced the defaults on Synth Lab in the startup screen and now it only sporks 193 shreds. That's a lot more reasonable than 400 or so. I'd recommend running Synth Lab with only the pieces that you need instead of everything but the kitchen sink, and that will help with CPU consumption a lot.
I may further reduce the shred count with some optimizations as well, but that's a lot of work for little gain. We will see how it goes... _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Fri Mar 28, 2008 3:42 pm Post subject:
|
 |
|
Found a bug in Synth Lab today. I wasn't sizing matrices of ugens to their maximum but rather to their nominal values. This breaks the program if you increase any resource above the default value - major oops! I fixed it and it will roll out with the next release. So for now don't increase any resources above the default value. _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Mar 31, 2008 2:10 am Post subject:
|
 |
|
Also on the to-do list:
o Make keyboard interface authentic
o Find Jammer keyboard layout
o Add Guitar Thunderstorm module with rain & thunder
o Put both programs into a big class with "in" and "out" nodes _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Mar 31, 2008 2:12 am Post subject:
|
 |
|
o Fix LiSa multiple voices feature (do not disengage play on up of play button). _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
 |
NeKro_Phyl
Joined: Jan 29, 2008 Posts: 11 Location: Berlin
|
Posted: Wed Apr 16, 2008 2:36 pm Post subject:
|
 |
|
Hi! Any news on the Lab-Front? |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Wed Apr 16, 2008 2:50 pm Post subject:
|
 |
|
NeKro_Phyl wrote: | Hi! Any news on the Lab-Front? |
Hi NeKro-Phyl! I have been taking a break from the Labs as I have been totally fascinated with my guitar project. I have discovered a second bug, which is that Once you have Guitar Lab playing into Synth Lab, if you stop Guitar Lab then it won't start up again. This bug has not been fixed yet.
Also the new LiSa module is hopelessly broken and I'm planning to redo it completely soon. Plus the bug of exceeding array size limits when selecting start-up resources greater than defaults has been fixed.
Also I want to set up the Communication module so it auto-launches Guitar Lab and Synth Lab based on a menu selection as the current interface is a bit klunky.
So I was just waiting for inspiration to clean up a few things and then I'll make a release. Fortunately my car is fixed now, so I can once again go out for coffee, which will in turn motivate me to spruce up the Labs.
Thanks for asking, and I hope you're enjoying the Labs! _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
|
Back to top
|
|
 |
|