mwcm / pitcher

audio pitch-shifting & re-sampling utility, based on the EMU SP-1200
https://soundcloud.com/user-320158268/sets/pitcher-examples
MIT License
27 stars 6 forks source link

GUI Version? #2

Closed mattdrepo closed 1 year ago

mattdrepo commented 3 years ago

Any chance of wrapping this project into some gui driven apps? It would be great to drag some sliders to preview the results.

Great work!

mattdrepo commented 3 years ago

Interesting.

Other ideas I have for you are things like:

Distorting the inputs: This seems common on most peoples workflows. Paired with a compressed (vinyl) source, this seems to (again) give some "noise" to alias.

https://www.airwindows.com/density-vst/

Chris's plugin "Density" , IMHO is a nice way to visualise either "doing the distortion" or offering it as a means of advice prior to hitting your circuit. Although you still want to have the "sound of vinyl" prior.

You could however listen to what he has to say, grab his plugin, feed a sine through it - get a semblance of what it is doing and use it to "distort" prior to doing your magic. IF that's what you are wanting to do long term (as we discussed the RPM being a "thing").

SSI2144, as this "replaces" some peoples faulty "ssm2044" chips there seems to be a lot of discussion around both chips, and more details on the original as such:

https://duckduckgo.com/?q=ssi2144+ssm2044+matlab&t=vivaldi&atb=v286-5&ia=web

Anyway. I am truly done now! I look forward to your "takes" on things. To date I have been doing things with the Casio SK-1, the plugins I mentioned before (alongside old windows apps) and I am now looking at the filter in a eurorack module. As well as plogues chipcrusher. I want something "portable" and contained in the computer though - so lets see how yours fairs!

:)

mwcm commented 3 years ago

Going to take a look at density and his videos, looks like fun! Yeah a distort module would be a good idea! Thanks I'll try to get some of the features that we've discussed in over the next week! My changes will focus on this pitcher module to start, but I like the idea of adding additional components.

Oh man the SK-1 is so much fun, I had one for a while. It was fun but I didn't use it enough due to the sample length limitations. I've messed around a bit with VSTs for it too. I like Chipcrusher, I don't use it for the SP preset, but some of the others are brilliant. Decimort does an okay job too. One of the best VST emulations I found was the SP present built into Battery, it surprised me.

There's also https://the-akaizer-project.blogspot.com/ which I used often before writing this

mwcm commented 3 years ago

Just added GUI for the quantize bits option to the 10.12 compatible mac .app, it's uploaded now Screen Shot 2021-08-22 at 5 44 45 PM

mattdrepo commented 3 years ago

RE: SK-1 - the tuning screw can be swapped for a far better solution allowing for longer (and far worse quality) sample length hahaha.

Battery 3 - yep, own it. I use that too, sometimes. :)

Akaizer - I own it and now three Akai samplers - they are addictive ! Oh make that 4 (my remix 16 is in pieces at the moment).

