MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

New ardcore Sketch - Pattern Sequencer - Tapped Out
MUFF WIGGLER Forum Index -> SNAZZY FX  
Author New ardcore Sketch - Pattern Sequencer - Tapped Out
AsceticUnderground
I've been working on this patch for a while and i think its finally ready to give out to everyone.

This patch is a pattern sequencer for use with the ardcore expander (well you can use it without to get a feel for it but who wants a clock with 2 outputs!), it has an internal clock and allows you to output 10 user defined patterns at different speeds. The idea was to take advantage of the ardcore to let you easily upload your own sets of patterns and theres a cross platform app to make that even simpler to do.

It holds a maximum of 256 patterns at a time, has shuffle for each output, you can also save and load presets which are stored after you power down. It has reset and sync (though im not totally happy with the sync), and a modulation input that you can assign to one of a set of optional parameters.

The sketch is very functionally dense compared to most ardcore sketches, so i've included a manual to explain it, its pretty essential that you at least have a look at the page describing how to control it and you'll get a lot more from the sketch if you have a look at the user_settings.h file as well, which allows you to really customize the way it works without having to alter the main code.
Because the knobs control so many settings i've implemented a 'knob pickup' feature, exactly like how the eventide pedals, for example, work. You just need to turn the knob past the set value to get control of it.

The cross platform application included with the sketch takes csv files and turns them into a pattern file that you can include with the sketch. I've included the files for the patterns that its initially packaged with as well as a template for you to make your own. These are provided in both csv and ods format for use in open source office suites.
I've only built the windows and OSX versions of the pattern building app, but included with the source is a linux build file. If anyone wants to build that and test it i'll include the build in the repo and thank them!

Sadly i dont have the facilities to make a video of it working because operation is pretty clear once you've seen it in use but i really hope some of you take the time to read the manual and give it a try, because i think its a lot of fun, i played a live gig completely centred around using this sketch last week and it stood up to the test.

Anyway enjoy it, if anyone has questions about it im happy to answer but rtfm because I think pretty much everything is covered between that and the user_settings.h file

The sketch is included in my general ardcore achive, which is now on bitbucket:
https://bitbucket.org/twhiston/asct-ardcore


The App source code, which you only need if you want to build it yourself (prebuilt versions are already included in the above link) is available at:

https://bitbucket.org/twhiston/asctard010-csv2ard
loss1234
THIS SKETCH IS AWESOME

ive been using it for about a month or two
and i love it!!!
Matos
Downloading now. Fantastic manual. Looking forward to playing with this. Thanks so much for your hard work!
pas
Wow, thanks man, just got an ardcore & really love it, was looking for something precisely like this w00t
Matos
okay, can someone just give me a tip on where i put the additional files to get this to load, like the clock, patterns, user settings. Where do the H files go? I'm special, so be nice.
AsceticUnderground
if you just leave them all in the same folder as the main .ino file it should compile fine ( i havnt tried compiling it with arduino 1.5, but i know it works for sure on 1.0.5). You shouldnt need to move any files at all.

If you want to add your own patterns just replace the patterns.h file included with the patch.
loss1234
ill try to get a video of this up this week!!
dashwood
Hey Ascetic underground,

First of all thanks very much for sharing this - awesome sketch !!..I've just got hold of an expander and have discovered there aren't that many sketches that really make the most of it..however this definitely does !!..great work.

I don't know how to code in arduino and whilst it would be amazing to be able to,it's just not a priority for me right now...so I'm relying on what people have been kind enough to share.

I've read the manual and been through the sketches..but have a couple of questions - First of all could you clarify what the shuffle time and frequency exactly do please?..I mean I understand they shuffle the pattern position but what exactly is going on? The manual states that when using L2, A2 controls frequency,with a range of 0-31..but, of what?..and the time,A3? again...what exactly am I altering..??
I can hear it shifting,but I'd like to have a clearer understanding of the parameters I'm dealing with.

Also,would it be poss to put a pattern of less than 32bits?..or patterns of varying step lengths..and if so how would it behave?

One more thing,I'm having problems loading/saving presets...even without powering off..tried a number of times..setting up a pattern..going to layer 3 (3/4 of A1) over to the CW on A3..changing and trying to re-load..no joy..any ideas?

Many thanks again,

Dashwood.
AsceticUnderground
Hi Dashwood,

Thanks for bearing with me whilst I was on holiday, really glad your enjoying the sketch. I'll do my best to answer your questions.

Quote:
"First of all could you clarify what the shuffle time and frequency exactly do please?"

Tapped out has a fairly novel shuffle implementation which is definitely more geared towards making strange new patterns than shuffling in the traditional sense, however its reasonably controllable if your sensible with the settings. basically it works like this:

