Haven

norns
#1

Haven.

a safe space?

Requirements

Norns.
MIDI-control via USB-MIDI device should be possible.

Documentation

A software synth for the norns platform. Two unique oscillators: one high, one low, One self-oscillating feedback loop with built-in ladder filter, smearing the pitch of the oscillators. Finally, audio in.

Control? No. But a lot of influence.
Seriously? Yes, but:

  • KEY_1 — (thy olde) toggle
  • KEY_2 — next control set
  • KEY_3 — hold for extra-fine influence
  • ENC_1 — (thy olde) main volume
  • ENC_2 — influence frequency (or feedback)
  • ENC_3 — influence amplitude

more information here and on github.

Download

Known issues:

  • norns ‘we’ image used to contain a duplicate of the audio engine. If your system does not work, ensure to update it to a ‘we’ version that includes this commit (Everything downloaded/updated after 11. of April 2019 should be fine).

v0.1.0 — https://github.com/tai-studio/haven/archive/v0.1.0.zip
repository — https://github.com/tai-studio/haven

17 Likes

Norns 2.0.0
#2

Yeah! It was missed. @elia

3 Likes

#3

Thank’s @LFSaw !!! That’s great! :slight_smile:

2 Likes

#4

this script did not make my RPiNorns happy:

Error:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-- haven.
--
-- a safe space?
--
engine.name = "Haven"
local sel = 1
local shift = false
local fdbckSign = 1
function init()
params:add{
type="control",
id="freq1",
controlspec=controlspec.new(1, 800, "exp", 0, 20, "Hz"),
action=engine.freq1,
}
params:add{
type="control",
id="freq2",
controlspec=controlspec.new(400, 12000, "exp", 0, 4000, "Hz"),
action=engine.freq2,
}
params:add{
type="control",
id="amp1",
controlspec=controlspec.new(-90, 0, "db", 0, -90, "dB"),
action=engine.amp1,
}
params:add{
type="control",
id="amp2",
controlspec=controlspec.new(-90, 0, "db", 0, -90, "dB"),
action=engine.amp2,
}
params:add{
type="control",
id="in_amp",
controlspec=controlspec.new(-90, 0, "db", 0, -90, "dB"),
action=engine.inAmp,
}
params:add{
type="control",
id="fdbckSign",
controlspec=controlspec.new(-1, 1, "linear", 1, 1, ""),
matron
sc
# script load: /home/we/dust/code/haven-0.1.0-rc1/haven.lua
# cleanup
# script clear
pset >> write: /home/we/dust/data/system.pset
# script run
loading engine: Haven
Engine.register_commands; count: 8

___ engine commands ___
amp1 f
amp2 f
fdbck f
fdbckSign f
freq1 f
freq2 f
inAmp f
run i

___ polls ___
amp_in_l
amp_in_r
amp_out_l
amp_out_r
cpu_avg
cpu_peak
pitch_in_l
pitch_in_r
# script init
### SCRIPT ERROR: init
/home/we/norns/lua/core/paramset.lua:194: invalid paramset index: rev_level
stack traceback:
/home/we/norns/lua/core/norns.lua:185: in function </home/we/norns/lua/core/norns.lua:185>
[C]: in function 'error'
/home/we/norns/lua/core/paramset.lua:194: in function 'core/paramset.lookup_param'
/home/we/norns/lua/core/paramset.lua:141: in function 'core/paramset.set'
/home/we/dust/code/haven-0.1.0-rc1/haven.lua:66: in field 'action'
/home/we/norns/lua/core/params/control.lua:76: in function 'core/params/control.bang'
/home/we/norns/lua/core/paramset.lua:272: in function 'core/paramset.bang'
/home/we/dust/code/haven-0.1.0-rc1/haven.lua:69: in function 'init'
/home/we/norns/lua/core/script.lua:71: in function 'core/script.init'
[C]: in function 'xpcall'
/home/we/norns/lua/core/norns.lua:186: in field 'try'
/home/we/norns/lua/core/engine.lua:83: in function </home/we/norns/lua/core/engine.lua:82>
>> reading PMAP /home/we/dust/data/haven-0.1.0-rc1/haven/haven.pmap
1 Like

#5

haven’t used it yet (or tried altering reverb in a script) but does it work fine if you remove the rev_level param starting at line 62? I think that might be handled differently in 2.0.

1 Like

#6

Thanks for looking into this, @noiserock . I made another release candidate. would you mind testing it? I do not own a norns myself…

https://github.com/tai-studio/haven/archive/V0.1.0-rc2.zip

0 Likes

#7

works perfectly! great job

or at least the oscillators/controls/reverb does, no suitable things to input at the moment, so couldn’t test the input.

1 Like

#8

spoke a bit too soon, sorry.

did a reset after running haven for the first time, getting (error: AUDIO ENGINE) now. is this due to some supercollider issues? The issue is gone if I remove the script. And I cannot seem to get any good error reports from matron or sc when resetting with haven installed.

1 Like

#9

If you installed the whole folder, the engine is a duplicate (it’s already included in we) and sc doesn’t like it.

1 Like

#10

I added a note regarding the engine duplicate to the first post of this topic. as of today (11. of april 2019), the ‘we’ repository does not anymore contain the engine.

0 Likes

#11

updated release to v0.1.0. This is the same as rc2 (seemed to be working for everyone).

3 Likes

#12

Haven is one of the most disturbing patches i’ve ever heard. I really like it :slight_smile:

7 Likes

#13

can I quote you with that?

thanks, means a lot to me!

6 Likes

#14

love this darkness haven!

2 Likes