Coder Social home page Coder Social logo

Comments (25)

yaxu avatar yaxu commented on May 22, 2024 1

@sonoro1234 Thanks for sharing that, it sounds really lovely. I'll have a go at getting it going.

from superdirt.

telephon avatar telephon commented on May 22, 2024

Maybe there is something in TX modular that one could repurpose?: http://www.palemoonrising.co.uk/Downloads.html

from superdirt.

telephon avatar telephon commented on May 22, 2024

possible starting point: http://www-users.york.ac.uk/~dtm3/vocaltract.html

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

from superdirt.

telephon avatar telephon commented on May 22, 2024

ah yes, already forgot.

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

I'm feeling like I need to do something fundamental for motivation, and returning to this ticket. Will have another look at apex-sc-dafx but let me know if you heard of related things in the last couple of years!

from superdirt.

telephon avatar telephon commented on May 22, 2024

I haven't looked into these things – but yes let's see what would be interesting.

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

I'm struggling with apex-sc-dafx. I guess the ugens there (KLVocalTract.scx VocaltractArea.scx) are compiled for Mac. So I unzip UGenSourceCode.zip. Then I have to edit CMakeLists.txt in there due to a case error, changing VocaltractArea.cpp to VocalTractArea.cpp. This produced KLVocalTract.so and VocalTractArea.so.

However at this point the instructions in the zip get confusing.

Used the following folder of SC3 source UGens:

sc3-plugins-test

And from this stripped back the source/CmakeLists.txt file and the SLUGens file and renamed as KLVocalTract
Builds and works ok.

Development now taken KLVocalTract.cpp and added to sc_ugen_test with KLVocalTract.cpp added and compiles ok and runs!

I don't understand any of this. Then it starts explaining how to build MySaw.scx but doesn't explain what this file is or why I'd want it.

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

I unzipped the source here (and fixed the filename in CMakeLists.txt): https://github.com/musikinformatik/apex-sc-dafx/tree/master/UGenSourceCode

I'm compiling it like this:

cd build
cmake -DSC_PATH=/home/alex/src/sc3/SuperCollider-3.11.2-Source/ ../

I then have the .so files but it seems I need to make these into .scx files?

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

Aha, I found MySaw.sc here: https://github.com/supercollider/example-plugins

I guess the instructions are half-written but that I need to build a plugin following the model in this repo. Not sure why the author didn't just commit working cmake files..

from superdirt.

telephon avatar telephon commented on May 22, 2024

MySaw.scx might be a remnant, it is just a template or didactic example.

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

Ok this is building something for me now:

git clone [email protected]:musikinformatik/apex-sc-dafx.git
cd apex-sc-dafx/klvocaltract/
mkdir build
cd build
cmake .. -DSC_PATH=/home/alex/src/supercollider
make install
cp -r install/klvocaltract/KLVocalTract/* ~/.local/share/SuperCollider/Extensions/KLVocalTract/

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

I guess the next question is what to do with it.. I guess the gui wouldn't work under linux ? Programmatic control would be the goal, but if it's anything like a real vocal tract that wouldn't be very easy, unless there are nice low dimensional parameters like with the pink trombone app.

from superdirt.

telephon avatar telephon commented on May 22, 2024

hm, trying to compile it fails here: The source directory "<snip>quarks/apex-sc-dafx" does not appear to contain CMakeLists.txt.

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

@telephon hm, maybe you are in ex-sc-dafx/build/ instead of ex-sc-dafx/klvocaltract/build/

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

By the way if I install the quark as well as copying that folder into the extensions, I get a lot of errors about duplicate files.. I guess the UGens and the sclang files needs to be separated then?

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

Ah it seems from https://github.com/supercollider-quarks/quarks that quarks can be used to distribute UGens as well as sclang code. I'm not sure how that works though.

from superdirt.

telephon avatar telephon commented on May 22, 2024

@telephon hm, maybe you are in ex-sc-dafx/build/ instead of ex-sc-dafx/klvocaltract/build/

ah yes, that was it.

Ah it seems from https://github.com/supercollider-quarks/quarks that quarks can be used to distribute UGens as well as sclang code. I'm not sure how that works though.

we could try. Not sure if there is an OS dependence

from superdirt.

telephon avatar telephon commented on May 22, 2024

The class library as such is not designed to be very reusable. But the core might be simple enough.
Here is the synth def:

SynthDef(\tubetract, {
			arg f0;
			var loss, result, karray, delayarray,tract_delay_samples;
			loss =1.0;

			// check formants and length
			// coarse tube - is this good enough?
			// what about other formants?
			// additional source?
			// look at how NTube handles these values and how it corresponds to speed of sound

			karray= Control.names([\k_val]).kr(Array.fill(ax_arraysize-1,{|i| (ax_array[i]-ax_array[i+1])/(ax_array[i]+ax_array[i+1])}) );
			delayarray= Control.names([\del_val]).kr(Array.fill(ax_arraysize,tract_delsamps_const) );

			result = KLVocalTract.ar(ApexSource01.ar(f0,0.1,1.4,2),loss, `karray, `delayarray , 1.0);

			Out.ar(1, result);
		}).send(server);

The del_val argument is frequency related, the karray I am not sure. But perhaps should we ask Sicklincoln ;) ?

from superdirt.

telephon avatar telephon commented on May 22, 2024

Also, the data might give some clue of how to use it: https://github.com/musikinformatik/apex-sc-dafx/tree/master/data

I have to admit that I won't have the time to dive deep into it. But I can help a little of course.

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

Paging @sicklincoln in case he's interested!

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

I did manage to get this to run, but not make any real sound. I don't really know what I'm doing with sclang..

(
SynthDef(\tubetract, {
	arg f0;
	var loss, result, karray, delayarray,tract_delay_samples;
	var	ax_arraysize = 64;
	var ax_array = Array.fill(ax_arraysize,1.0);
	// 'resolution' in mm divided by speed of sound
	var tract_delsamps_const = 1/(343000);
	loss =1.0;
	
	karray= Control.names([\k_val]).kr(Array.fill(ax_arraysize-1,{|i| (ax_array[i]-ax_array[i+1])/(ax_array[i]+ax_array[i+1])}) );
	delayarray= Control.names([\del_val]).kr(Array.fill(ax_arraysize,tract_delsamps_const) );
	
	result = KLVocalTract.ar(ApexSource01.ar(f0,0.1,1.4,2),loss, `karray, `delayarray , 1.0);
	
	Out.ar(1, result);
}).play
)

from superdirt.

sonoro1234 avatar sonoro1234 commented on May 22, 2024

@yaxu I have one plugin for that in https://github.com/sonoro1234/MyUGens/tree/master/KLJunction there is no sc file but only Lua so it has to be run in https://github.com/sonoro1234/Lua2SC where there are example pieces for that.

I could provide guidance to writing an sc file for emulating what it is done in Lua2SC

Some piece examples found in https://soundcloud.com/victor-bombi

from superdirt.

yaxu avatar yaxu commented on May 22, 2024

@sonoro1234 Finally looking at this!

There is the C++ ugen and lua code for controlling it e.g.:

It all looks (and sounds) great but I'm not experienced with sclang (or scsynth) so am not the best person to do a port unfortunately.

from superdirt.

sonoro1234 avatar sonoro1234 commented on May 22, 2024

What a pitty!!
Thanks for looking into it.

from superdirt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.