A2 determines how often the shuffle time is applied, if its set to 1 it will add the shuffle time to every note, if its set to 2 it will apply the shuffle time every other pulse, if its set to 32 it will only apply to shuffle every 32nd pulse (ie once per pattern).

The shuffle frequency is in clock ticks. The internal clock actually runs at 96ppq and the range of a3 is 0-255pulses (which is the full range as we read 8 bit values from them). Its possible to make a shuffle amount that is a greater value than when the subsequent note in the pattern should occur, if this is the case it will suppress those pulses till the shuffled pulse occurs and then output all the ones that are queued in quick succession (so the overall position of the patterns stays in sync)

Quote:
"would it be poss to put a pattern of less than 32bits?..or patterns of varying step lengths..and if so how would it behave?"


If you make a pattern of less than 32 bits then it will start reading into the next bit of continuous memory on the chip. If the next block of memory is the next pattern in your patterns.h file then it will start to play that, but as there is no guarantee that this will be the next block of memory its undefined behaviour and as such strongly discouraged (however you might be able to generate some weird patterns doing this if your so inclined, it wont break your arduino if you do it either). If the total pattern length is divisible by the 32 steps we play through then you can simply repeat the pattern when you make it so it fills every step. If its not then im afraid your out of luck.
I would have loved to have variable length patterns actually but the controls of this sketch are already too fiddly really compared to a dedicated interface and i just figured there was no sensible way to cram it in there. I actually have the skeleton of a module i started making to address some of those issues and make the ultimate hands on euro sequencer (which i strongly believe doesnt exist yet) on my workbench but i've been too busy with other projects to make it happen.

Quote:
"One more thing,I'm having problems loading/saving presets..."


I tested this with my copy and save load seems to work fine for me.
Two things to note though
1)The middle of A3 in this layer is 'dead space', you need to return to this dead space every time you want to save or load again, this is designed so it doesnt jump between presets when your trying to select one with A2
2)in the user_settings.h file you need to undefine (comment out) line 68
#define EEPROMReset
otherwise it will reset the eeprom every time you power on.

I've uploaded a short video to show you it loading a preset that i saved just before, the most fiddly thing with this program is getting the knobs in the right position, so maybe the video will help with that (you can see i drew positions around my a0 to help with pattern seletion wink ). If your still having trouble let me know and i'll try to work out whats going on. If you can make a vid of you trying to save/load that would help immensely with troubleshooting (pm me and i'll give you my email)
dashwood
Hey AU,

Massive thanks for this mate,really appreciate it.

Re:Shuffle Function.Well,after reading your clarification and fiddling with it for a bit, I have to say I still can't seem to relate what you've described to what I'm actually hearing..I mean it's doing all sorts of cool stuff,but just not consistent things I can make any sense of.. eek! ..It's very likely I'm being a bit dim and will continue fiddling..In the meantime I'll use this function more in the spirit you intended and shall rename it the 'Strange New Pattern Generator' SlayerBadger!

Re:Pattern length.Ahh OK,no probs,won't be buggering about with that.

Re:Saving/Loading.Thanks so much for taking the time to do that video,I don't know what I was doing wrong last time but it's working fine now !! w00t

Thanks for all your support with this and big thanks again for sharing this fantastic sketch..Speaking as a complete Arduino illiterate with an Ardcore; your (and other 'duino-ists like you) hard work and generosity are what MAKES the Ardcore !! screaming goo yo screaming goo yo screaming goo yo Guinness ftw!
AsceticUnderground
No problem at all mate, glad to be of service. Tapped Out is probably one of the most complicated sketches out there, but im really pleased with it (and have used it to play live a number of times now) so im happy to help someone else get to grips with it.

The shuffle is a bit weird on there, im sure we can both agree on that. I'm actually making something (non ardcore) at the moment that has more of a traditional shuffle implementation so maybe one day i will port it to Tapped Out hihi
hangovercat
Just picked up an expander and spent the weekend figuring out how to program my next set with this sketch. It's really impressive, thanks AsceticUnderground for your hard work.

I added a couple lines in the code to print the A0 position (output channel) to the Arduino serial monitor. Really speeds up the process of creating and saving presets by helping me avoid scrambling the last channel I was working on.
AsceticUnderground
Glad your enjoying it hangovercat, the only thing i would caution regarding the serial print is that it slows things down a bit (and obviously bloats the code size), so id think about removing those lines when you use the sketch live. I've used this sketch as the center of my live set a few times, and its been fun, so i hope it works out nicely for you too smile

I can totally appreciate not wanting to mark your module though, id suggest a chinagraph pencil is good for this job as it wont damage/scratch the surface and can be easily wiped away later
MUFF WIGGLER Forum Index -> SNAZZY FX  
Page 1 of 1
Powered by phpBB © phpBB Group