supertonic

Just had 5 mins with this and it is super exciting. And maybe I need two Norns too

2 Likes

this sounds amazing, I am currently as well experimenting with markov chains and auto-encoders to generate rhythms on the norns. @infinitedigits Is there a chance to get access to your training set of 1.000.000 rhythms?

2 Likes

so ccol!
saw the post above about EXT MIDI clock…
(of course that’s the first thing i did)
yeah i got the drunk robot here as well. :partying_face:

1 Like

This is so cool!

One bug (?) for me is that when I randomise patterns, it almost always only randomises the second half of the bar, hardly ever randomising the full bar. Any ideas why??

Drums on Norns is a perpetual challenge for me but this one seems great!

1 Like

I was getting this too but thought it was by chance . Some interesting beats were generated so I thought it might be a feature

1 Like

This looks great! I’m really interested in the Microtonic port. I was thinking about attempting something along these lines myself, some time ago, but didn’t get round to it, in the end, so I’m glad someone else did it!

Looking forward to trying this when I get home.

2 Likes

I’ve found something interesting- I can generate semi random melodies if you modulate the pitch of each drum voice using the mod bus - set to random mod, amount 0.1, decay 70 - kind of like 5 voices of west coast pitched pinging.

7 Likes
hold K1, then press K3 to generate a new pattern based on the highlighted pattern
hold K1 and turn E2 to change the highlighted pattern (basis of the generation)
hold K1 and press K2 to generate beats 17-32 based on beats 1-16 for current instrument

@danbond @yoyosandshoes - are you pressing the right key combo?

2 Likes

I think the only places you need to break it up are where the Select.ars are. Also I think you might be able to utilize synth groups to keep the freeing code leaner (which you may have already thought about).

1 Like

Thanks - this text is a little more nuanced than I first ralised so perhaps my expectations were wrong. I’ll take another look!

1 Like

thanks! yeah I got it working! and it seems to reduce peak cpu usage by 40-50%, which is very promising. I didn’t know about synth groups! will look into that, right now I’m just freeing all the synths from the base synth.

that is awesome! I suppose you can use the supertonic to play music too if you map the osc freq to something and keep the tone to 100% in the mix. though there are only three waveforms to choose from though and no envelope choice :wink:

yeah - here are the drum patterns generated (~400 mb): db.db. strictly speaking its not a “training set” - its better called a “sampling of the latent model”, where the latent model comes from the “cat-drums_2bar_small” checkpoint from Google’s machine learning training. supposedly this checkpoint provides pretty “realistic” sampling of actual drum patterns. the real training set is available from Google I think- about 12 hours of drum patterns! I haven’t played with this at all yet. but to get the probabilities for supertonic, I take this sampling of the latent model and calculate probabilities. if you want to start playing with Google’s checkpoints, you could take a look at the code I wrote to do all this stuff: GitHub - schollz/drummy: ai drums. the Makefile shows how the model is sampled and the Go files show how the generated midi files are coalesced, and the Python file is used to create the final supertonic database. not a lot of commentary in that repo, but please ask if you have questions.

I may be wrong here but I think that you just need to set the clock to crow and then supertonic will adjust to that beat!

yeah, @danbond and @yoyosandshoes this is a little confusing. K1+K2 actually only generates the second bar from the first bar of the same instrument. so you could program in a few beats on the kick and then press K1+K2 and it will fill out the last 16 beats of the kick. this is different than K1+K3 which generates the entire 32 beats, and it generates it based on the instrument chosen as the basis (i.e. generating the kick based off the snare pattern). sorry its confusing! It might be more succint to just have K1+K2 generate both bars, but based on the the one across from each (i.e. 1-16 based on 17-32 and 17-32 based on 1-16).

5 Likes

Yes - I was using 100% tone and messing with the pitch. It doesn’t necessarily have to be tonal music - just more for variation of sound. You can do a lot of damage with those 3 waveforms especially using the mod bus turned all the way up. For melodic stuff the Freq could be mapped to quantised random in a scale of choice with a min/max note/octave range. I was kind of going for more whacky type sounds :grinning:

Could you highlight the place to adjust Freq in the code? I would like to add a dedicated Math Random or Sample / Hold to the Freq code of some of the voices and just play about with ideas. I know this isn’t for everyone but I can see lots of potential for having a couple of lanes for bass / melody using the existing waveforms.

Having a dedicated notes for Freq would free up the mod bus for modulation / FM of those waveforms. I think you could get a huge range of sounds with those waveforms with the right modulation. I was getting lots of interesting stuff using the mod bus - random bells, ring mod metallic stuff and splatty type FM sounds and hand playing the pitch with a controller.

I think feedback of voices may be interesting also. I want to try out feedback of the voices through the delay line. Voice → Delay (98% wet) → EQ - Compressor - fedback to Voice. Maybe just taking the physical outputs back to the inputs to see how it sounds for flange type drone hits.

2 Likes

Now I understand, I think this is great and makes it exciting to explore.

1 Like

yeah absolutely - this is where the oscillator frequency gets modulated and then set into the waveform. this is where the filter frequency gets set for the noise part.

ohhhh that sounds really cool!!

omg this sounds really cool too! @mlogger you have many cool ideas! its no wonder that your music is so out of this world.

so I did manage to get an engine that uses buses. and in the SuperCollider IDE I did see the peak cpu usage drop quite a bit…but, on the norns there is almost no difference! really weird. I have to think about this some more. if anyone wants to try - this is the branch with the bus engine: GitHub - schollz/supertonic at bus

2 Likes

Just a quick follow up, was able to use supertonic with internal clock, then from the param page set crow clock out 1 to On and use that as a trig out to sync with my modular rig being sequence by Ansible Kria. Super FUN!

1 Like

congrats on the release of this wonderful creation infinitedigits! I am finding supertonic to be very intuitive, musical and satisfying/fun to use.

just wondering, would it be possible to adjust the level of swing, and does this script feature a function such as microtonic’s morph function? it could be fun to set it up to have each sound animated and evolving over time. it may be interesting to control that with grid - sliding from point A to B (per track).

2 Likes

I’d love to see this, too! I have a TE PO-32, and morphing the drums is the coolest feature!

2 Likes

this is such a cool script. thank you so much @infinitedigits you keep knocking it out of the park. You’ve made so many amazing things for this community and i just wanted to show you some appreciation.

9 Likes

thank you very much @Yrdad, that means a lot to me!

yes! morphing is awesome! I just added it in and its working great. I’ll put it out soon along with some of @dan_derks bitwig improvements and also some crow clocking!

yes, this is possible! its already been implemented I just need to add the menu for it :slight_smile:

4 Likes

First of all, thank you very much @infinitedigits for another amazing script. Your creativity, skills and restlessness is inspiring!

This was the first time that I run a Norns command in maiden and I got some weird failure infos, although it run until 100% percent - I’m wondering if those failures are irrelevant or something went wrong.

Anyway, it looks (or, even better, sounds :stuck_out_tongue: ) that it’s working.

The Microtonic port (can I say that way?) is simply fantastic. It’s sounds beautiful and powerful as the original.

You think that a sequencer with randomization of values of supertonic voices per step/parameter locks would be possible in terms of CPU usage?

1 Like