Wednesday, 27 June 2018

"How the Heroes Die" by Larry Niven

This story takes place about 2040AD . 
It's a sequel to "Eye of an Octopus" which covered the first manned mission to Mars.
This story tells of the  second expedition which was dispatched to make first contact with
the Martian natives if they are alive.
The previous expedition discovered a mummy and an ancient well made from diamond bricks. 
 
"How heroes die" was
First published in Galaxy Science Fiction magazine, October 1966. 
 
 "Every man on Mars was a hero --- but some heroes were more brave & daring than others!" .... is the opening  paragraph.
 
I found this novelette a tad unsettling
The problems aren't the Martians. It's the human, all male crew
who make a mess of things (and murder one another).
Whoever picked these astronauts as being capable of living with each other on a long journey read their personalities all wrong.

In reality, all Astronauts undergo rigorous personality, stress, and psychological evaluations before being sent into deep space.
 
 
 
 
 
There certainly are living Martians but the crew are all too busy trying to kill each other. 
Most of the story is a cat and mouse Martian-buggy chase over the Martian landscape. 
 
Problems start with a murder.
The catalyst was a homosexual advance towards the lead character, John Carter by  a fellow crew member, Lew Harness. John kills Lew over this sexual advance. This escalates into Carter escaping
into the Martian landscape on a buggy, pursued by the dead Lew's brother, Alf Harness.
He is bent on revenge for his brother's death.
 
Carter escapes from Bubble Town - the human settlement almost killing the rest of the crew. Most of the story is of Alf chasing John, & their conversations over the radio. 

They taunt each other on the radio.  Who will turn back first?  Who has the stronger will to live?
 
 The story gets interesting as they get further from the base, and they realise that they are running out of oxygen
 
There is enough combined oxygen for one man only.  Only one can return to the base alive.

The two end up fighting each other for the remaining oxygen.
Cat and mouse 
 

During  the chase, we get glimpses of local Martians.
At the end of the story one finds the body of one of the humans. Touching a oxygen cylinder we discover that oxygen is poison for Martians, but gives life to humans.
 
On the left is a Virgil Finlay Illustration
 
 
 
 
 
 
 
 
 
 
 

--------------------------------------------

sci Fi Index

----------------------------------------------

Saturday, 23 June 2018

Radio Music - Chord Organ - SD card

I had a problem with my whole modular booting up today.
After unplugging many modules, I traced the problem to my Chord Organ module.
This was unusual, as it was working before. 
Initially, I suspected a hardware problem, but it turned out to be a failed SD card.

Interesting that a simple faulty card had caused my whole system to crash.

So this was a good opportunity to refresh the card file
 
The SD card needs to be populated with a simple text file.
Name it CHORDORG.TXT
Place it the root of the SD card


suggestions from James Bernard:

(just copy the 16 lines onto your text file).

1. [0,4,7,12,0] Major
2. [4,7,12,16,-5] Major inv 1
3. [7,12,16,-5,0] Major inv 2
4. [-12,-8,-5,0,4] Major inv 3
5. [-8,-5,0,4,7] Major inv 4
6. [-5,0,4,7,12] Major inv 5
7. [0,4,7,11,0] Major 7th
8. [4,7,11,0,16] Major 7th inv 2
9. [7,11,0,16,19] Major 7th inv 3
10 [-12,-8,-5,-1,0] Major 7th inv 4
11 [-8,-5,-1,0,4] Major 7th inv 5
12 [-8,4,7,11,23] Major 7th no root
13 [0,0,0,0,0] Root
14 [-24,-12,0,12,24] organ
15 [-8,-5,4,7,16] Major no root
16 [-12,0,0,12,24] 2 up 1 down octaves

 

-------------------

Note:

+ everything outside the brackets is ignored 
+ Chords are described in numbers:
      0 is the root
     12 is a octave above
    -12 is an octave below.
     Max 16 chords
     Max 8 notes per chord.
Try to give all chords the same number of notes. This reduces "clicks" when a chord is changed.

Another example

1. [0,4,7,12,0] Major
2. [0,3,7,12,0] Minor
3. [0,4,7,11,0] Major 7th
4. [0,3,7,10,0] Minor 7th
5. [0,4,7,11,14] Major 9th
6. [0,4,7,11,14] Major 9th
7. [0,5,7,12,0] suspended 4th
8. [0,7,12,0,7] Power 5th
9. [0,5,12,0,5] Power 4th
10 [0,4,7,8,0] Major 6th
11 [0,3,7,8,0] Minor 6th
12 [0,4,7,10,2] Dominant 9th
13 [0,4,7,10,1] Dominant minor 9th
14 [0,7,9,1,4] Elektra chord
15 [0,8,11,4,9] Farben chord
16 [0,4,7,10,3] Dominant seventh sharp nine / Hendrix chord
 
+ Wikipedia List of Chords page
 