Decimort I originally got for the sp-12 preset and it ended up being the least used. I tend to have quite a long workflow these days with regards to Input and output to get anywhere near the result I want. I am using EQ to make a sample meet the frequency of vinyl (although seriously considering "a vinyl mastering chain" for authenticity alongside "room reverbs" from different eras - motown, soul funk etc), distortion for "saturation", electrical "interference", the soliton to drop to 8-bit (although subjective when we debated the dynamic range of a sample and it's closeness to the noise floor), then anything really that takes my fancy with regards to aliasing: bitcrushing/emulation/granulizers etc. All frequency dependent. I don't think there's a one size fits all - hence my interest in you emulating the 8 outs of the SP - it has such a fan following due to the samples people put through it having a variety of outputs and thus lots of "flavour".

I'll download your new one now. Looks to of resolved another step. Are you going to add the "Audacity Style" pitch up? Perhaps the app will need a tmp directory for it's workings as you add features. Or will you make some seperate apps? Will be interesting as to your choice of direction. I don't think theres really a right or wrong way per-se. But the less apps used might help keep it one script. Maybe consider a script you execute that asks you in various steps for input and proceeds to the next? Could utilise the scripts you make individually. Then a Gui could be done much the same way. .. All thoughts though :)

mattdrepo commented 3 years ago

How are things going with your work? Thinking of trying Maschine due to what I am hearing with it's custom swing settings. Think using your work to process my sounds for it would be a great combination :)

mwcm commented 3 years ago

Hey!

I had no idea the tuning screw could be messed with, that's awesome. Agree about Decimort, used it occasionally when chipcrusher didn't have the right sound. Have you used the iZotope vinyl vst for that sort of thing? I remember being pleasantly surprised. I've never used a Maschine device before, you'll have to let me know how it is! I usually do swing either w/ midi notes themselves or groove presets in ableton

I've been pretty busy lately so I haven't been able to add much. That being said, I've gotten some time to look into the VCF this morning. I'll have a new build sometime soon, it might not be today though since the code I'm using for the filter is C++. Might take a couple days to figure out how to integrate it properly. I'll try to get some audio examples posted later today.

I'd like to add the audacity style 33->45 change speed functionality soon too, but it'll be after the VCF

mwcm commented 3 years ago

Hey matt,

I've added a moog filter model and a corresponding command line option to pitcher.py To my ear the model does a good job of mimicking the SSM2044. I'll have to expose cli options for the filter's parameters too (cutoff, resonance, drive)

Still have to add it to the GUI versions and combine the GUI files with the main pitcher.py. Hopefully get it condensed into one pitcher.py file again.

mattdrepo commented 2 years ago

Cool!

I'll look forward to the GUI - I don't really use the command line for this sort of stuff!

Look forward to your next GUI release. :)

mwcm commented 2 years ago

Hey! Been pretty busy this past month, haven't had much time for hacking on this. I haven't forgotten though! Going to have to check out Mascine at some point, I've had to rely on manually swining midi notes in most daws. The hammond case SK-1 sounds like a beautiful thing, if you manage that you'll have to link me some pictures. I'll post here again when I've added a couple new things to the GUI, should be later this month.

mattdrepo commented 2 years ago

I am actually going to visit a cnc shop to have some wood sides cut for an open source beatstep pro + eurorack case. I will put the guts of the SK1 inside, drive it with the beatstep pro, use the ms20 filter with it alongside a mum mate and a couple of other filters from classics. The remaining space will be a panel to accommodate the inputs and outputs and a gooseneck microphone. This will take some time though as I am wanting to do this as cheaply as possible while keeping a nice look. The hammond case was ditched as I saw it for real and thought it wouldnt suffice (i want the beatstep to be the keyboard that the sk1 lacks) and i have been slowly buying and building circuits for the SK1 (namely a midi board, hum killer etc) I hope to have something done by the new year (friends CNC). Be good to hear more of the progress in the GUI version :) Have fun!

mattdrepo commented 2 years ago

Some more thoughts for you - Android?

I now have a dictaphone that can record at lower bitrates and is usb - thinking i could use SOX and a solution described to get some "flavour" on the move. But something like this alongside it would give me a near portable solution.

:-)

Hammond stuff soon - only took me half a year to get somewhere to use as a studio! Moving as we speak!

mattdrepo commented 2 years ago

Hey matt,

I've added a moog filter model and a corresponding command line option to pitcher.py To my ear the model does a good job of mimicking the SSM2044. I'll have to expose cli options for the filter's parameters too (cutoff, resonance, drive)

Still have to add it to the GUI versions and combine the GUI files with the main pitcher.py. Hopefully get it condensed into one pitcher.py file again.

You gotta update me now ;-)

mwcm commented 1 year ago

Hey Matt,

Sorry it's been a while - haven't had much spare time for coding since we spoke last. Did you end up CNC'ing the case for the SK1/Beatstep? That would be fun to play around with. I think it could likely be ported to Android - I'd like to get through the majority of the items on the todo before I get into that. That does sound like a fun little project though, would be nice to get re-acquainted with working on Android. Oh and how did the move go to the new studio space? I'm going to try to get through some of the todo this morning, thanks for the continued interest in the project 😄

