trying to upgrade from 0.1 to 1.1

Discussion, support, and resources for our noise making modules and kits.

Moderators: Kent, scottwilson

Post Reply
User avatar
akrylik
Super Deluxe Wiggler
Posts: 1907
Joined: Sat Feb 18, 2012 9:13 am

trying to upgrade from 0.1 to 1.1

Post by akrylik » Sat Apr 11, 2015 11:30 am

So I've been out of the nw2s::b loop for awhile now and would like to jump back in and try the new JSON-based framework. However, I'm having some trouble getting things to work. This is what I've done:

1. On Mavericks, downloaded Bossa and used it to burn bSDFirmware-1.1.0-prealpha.bin to my nw2s::b.
2. Using a blank uSD card, created a directory called programs and in that directory created a text file called default.b with the following contents:

Code: Select all

{
        "type" : "VariableClock",
        "minTempo" : 30,
        "maxTempo" : 240,
        "tempoInput" : 1,
        "beats" : 16            
},
{
        "name" : "basic",
        "type" : "TriggerSequencer",
        "division" : "quarter",
        "triggerOutput" : 1,
        "triggers" : [
 
            1,1,1,1,
            1,1,1,1,
            1,1,1,1,
            1,1,1,1
 
        ]
}
I'm hoping this will get me a simple voltage-controlled clock on digital output #1.

3. Placed the SD card back in the nw2s::b, pressed the reset button.

However, after the initial downward LED scan, there is just the beat #1 LED lit and nothing happens. No triggers on digital out #1 or any output.

What am I missing? :help:

User avatar
scottwilson
Wiggling with Experience
Posts: 435
Joined: Mon Sep 16, 2013 12:54 pm

Post by scottwilson » Sat Apr 11, 2015 2:52 pm

Is that the entire contents of the file? The documentation is a bit abbreviated to get rid of the outer stuff that's repeated.

Also, if you have a serial cable or BT connection, you can watch the serial monitor and it'll spit out any error messages.

But... here's another similar sample with a few trigger sequences. Note that this is the entire JSON file... you need the outer braces, the program node, the clock node, and the devices node...

Put your variableclock data in the "clock" node, and then add your devices to the devices node...

Code: Select all

{
	"program" : 	
	{
		"name" : 			"Trigger Sequence Demo 1",
			
		"clock" :
		{
			"type" : "FixedClock",
			"tempo" : 120,
			"beats" : 16			
		},
		"devices" : [
			
			{
				"name" : "snare",
				"type" : "TriggerSequencer",
				"division" : "sixteenth",
				"triggerOutput" : 1,
				"triggers" : [
					
					0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0
															
				]
			},
			{
				"name" : "hihat",
				"type" : "TriggerSequencer",
				"division" : "sixteenth",
				"triggerOutput" : 2,
				"triggers" : [
					
					1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0
															
				]
			},
			{
				"name" : "kick",
 				"type" : "TriggerSequencer",
				"division" : "sixteenth",
				"triggerOutput" : 3,
				"triggers" : [
					
					1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
															
				]
			},
			
			{
				"type" : "CVSequencer",
				"division" : "half",
				"analogOutput" : 2,
				"gateOutput" : 4,
				"gateLength" : 125,
				"min" : 0,
				"max" : 5000
			}		
		
		]
	}
}

User avatar
scottwilson
Wiggling with Experience
Posts: 435
Joined: Mon Sep 16, 2013 12:54 pm

Post by scottwilson » Sat Apr 11, 2015 2:57 pm

So here's what yours should look like:

Code: Select all

{
	"program" : 	
	{
		"name" : 			"Akryliks 4 on the floor",
			
		"clock" :
		{
			"type" : "VariableClock", 
			"minTempo" : 30, 
			"maxTempo" : 240, 
			"tempoInput" : 1, 
			"beats" : 16            
		},
		"devices" : [
			
			{
				"name" : "basic", 
				"type" : "TriggerSequencer", 
				"division" : "quarter", 
				"triggerOutput" : 1, 
				"triggers" : [ 
  
					1,1,1,1, 
					1,1,1,1, 
					1,1,1,1, 
					1,1,1,1 
  
				]
 			}		
		]
	}
}

User avatar
scottwilson
Wiggling with Experience
Posts: 435
Joined: Mon Sep 16, 2013 12:54 pm

Post by scottwilson » Sat Apr 11, 2015 2:59 pm

As an aside... when you define the clock as 16 beats long, your sequences don't have to be the full 16 beats.

You can define a 15 beat sequence with a 16 beat clock and the sequencer will just wrap at 15 beats, so you can create some interesting complex variation that way.

It's the same with the CV sequencers and probabilistic sequencers as well.

s

User avatar
akrylik
Super Deluxe Wiggler
Posts: 1907
Joined: Sat Feb 18, 2012 9:13 am

Post by akrylik » Sat Apr 11, 2015 8:46 pm

Thank you, Scott. That did it!

As a humorous aside, has anyone else been accidentally catapulting their uSD cards across the room? :doh:

User avatar
scottwilson
Wiggling with Experience
Posts: 435
Joined: Mon Sep 16, 2013 12:54 pm

Post by scottwilson » Sat Apr 11, 2015 8:50 pm

I haven't launched one yet, but I did let one rattle around behind the panels after missing the slot once. Yeah, wish those were a little easier to get in and out!

There's a bunch of samples on github if you're looking for more:

https://github.com/nw2s/b/tree/b-1.1.0- ... s/examples

s

User avatar
akrylik
Super Deluxe Wiggler
Posts: 1907
Joined: Sat Feb 18, 2012 9:13 am

Post by akrylik » Sat Apr 11, 2015 9:07 pm

What is the maximum value that I can set VariableClock's maxTempo? My first trials, suggest that 240 is the maximum maxTempo.

Also, is it possible to have some simple LFO objects in the JSON framework? Either 1V/oct or tempo-locked.

User avatar
scottwilson
Wiggling with Experience
Posts: 435
Joined: Mon Sep 16, 2013 12:54 pm

Post by scottwilson » Sat Apr 11, 2015 9:19 pm

The code limits the upper tempo to 500, which was somewhat arbitrary. Interesting that you're finding it seems to be 240.

I don't have any LFOs yet, actually - other than some of the clocked CV generators, but the code that I hadn't gotten to was millisecond-quantized continuous functions. I'll be adding some of that, probably starting with a wavetable LFO which would cover most of the required territory.

(I'd rather be writing code than doing taxes!)

s

Post Reply

Return to “nw2s”