"The column marked “p.c. #s” shows the numbers you need here, in Integer Notation, (with “10” and “11” replaced by “t” and “e”)." (Music thing modular)


Thursday, 21 June 2018

Max for live - abelton - tutorial 1 - starting out

 Max for live extends the functionality of Live's suit of instruments.
It allows users to customise their own devices
This is using Live 10 suite
 
Max is an extension of the Live suit software
It was co developed by cycling 74
You can customize live by creating your own devices
 They can be instruments, audio effects or midi effects
 
There are lots of pre made instruments & tutorials to get you started. 
It is already bundled with Live Suite. 
 

Look in the category section of the browser om the left

There ARE 3categories
 Audio, instruments, midi effects.

in order to use it, you'll need to understand how to install the required content. It comes in the form of Packs
 
Either go to Abelton,com and click Max for Live
or click at the bottom of the abelton browser. At the bottom is a list of available packs

 
Or you can also update from Lives browser
 
 
 

 
Basic  packs are Creative extensions & convoluted Reverb 

 



Wednesday, 20 June 2018

Abelton - Launching clips

 The Clip Launch settings in abelton are very useful.
 
If you can't see the Launch Box, click the "L" in the bottom left corner.

 Under launch Mode, there is a dropdown box:

1. Trigger
2. Gate
3. Toggle
4. Repeat
 
 In trigger mode the clip will keep playing till you stop it.
It will loop indefinitely until you press the stop box.
 
In Gate mode the clip will only play while you are holding the play button. as soon as you let go the clip will stop.
Remember to check you global quantization settings.
 It will play / stop according to these settings
 
 
Toggle mode ... similar to trigger mode, except to stop you press the "play" button again.
 
 Repeat: according to the quantization settings, the clip will repeat.
If the quant setting is shorter than the time it takes for the whole clip to play
it will jump to the start and repeat.
 
 Legato
Legato mode ensures that whenever playback of a new Clip is triggered, playback starts at the Globally relative position within the triggered Clip
 


Thursday, 14 June 2018

Modular in the Lounge Room- Meeting 3

Lots of fun.
The 3rd MITLR was held on the 2nd June in Wollongong... at secret location with what has been voted as the lounge room with most uncomfortable lounge on the South Coast (& possibly the world).
I'm quite proud of this distinction so will have to ditch any thoughts of buying a new couch:-)

The music was however really good. Thanks to Andrew, Ilya, Justin, Paul, Dee, Terry, Rory and Gareth for making it a memorable night.




----------------------



Virusinstaller

-------------------------------------------------
Rory Satori


----------------------------------------------

Allinaire  (aka: Cobramatic)




-------------------------------------------------
Post Global Disorder (Terry)

We were all blown away by the new graphic VCO from Erica Synths



-----------------------------------------

A post shared by jono (@dj_jondent) on
Gareth  AKA Oscillosaurus



-----------------------------------------------

Ilya

A post shared by jono (@dj_jondent) on

---------------------------------------------



Wednesday, 13 June 2018

Master clock 2 Millis() - OLED display

My previous attempt at making a master clock used the delay function.

The problem with delay() is that everything stops until the delay time is over.
Not useful for multi tasking. 



 
This second attempt uses the millis function.
It turns on and off a light emitting diode (LED) connected to a digital pin,
  without using the delay() function. This means that other code can run at the
  same time without being interrupted by the LED code. 
 
PinWiring to Arduino Uno
Vin5V
GNDGND
SCLA5
SDAA4
 
This uses a combination of a few blog posts
 
The POT is wired thus:
centre (wiper) to A0
Right to GND
Left to 5V
 
The LED
Cathode to gnd via a 220 ohm resistor
Anode to pin 8
 
 
The end result is similar the the delay version, but is more accurate I think.
Hopefully I can also run other bits of code.
 

I got the idea from this post:
 
 

 
The code is here
//&&&&&&&&&&&&&&&&&&&&&&&

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

const int ledPin =  8;// the number of the LED pin

#define MIN_BPM 20      /*write here the min BPM that you want */
 #define MAX_BPM 300     /* write here the max BPM that you want */
 #define POT A0          // the potentiometer connects to analog pin A0

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

// Variables
int bpm;
int ledState = LOW;             // ledState used to set the LED
unsigned long previousMillis = 0;        // will store last time LED was updated

const long interval = 60000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin,ledState);// set initial state of pin 8 LED
 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C
  display.clearDisplay(); // Clear the buffer.
}

void loop() {

   bpm = map(analogRead(POT), 0, 1023, MIN_BPM, MAX_BPM);  
    display.clearDisplay();
    display.setTextSize(3);
    display.setTextColor(WHITE);
    display.setCursor(0,0);
    display.println(bpm);
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.println("    BPM");
    display.display();
    
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval/bpm) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}

// &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


 ---------------------------------
-------------------------------------