Morgan

mwcm commented 1 year ago

OH man, I should mention though - I had to update my Macbook a little while ago to 10.14.6 - I won't be able to build for anything later - for now at least, any chance you've updated too?

mattdrepo commented 1 year ago

I sold all the SK1 parts (recently sold a motherboard which was the last of the items), found more fun from earlier Dictaphones. I haven't upgraded my mac, and plan on corebooting the EFI systems on the machines I own (all 2011 based machines) and slowly moving towards unix systems. I get a lot of satisfaction from using FOSS stuff. Apple served me well earlier on in life with their apps, I just find that FOSS has caught up lots now.

Would be great if you could do Android. And GUI's for Linux. Shame you can't do 10.12.6 as it's 32 bit system is unrivalled really. I will keep my machines running that release in a minimal system to be able to get projects open and bounced a long long while yet :-)

sam-schorb commented 1 year ago

Wow, this is great! I had some problems with installation on M1 and Windows. It gets stuck trying to install scikit-learn. In spite of that, it moreorless seems to work on both. The GUI version on the mac works very well. If you get time to add the controls to the GUI, that would be amazing. I'm loving the crunchy sounds :)

mwcm commented 1 year ago

Hey @mattdrepo! Ahh gotcha, the setup is evolving. I think the current tkinter gui should work for linux too. Android might be a much longer term thing unless someone else wants to make an Android fork. I hope either the new updates or the new .app will work on your mac, if not you might be able to build it yourself with pyinstaller, I'll add the build commands when I upload the releases later on

Thanks @sam-schorb . I'm glad it's working on the Mac now. I didn't have any issues installing scikit-learn w/ python3 version 3.10.7 on windows. Sounds like you got it working, if not maybe try rolling back scikit-learn or python versions. Just added most of the options to the GUI earlier today. I'll be uploading a new release as soon as I've got the mac .app file built

mwcm commented 1 year ago

Going to close this issue in the next couple days now that the GUI has all options except moog cutoff. Can always make a new issue if there are any issues or feature requests.

mattdrepo commented 1 year ago

Well the reason I think you ought to consider android is :

To date it's the only FOSS phone operating system (I use "divested computing" DivestOS or Lineage) Sox is the only route to low bitrate recording on Android and it's not GUI driven - the dictaphone is a great little way of having long recordings - but what better than a FOSS phone running FOSS software with only the device's storage as the limit.

I understand the issues though - I am not sure of how (or if at all) the libraries you have used could be ported. I am sure the GUI would be the easy part, the python libraries, not so certain.

If you can do the project with more consideration of a "TUI" "Terminal UI" that could be a potential work-around. Android has a great project called Termux - which aims to give the user on android a great experience with installing packages. There might be at least a workaround for all this.

I think this would also benefit the standard command line project - as a TUI for it would mean it could be a more retro, resource sparing approach (not that it uses much!). After all, the gui project now really is a front end to all that behind the scenes. I don't think this negated any of the GUI work though - as it is all about desire approaches.

Thought I'd add all this before you close the "issue". None of this really was issues and really was support to a project that will probably mature to being an easy approach to sound mangling in the essence of 12-bit EMU SP** sounds.

mwcm commented 1 year ago

I'll definitely consider it, I've added it to the to-do list on the readme for now. Feel free to open another issue for the Android version, I'd just like to close this one since it pertains to the desktop GUI. I have an android table that I use occasionally for music so it's not out of the realm of possibility, but I've also got some other projects on the go so it might be a long time before I can get to porting it to Android. You might be able to run the pitcher_cli.py file through termux on android if you can get a recent python version installed, the command for processing files via cli is in the readme along with the available options.

Thank you for your enthusiasm for the project @mattdrepo - your initial question and continued interest have helped the project grow into something more fully featured and accessible. Hope you'll feel free to open other tickets if there are features/bugs you'd like to track, like the possibility of an Android version.