Skip to content

Commit 832063e

Browse files
committed
update releases.txt
2 parents 2881e74 + 15578a1 commit 832063e

37 files changed

+561
-178
lines changed

crone/src/Tape.h

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,13 @@ namespace crone {
7070
virtual // from any thread
7171
void start() {
7272
if (isRunning) {
73+
std::cout << "Tape::SfStream::start(): already running" << std::endl;
7374
return;
7475
} else {
76+
std::cout << "Tape::SfStream: starting..." << std::endl;
7577
envIdx = 0;
7678
envState = Starting;
79+
7780
this->th = std::make_unique<std::thread>(
7881
[this]() {
7982
this->diskLoop();
@@ -127,7 +130,7 @@ namespace crone {
127130
envIdx = 0;
128131
envState = Stopped;
129132
shouldStop = true;
130-
std::cerr << "Tape: fade-out finished; stopping" << std::endl;
133+
std::cout << "Tape: fade-out finished; stopping" << std::endl;
131134
}
132135
}
133136

@@ -164,7 +167,7 @@ namespace crone {
164167

165168
if (bytesToPush > bytesAvailable) {
166169
#if 0
167-
std::cerr << "Tape: writer overrun: "
170+
std::cout << "Tape: writer overrun: "
168171
<< bytesAvailable << " bytes available; "
169172
<< bytesToPush << " bytes to push; "
170173
<< numFramesCaptured << " frames captured"
@@ -229,7 +232,7 @@ namespace crone {
229232

230233
if (framesToWrite > (int) maxFramesToWrite) {
231234
// _really_ shouldn't happen
232-
std::cerr << "warning: Tape::Writer has too many frames to write" << std::endl;
235+
std::cout << "warning: Tape::Writer has too many frames to write" << std::endl;
233236
framesToWrite = (int) maxFramesToWrite;
234237
}
235238

@@ -243,22 +246,22 @@ namespace crone {
243246
if (sf_writef_float(this->file, diskOutBuf, framesToWrite) != framesToWrite) {
244247
char errstr[256];
245248
sf_error_str(nullptr, errstr, sizeof(errstr) - 1);
246-
std::cerr << "error: Tape::writer failed to write (libsndfile: " << errstr << ")" << std::endl;
249+
std::cout << "error: Tape::writer failed to write (libsndfile: " << errstr << ")" << std::endl;
247250
this->status = EIO;
248251
break;
249252
}
250253

251254
numFramesCaptured += framesToWrite;
252255
if (numFramesCaptured >= maxFrames) {
253-
std::cerr << "Tape: writer exceeded max frame count; aborting.";
256+
std::cout << "Tape: writer exceeded max frame count; aborting.";
254257
break;
255258
}
256259

257260
}
258261

259-
std::cerr << "Tape::writer closing file...";
262+
std::cout << "Tape::writer closing file...";
260263
sf_close(this->file);
261-
std::cerr << " done." << std::endl;
264+
std::cout << " done." << std::endl;
262265
SfStream::isRunning = false;
263266
}
264267

@@ -267,6 +270,13 @@ namespace crone {
267270
size_t maxFrames = JACK_MAX_FRAMES, // <-- ridiculous big number
268271
int sampleRate = 48000,
269272
int bitDepth = 24) {
273+
274+
if (SfStream::isRunning) {
275+
std::cout << "Tape Writer::open(): stream is running; no action was taken" << std::endl;
276+
return false;
277+
}
278+
279+
270280
SF_INFO sf_info;
271281
int short_mask;
272282

@@ -295,7 +305,7 @@ namespace crone {
295305
if ((this->file = sf_open(path.c_str(), SFM_WRITE, &sf_info)) == NULL) {
296306
char errstr[256];
297307
sf_error_str(nullptr, errstr, sizeof(errstr) - 1);
298-
std::cerr << "cannot open sndfile" << path << " for output (" << errstr << ")" << std::endl;
308+
std::cout << "cannot open sndfile" << path << " for output (" << errstr << ")" << std::endl;
299309
return false;
300310
}
301311

@@ -337,6 +347,7 @@ namespace crone {
337347
private:
338348
// prime the ringbuffer
339349
void prime() {
350+
// std::cout << "priming tape reader" << std::endl;
340351
jack_ringbuffer_t *rb = this->ringBuf.get();
341352
size_t framesToRead = jack_ringbuffer_write_space(rb) / frameSize;
342353
if (framesToRead > maxFramesToRead) { framesToRead = maxFramesToRead; };
@@ -347,7 +358,7 @@ namespace crone {
347358

348359
// couldn't read enough, file is shorter than the buffer
349360
if (framesRead < framesToRead) {
350-
std::cerr << "Tape::Reader: short file, disable loop" << std::endl;
361+
std::cout << "Tape::Reader: short file, disable loop" << std::endl;
351362
SfStream::shouldStop = false;
352363
}
353364
}
@@ -425,22 +436,26 @@ namespace crone {
425436

426437
// from any thread
427438
bool open(const std::string &path) {
428-
SF_INFO sfInfo;
439+
if (SfStream::isRunning) {
440+
std::cout << "Tape Reader::open(): stream is running; no action was taken" << std::endl;
441+
return false;
442+
}
429443

444+
SF_INFO sfInfo;
430445
if ((this->file = sf_open(path.c_str(), SFM_READ, &sfInfo)) == NULL) {
431446
char errstr[256];
432447
sf_error_str(0, errstr, sizeof(errstr) - 1);
433-
std::cerr << "Tape Reader:: cannot open sndfile" << path << " for output (" << errstr << ")" << std::endl;
448+
std::cout << "Tape Reader:: cannot open sndfile" << path << " for output (" << errstr << ")" << std::endl;
434449
return false;
435450
}
436451

437452
if (sfInfo.frames < 1) {
438453

439-
std::cerr << "Tape Reader:: error reading file " << path << " (no frames available)" << std::endl;
454+
std::cout << "Tape Reader:: error reading file " << path << " (no frames available)" << std::endl;
440455
return false;
441456
}
442457
this->frames = static_cast<size_t>(sfInfo.frames);
443-
std::cerr << "Tape Reader:: file size " << this->frames << " samples" << std::endl;
458+
std::cout << "Tape Reader:: file size " << this->frames << " samples" << std::endl;
444459
inChannels = sfInfo.channels;
445460
if (inChannels > NumChannels)
446461
return 0;//more than stereo is going to break things
@@ -498,12 +513,13 @@ namespace crone {
498513
if (loopFile) {
499514
// couldn't perform full read so must be end of file. Seek to start of file and keep reading
500515
while (framesRead < framesToRead) {
516+
// std::cout << "tape reader: couldn't perform full read; looping file..." << std::endl;
501517
sf_seek(this->file,0, SEEK_SET);
502518
auto nextRead = (size_t) sf_readf_float(this->file, diskBufPtr, framesToRead-framesRead);
503519
if (nextRead < 1)
504520
{
505521
//Shouldn't happen
506-
std::cerr << "Tape::Reader: unable to read file" << std::endl;
522+
std::cout << "Tape::Reader: unable to read file" << std::endl;
507523
SfStream::shouldStop = true;
508524
break;
509525
}
@@ -514,7 +530,6 @@ namespace crone {
514530
}
515531
}
516532
else {
517-
std::cerr << "Tape::Reader::diskloop() reached EOF" << std::endl;
518533
SfStream::shouldStop = true;
519534
}
520535

@@ -525,7 +540,6 @@ namespace crone {
525540

526541
}
527542
sf_close(this->file);
528-
std::cerr << "Tape::reader closed file" << std::endl;
529543
}
530544

531545
}; // Reader class

doc/modules/screen.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -997,7 +997,7 @@ <h3>Parameters:</h3>
997997
<ul>
998998
<li><span class="parameter">index</span>
999999
font face (see list, or Screen.font_face_names)
1000-
<p> 1 04B_03 (norns default)
1000+
<p> 1 norns (default)
10011001
2 ALEPH
10021002
3 Roboto Thin
10031003
4 Roboto Light
@@ -1064,6 +1064,7 @@ <h3>Parameters:</h3>
10641064
65 unscii-8.pcf
10651065
66 unscii-8-tall.pcf
10661066
67 unscii-8-thin.pcf
1067+
68 Particle
10671068
</li>
10681069
</ul>
10691070

lua/core/clock.lua

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ end
201201

202202
function clock.add_params()
203203
local send_midi_clock = {}
204-
params:add_group("CLOCK", 27)
204+
params:add_group("CLOCK", 29)
205205

206206
params:add_option("clock_source", "source", {"internal", "midi", "link", "crow"},
207207
norns.state.clock.source)
@@ -275,6 +275,20 @@ function clock.add_params()
275275
end
276276
params:set_save("clock_midi_out_"..i, false)
277277
end
278+
279+
params:add_separator("midi_clock_in_separator", "midi clock in")
280+
local midi_clock_in_options = { "all", "none"}
281+
for i=1,16 do
282+
table.insert(midi_clock_in_options, tostring(i))
283+
end
284+
params:add_option("clock_midi_in", "midi clock in",
285+
midi_clock_in_options, norns.state.clock.midi_in)
286+
params:set_action("clock_midi_in", function(x)
287+
norns.state.clock.midi_in = x
288+
midi.update_clock_receive()
289+
end)
290+
params:set_save("clock_midi_in", false)
291+
278292
params:add_separator("crow_clock_separator", "crow")
279293
params:add_option("clock_crow_out", "crow out",
280294
{"off", "output 1", "output 2", "output 3", "output 4"}, norns.state.clock.crow_out)
@@ -375,4 +389,4 @@ end
375389
--------------------------------------------------------------------------------
376390
]]
377391

378-
return clock
392+
return clock

lua/core/encoders.lua

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,29 +41,44 @@ end
4141

4242
--- process delta
4343
encoders.process = function(n,d)
44+
encoders.tick[n] = encoders.tick[n] + d
45+
if encoders.accel[n] then
46+
local s = d<0 and -1 or 1
47+
d = s * math.pow(math.abs(d),1.6)
48+
end
49+
if math.abs(encoders.tick[n]) >= encoders.sens[n] then
50+
local val = encoders.tick[n] / encoders.sens[n]
51+
val = (val > 0) and math.floor(val) or math.ceil(val)
52+
encoders.callback(n,val)
53+
encoders.tick[n] = math.fmod(encoders.tick[n],encoders.sens[n])
54+
screen.ping()
55+
end
56+
end
57+
58+
--- process delta, selected if _norns.adc_rev() == 0 in norns.lua
59+
encoders.process_with_accel = function(n,d)
4460
now = util.time()
4561
local diff = now - encoders.time[n]
4662
encoders.time[n] = now
47-
4863
if encoders.accel[n] then
4964
if diff < 0.005 then d = d*6
5065
elseif diff < 0.01 then d = d*4
5166
elseif diff < 0.02 then d = d*3
5267
elseif diff < 0.03 then d = d*2
5368
end
5469
end
55-
5670
encoders.tick[n] = encoders.tick[n] + d
57-
5871
if math.abs(encoders.tick[n]) >= encoders.sens[n] then
59-
local val = math.floor(encoders.tick[n] / encoders.sens[n])
72+
local val = encoders.tick[n] / encoders.sens[n]
73+
val = (val > 0) and math.floor(val) or math.ceil(val)
6074
encoders.callback(n,val)
61-
encoders.tick[n] = 0
75+
encoders.tick[n] = math.fmod(encoders.tick[n],encoders.sens[n])
6276
screen.ping()
6377
end
6478
end
6579

6680

81+
6782
-- script state
6883

6984
local accel = {true,true,true,true}

lua/core/grid.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,11 @@ grid.connect( port ) create a grid table using device [port]
249249
this should be redefined by the script
250250
.tilt( x, y, z ) function called with incoming grid tilt event
251251
this should be redefined by the script
252-
.led( x, y, level ) set LED at [x,y] to [level]
252+
:led( x, y, level ) set LED at [x,y] to [level]
253253
[level] range is 0..15
254-
.all( level ) set all grid LED to [level]
254+
:all( level ) set all grid LED to [level]
255255
[level] range is 0..15
256-
.refresh() update the grid LED state
256+
:refresh() update the grid LED state
257257
258258
--------------------------------------------------------------------------------
259259
-- example
@@ -274,9 +274,9 @@ end
274274
275275
-- simple draw function
276276
draw_grid()
277-
g.all(0)
278-
g.led(lx,ly,lz)
279-
g.refresh()
277+
g:all(0)
278+
g:led(lx,ly,lz)
279+
g:refresh()
280280
end
281281
--------------------------------------------------------------------------------
282282
]]

lua/core/keyboard.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function keyboard.process(type,code,value)
131131
if c == nil then
132132
return
133133
end
134-
134+
screen.ping()
135135
-- textentry keycode
136136
if te_kbd_cb.code then
137137
te_kbd_cb.code(c,value)

lua/core/menu.lua

100644100755
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ _menu.errormsg = ""
3131
_menu.shownav = false
3232
_menu.showstats = false
3333
_menu.previewfile = ""
34+
_menu.binarystates = {triggered = {}, on = {}}
3435

3536
-- menu pages
3637
local m = {}
@@ -166,7 +167,7 @@ _menu.set_mode = function(mode)
166167
norns.encoders.callback = enc
167168
norns.enc.resume()
168169
redraw()
169-
elseif mode == true then -- ACTIVATE MENu MODE
170+
elseif mode == true then -- ACTIVATE MENU MODE
170171
if _menu.mode == false then _norns.screen_save() end
171172
_menu.mode = true
172173
_menu.alt = false
@@ -344,4 +345,3 @@ m["SLEEP"] = require 'core/menu/sleep'
344345
m["MIX"] = require 'core/menu/mix'
345346
m["TAPE"] = require 'core/menu/tape'
346347
m["MODS"] = require 'core/menu/mods'
347-
m["LOG"] = require 'core/menu/log'

lua/core/menu/log.lua

Lines changed: 0 additions & 30 deletions
This file was deleted.

lua/core/menu/mix.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ m.init = function()
130130
m.out2 = 0
131131
norns.encoders.set_accel(2,true)
132132
norns.encoders.set_sens(2,1)
133+
norns.encoders.set_accel(3,true)
133134
norns.encoders.set_sens(3,1)
134135
end
135136

0 commit comments

Comments
 (0)