Skip to Content

Recording multiple patterns

80 replies [Last post]
pablomme
Offline
Joined: 04/17/2010

I don't know if this has been asked before - a quick look seems to indicate not, sorry if I missed something.

I'm using my electronic drumkit with hydrogen, and everything works very well. But how do I record multiple patterns, one after the other? I did the obvious: turn 'record' on, toggle 'mode' to 'song' and hit play. However this records the currently-selected pattern over and over again, until the pattern list runs out.

Is this a bug, or did I do something wrong? Using svn602, by the way, but note this this is unrelated to patch 594 since I also used svn592 (more or less), to no avail either.

mauser
Offline
Joined: 03/30/2010

Hi!

I don't know of such a feature.. anyone else? It would create a whole bunch of patterns, i don't know if that would be very usable. If it not exists, we could feed it into our bugtracker as a feature request for future versions..

pablomme
Offline
Joined: 04/17/2010

What I want is to play (and record) a whole song, having previously defined the correct pattern lengths and all that. To me that makes a lot of sense.

It would seem that the only thing needed would be to place the recorded notes in the current playing pattern rather than in the currently-visible one. This would affect song mode only, pattern mode would behave as it currently does.

I could conceivably also record the track outputs in Ardour, but I want to be able to edit my mistakes in hydrogen - what a cheat I am... :D .

pablomme
Offline
Joined: 04/17/2010

Could you file a ticket for this feature request, then?

mudfly
Offline
Joined: 04/17/2010

Hi, I am by no means a wizard with this stuff, but considering that hydrogen doesn't support recording a full song, and is meant more for sequencing drum loops. What I would do (if I had electric drums), is record the pattern in something like seq24 and have the midi trigger the drums in hydrogen.

By doing this you move the sequencing out of hydrogen, and into a midi file that you can save and edit along the way.

I found out how to do this not long ago following this tutorial,
https://help.ubuntu.com/community/HowToSeq24Introduction#Adding%20a%20Dr...

Seq24 is a little too basic for serious editing from what I find, but I imagine the same rules can be applied to muse, or rosegarden. I am holding out for Ardour 3 which will support midi tracks and editing of midi files to accomplish what you are talking about doing.

pablomme
Offline
Joined: 04/17/2010

I rely on multilayers and mute groups to make the drums sound properly when I'm playing. I don't suppose seq24 has these? If not, I can wait for the feature to be implemented in Hydrogen.

In the end, the problem is that Hydrogen is too awesome :)

mauser
Offline
Joined: 03/30/2010

For Multilayer-Support seq24 has to record the velocity as well as the midi note. I don't know if that is possible with seq24, but i don't think that this is a very uncommon requirement..

Mute groups is not related to the sequencer, so you can use it even when you feed the hydrogen with the midi from seq24.

This should be the way to go if you want to record midi, since hydrogen was *not* build to to these tasks and i don't know if this feature will be implemented in the near future (or at all).

Thorgal
Offline
Joined: 04/17/2010

you basically want a piano roll. Any MIDI sequencer would do. I would suggest rosegarden or muse or the more recent qtractor. A sequencer will record the MIDI data. Hydrogen will be triggered by incoming MIDI events to play the audio samples accordingly so you need not worry about multi-layering and mute groups as they do not have anything to do with the upfront MIDI events.

wolke
wolke's picture
Offline
Joined: 03/30/2010

hiho, i have add this feature into my experimental h2 branch new_fx_rack_and_sample_fun.

into the image you can see the new combo box. you can select off, pattern or song. that means record off, record into pattern or record into song.
record to song is only in songmode possible.
[img]http://popez.org/~wolke/hydrogen/images/recordQCombobox.png[/img]

to test this feature checkout
'svn co http://hydrogen-music.org/svn/branches/new_fx_rack_and_sample_fun fx_and_sample_fun'
and compile this version of h2. in the moment its only a experimental branch, but the branch is stable enough to have fun and make productive work.
there are also some other nice features into this version.

note_key feature:
[img]http://popez.org/~wolke/hydrogen/images/recordQCombobox2.png[/img]

sample editor:
[img]http://popez.org/~wolke/hydrogen/images/sampleeditor2.png[/img]

pablomme
Offline
Joined: 04/17/2010

Woah, cool! I'll sure check it out.

I think it would make sense if the global 'mode' determined if you record a single pattern or the whole song, there shouldn't be a need for a separate setting. Or maybe I'm missing some potential use of having separate settings, I don't know.. but it would perhaps be more intuitive the other way?

Many thanks!! I'll report back when I try it.

mauser
Offline
Joined: 03/30/2010

I'm voting for the remove of the selection, as pablomme said. It would be easier if in pattern mode we record to patterns and in song mode whole songs. This saves space and the interface gets not too overloaded..

pablomme
Offline
Joined: 04/17/2010

Ok, I got a few segfaults. Then I compiled in debug mode and didn't get any anymore (??). Should I try gdb?

The only thing that goes wrong in debug mode is that some notes, I think exclusively at the beginning of a pattern, are sent to the wrong pattern (e.g. to the beginning of the next one).

I also get the following error on the terminal, don't know if it's relevant:
(E) int H2Core::findPatternInTick(int, bool, int*) [findPatternInTick] tick = 3648. No pattern found

As for more wishlist-type things, it would be very helpful to have a feature to delete the contents of all patterns, or even possibly to erase the pre-existing notes as you record on top, so as to ease recording a second take of a song.

BTW, the sample editor looks good!

wolke
wolke's picture
Offline
Joined: 03/30/2010

i have make some changes into rev 643 (new_fx_rack_and_sample_fun branche) . now the note length (midi note off) will recorded correct if you play an instrument into piano mode. its a little bit tricky because the sample length differs when you pitch an sample.

when do you get the segfaults? if you press the sample editor button?
i only get sometimes segfaults if i press this button.

>As for more wishlist-type things, it would be very helpful to have a feature to delete the contents of all patterns, or even possibly to erase the pre-existing notes as you record on top, so as to ease recording a second take of a song.

i thing the best would be an undo function in h2 :-).

pablomme
Offline
Joined: 04/17/2010

> when do you get the segfaults? if you press the sample editor button?
> i only get sometimes segfaults if i press this button.

The initial ones I got happened when I triggered the first midi note, just after opening hydrogen without doing anything else --song autoload was on, so my custom layout was correctly loaded first. This happened quite a few times (5 or so).

Then I tried starting to record before triggering any notes, and it segfaulted halfway through the first pattern. I don't recall if this was after having played the first note or not, though. This happened a couple of times too.

Finally I compiled with debug=1 with the intention of posting a backtrace or something useful, but the segfaults disappeared. I will try again with the latest revision this afternoon/evening.

Another thing I noticed which I forgot to mention is that sometimes the pitch of the samples played back as I played was wrong (one octave high perhaps?).

pablomme
Offline
Joined: 04/17/2010

Ok, I can reproduce the first segfault I described with 643. If the autoloaded song is in 'song' mode, there is no cursor (down-pointing arrow) in the pattern list when Hydrogen starts, which I assume indicates that the song position is undefined. Then select 'song' record mode if unselected, trigger a note and here is your segfault, I guess because you try to access an undefined variable/pointer to locate the position of the new note (even though I'm not recording).

I'll try to look for any other problems.

Edit:
Backtrace from gdb:
---
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x4292db90 (LWP 12369)]
0x08067f70 in H2Core::Pattern::get_lenght (this=0x0)
at libs/hydrogen/include/hydrogen/Pattern.h:63
63 return __lenght;
(gdb) bt
#0 0x08067f70 in H2Core::Pattern::get_lenght (this=0x0)
at libs/hydrogen/include/hydrogen/Pattern.h:63
#1 0x081a3dd1 in H2Core::Hydrogen::addRealtimeNote (this=0x9a9e320,
instrument=2, velocity=1, pan_L=1, pan_R=1, pitch=0, noteOff=false,
forcePlay=true, msg1=38) at libs/hydrogen/src/hydrogen.cpp:1866
#2 0x081cade1 in H2Core::MidiInput::handleNoteOnMessage (this=0x9b8d1a8,
msg=@0x4292d03c) at libs/hydrogen/src/IO/midi_input.cpp:212
#3 0x081caf48 in H2Core::MidiInput::handleMidiMessage (this=0x9b8d1a8,
msg=@0x4292d03c) at libs/hydrogen/src/IO/midi_input.cpp:65
#4 0x081bb24a in H2Core::AlsaMidiDriver::midi_action (this=0x9b8d1a8,
seq_handle=0x41e02120) at libs/hydrogen/src/IO/alsa_midi_driver.cpp:304
#5 0x081bc69e in H2Core::alsaMidiDriver_thread (param=0x9b8d1a8)
at libs/hydrogen/src/IO/alsa_midi_driver.cpp:137
#6 0x4111450f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7 0x410917ee in clone () from /lib/tls/i686/cmov/libc.so.6
---

pablomme
Offline
Joined: 04/17/2010

Another segfault, this I cannot associate with a specific action --I was using the horizontal scrollbar in the pattern editor.

Backtrace from gdb:
---
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x41bb0940 (LWP 12404)]
0x404688e9 in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
(gdb) bt
#0 0x404688e9 in QApplicationPrivate::notify_helper ()
from /usr/lib/libQtGui.so.4
#1 0x4047083a in QApplication::notify () from /usr/lib/libQtGui.so.4
#2 0x40246e61 in QCoreApplication::notifyInternal ()
from /usr/lib/libQtCore.so.4
#3 0x4046fe92 in QApplicationPrivate::dispatchEnterLeave ()
from /usr/lib/libQtGui.so.4
#4 0x404d8da8 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#5 0x405037ea in ?? () from /usr/lib/libQtGui.so.4
#6 0x4118a6f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#7 0x4118dda3 in ?? () from /usr/lib/libglib-2.0.so.0
#8 0x4118df61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#9 0x40271478 in QEventDispatcherGlib::processEvents ()
from /usr/lib/libQtCore.so.4
#10 0x40502ee5 in ?? () from /usr/lib/libQtGui.so.4
#11 0x4024552a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#12 0x402456ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#13 0x40247da5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#14 0x40468767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#15 0x080edcf6 in main (argc=1, argv=0xbfc63bb4) at gui/src/main.cpp:305
---

wolke
wolke's picture
Offline
Joined: 03/30/2010

hiho,
thx. think the first bug i can fix without so much trouble. can you reproduce the second bug (using the horizontal scrollbar) also into trunk version of h2?
i can not reproduce this bug in both versions. if you can reproduce this bug into trunk i will open a new ticked.

in the moment i make a small coding break. at first i will test the new features from the fx_and_sample_fun branch to get a feeling to them. think in 2 - 3 weeks i will do more development to this branch.
but the first feeling i get, is to have an undo function :-).
the second feeling is, to have a easy tool to share new h2 electronic songs.
after first test with the new features i have so much fun to create full songs into h2. and it would be cool if all people who makes funny sounds with this h2 version can share this music.

a small example what i mean.
http://popez.org/~wolke/hydrogen/demosounds/visco_space_test_song.ogg
all instruments are created from the 8 drum samples into an small h2 drumkit. no fx ore anything else.

pablomme
Offline
Joined: 04/17/2010

> can you reproduce the second bug (using the horizontal scrollbar) also into
> trunk version of h2? i can not reproduce this bug in both versions.

It was a one-off thing, I think. I tried again and even with your branch it wouldn't crash. If the backtrace doesn't tell you anything just ignore it.

> but the first feeling i get, is to have an undo function :-)

That would be great.

For doing different takes of a song, the erasing-while-recording feature still sounds appealing, though, and it would be a lot simpler to code up than a full-blown action-history system. OTOH it's not useful for anything but recording whole songs, really.

The best possible thing I can think of that one could have for song recording is a "punch-in" mechanism, where one defines an area (perhaps a series of patterns in the timeline) to re-record. Then you can playback from the beginning, play along, and only the patterns you've selected are overwritten.

Anyway, just throwing ideas for future consideration..

> a small example what i mean.
> http://popez.org/~wolke/hydrogen/demosounds/visco_space_test_song.ogg
> all instruments are created from the 8 drum samples into an small h2
> drumkit. no fx ore anything else.

That's interesting, it does sound like you have two dozen different samples.. cool!

wolke
wolke's picture
Offline
Joined: 03/30/2010

hiho,
the first bug should be fixed.
try rev 645.

pablomme
Offline
Joined: 04/17/2010

Thanks, I'll try that.

The second segfault I think I got from a bug in Ubuntu Intrepid's qt4 libraries, as described in https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/296973 - apparently there it produces random crashes. I've got a fix from the intrepid-proposed repo, so should not happen again (hopefully).

How about the notes going to the wrong pattern? Have you have a look at that? I suspect it has to do with svn594; you need to tell the lookahead code (or "lookback" code, rather) to look for the end of the previous pattern rather than the end of the current one.

pablomme
Offline
Joined: 04/17/2010

Yup, the segfault is fixed in 645. In song-record mode the midi event doesn't trigger a sound if no pattern is selected (I guess this is the fix), but that's not really a problem.

wolke
wolke's picture
Offline
Joined: 03/30/2010

hiho,
>How about the notes going to the wrong pattern?
??? :-) for the moment i dont know how i can fix this problem without to much trouble or produce other problems in transport.

>In song-record mode ....(I guess this is the fix)
yes !

i have make an other example song to see the potentialities of the fx and sample fun branch.
the example song use 13 samples. sounds a bit 80s :-).

demo mp3:
http://popez.org/~wolke/hydrogen/sample_fun_examples/fx_and_sample_fun_example.mp3

demo drumset:
http://popez.org/~wolke/hydrogen/sample_fun_examples/fx_and_sample_fun_test_library.h2drumkit

demo h2song file:
http://popez.org/~wolke/hydrogen/sample_fun_examples/fx_sample_fun_test_song.h2song

wolke

pablomme
Offline
Joined: 04/17/2010

>>How about the notes going to the wrong pattern?
> ??? :-) for the moment i dont know how i can fix this problem

See hydrogen.cpp at lines 1871-1873, introduced in patch svn594.

Hydrogen "lives in the future" (according to the patch's description), and then looks into the past when recording, to put the notes in the correct place. Problem is, when the frame it's looking for is before the beginning of the pattern, it assumes pattern-record mode and puts the note at the end of the current pattern, instead of at the end of the previous pattern.

I'm pretty sure this is the problem. If I knew C++ I would certainly have a go at fixing this, but I don't; funnily enough, I'm a Fortran programmer. lol

pablomme
Offline
Joined: 04/17/2010

Hey Wolke! There's a little problem with the compilation of your branch in the current SVN (674), it seems you are missing the hydrogen.desktop file:

scons: *** Source `hydrogen.desktop' not found, needed by target `/home/pablo/bin/hydrogen_wolke/share/applications/hydrogen.desktop'. Stop.

BTW, about your last demo, for some reason it reminds me of Scream Tracker 3 demos I heard back in 1995-ish, but I don't know why -it's certainly not the 22kHz 8-bit sound quality my soundcard had back then! Anyhow, I'm still impressed by the versatility of your modifications.

james
Offline
Joined: 04/17/2010

hi, nice brache.

wolke
wolke's picture
Offline
Joined: 03/30/2010

thx.
i have forgot to check in the files.
think, later i will check them in.

wolke
wolke's picture
Offline
Joined: 03/30/2010

hiho,
try rev 676

pablomme
Offline
Joined: 04/17/2010

Wolke, I have attached a patch for the issue with notes going to the wrong pattern. It works without problems, but I'm a complete newbie to C++ (and to programming hydrogen by extension) so let me know if I've done something stupid.

I've done the following:
- grouped together pattern-record mode and song-record mode code for detecting target pattern and column of new note, clarifying the conditions for falling into each case
- used a different method for getting the pattern index in song-record mode (I don't see why one would need a loop?)
- fixed the note-going-to-the-wrong-pattern issue in song-record mode
- prevented calculation of quantized position if not quantizing

The patch applies correctly to your branch at SVN 681.

wolke
wolke's picture
Offline
Joined: 03/30/2010

cool :-))
seems that it works perfect.
i will make some other tests, but i think we can check in your patch.
thank you.

>so let me know if I've done something stupid.
i am a programming newbie too (3/4 year h2 coding). so, i can only say this branch is experimental and exactly the right place to learn programming by doing :-).

pablomme
Offline
Joined: 04/17/2010

I've done a test recording and I've noticed a couple of things.

During recording I get hydrogen stuck at random times for a fraction of a second. This is inconvenient: it's hard to get back in sync with the metronome, and anything I play during the lock-up ends up on the same column in the target pattern. This might not be a hydrogen problem.

I have modified /etc/security/limits.conf, and I'm running hydrogen using chrt 90, so hydrogen has real-time priority. I'm using the ALSA driver with a buffer length of 1024 samples in four periods at a rate of 96kHz, using a dmix virtual device to avoid locking the audio (everything configured in /etc/asound.conf). Any suggestions to avoid the lockups, or for real-time recording in general?

As for the editing, it would be very useful to be able to move notes within a pattern (and within the same instrument.. or perhaps not). Is this implemented?

From what I can tell, left-clicks add and remove notes, and right- and middle-clicks are for modifying the stop-note endpoint. It should be possible to use either right- or middle-clicks to move notes within a pattern (drag-n-drop style) without breaking existing bindings. How does this sound?

wolke
wolke's picture
Offline
Joined: 03/30/2010

i found some problems too.
e.g. after patching i can not record an pattern at a second position in song. only at the first position. in moment i thinking about this effect. maybe its a feature to prevent chaos recording. also i have a bit more latency. i am not sure if this is a h2 problem, because i use my usb midi keyboard. later i have time to use my old midi midi keyboard plugged into a rme multiface. mostly i have less latency problems with this setup. than i make more tests.

if i play keyboard i always use 256 frames with 2 periods buffers (multiface only work with 2) and 44.1 kHz sample frequency.

>middle-clicks to move notes within a pattern (drag-n-drop style) without breaking existing bindings. How does this sound?
sounds good. but have mac osx users middle clicks.
right click is apple-key + mouse button, but middle click.... ? i don't know.

pablomme
Offline
Joined: 04/17/2010

> after patching i can not record an pattern at a second position in song. only at the first position

I can't think of any use case for recording the second instance of a pattern in a song (the notes go to the first instance anyway). Can you think of any?

> if i play keyboard i always use 256 frames with 2 periods buffers (multiface only work with 2) and 44.1 kHz sample frequency

I'm going to give UbuntuStudio 8.04 a try, and use the rt kernel. This should be the optimal setting. Now if I could get my graphics card to work without restricted drivers..

> sounds good. but have mac osx users middle clicks

Or even better, how about left-click drag-n-drop? That does nothing right now, and is the most intuitive way.

dvelazquez
Offline
Joined: 04/17/2010

I tried to download
'svn co http://hydrogen-music.org/svn/branches/new_fx_rack_and_sample_fun fx_and_sample_fun' but I think you moved it or deleted from the server.

What does this means?
svn: Server sent unexpected return value (405 Method Not Allowed) in response to PROPFIND request for '/svn/branches/new_fx_rack_and_sample_fun'

I'd like to record a song!

pablomme
Offline
Joined: 04/17/2010

The repository was moved. Use "http://svn.assembla.com/svn/hydrogen/branches/new_fx_rack_and_sample_fun" instead. The song-recording mode doesn't work quite right yet. If you apply the patch in my previous post it will work OK, though.

Was there a problem with the patch, in the end? I'd like to get it into the branch at some point, I wouldn't mind trying to polish it a bit if needed.

wolke
wolke's picture
Offline
Joined: 03/30/2010

hiho,
sorry! i have spend my first priority to the note off implementation. this works very well now. also you can edit the note off release into the instrumenteditor.
today i test your patch again and found out again why i don't apply the patch.

after patching h2 records into not as song activated pattern. the patch recorded for each bar into a new pattern. imo, this is not so good resp. i don't prefer this method.

if song recording activated h2 only have to recorded into activated pattern in song editor. so you can arrange a song with several repetitions and into every
repetitions you can record some details.
wolke

pablomme
Offline
Joined: 04/17/2010

> after patching h2 records into not as song activated pattern. the patch recorded for each bar into a new pattern. imo, this is not so good resp. i don't prefer this method.

Are you saying that my patch breaks pattern-record mode? Else I don't understand what you mean...

wolke
wolke's picture
Offline
Joined: 03/30/2010

no :) pattern mode is ok. i mean the record song mode in song-editor song mode.

pablomme
Offline
Joined: 04/17/2010

Song-record mode should record several patterns one after the other, and pattern-record mode should record a single pattern, looping over it and letting you add notes at each repetition.

Is this not what happens after applying the patch? (This should be the behaviour too before applying the patch, which should only fix a glitch when switching patterns.)

wolke
wolke's picture
Offline
Joined: 03/30/2010

i try to explain what i mean!
you arrange a song.
Bar: |1 |2 |3 |4 |5 |6 |7 ......
Pat.:|p1 |p2 |p1 |p2 |p3 |p1 |p2

if you now record a song after your patch, all notes you recorded eg. at bar 7 are recorded into pattern no. 6 or 7 i am not exactly sure if you begin at 0 or 1. but at bar 7 into my song pattern 2 is arranged and not pattern 6 or 7. that's what i mean. the song recording after patching use the bar nuber for the input pattern. if you recordet at bar 100 you need 100 pattern???

imo, it's important that song recording also follow existing arrangements and not only produce a linear pattern to bar arrangement. what happens after patching.

pablomme
Offline
Joined: 04/17/2010

I see, now I understand.

This should not be very relevant to the song-recording functionality, where you would really want each pattern to be unique (at least for the use cases I have in mind), but this was not an intended effect of the patch. I'll see if I can fix it.

wolke
wolke's picture
Offline
Joined: 03/30/2010

>where you would really want each pattern to be unique
if you want this, you can arrange a linear peace of song by clicking into song editor. everybody arrange on different ways. eg. hydrogen allows to play simultaneous pattern. so you can arrange songs with a simple 1-2,1-2,3... pattern arrangement and for some extranotes you can arrange some parallel pattern on different places into song.
imo, this is one off the things what make h2 so powerful.

also in moment if parallel pattern playing h2 records into the first pattern. not into all parallel pattern together. imo, that's very important too.

pablomme
Offline
Joined: 04/17/2010

The attached patch should work as intended now.

There is a further issue with the lookahead correction: if in song-loop mode, any note played at the loop boundary will *not* be moved over to the end of the song. That should be easy to fix, though.

>>where you would really want each pattern to be unique
>if you want this, you can arrange a linear peace of song by clicking into song editor.

Yup, that's what I do.

>everybody arrange on different ways. eg. hydrogen allows to play simultaneous pattern. so you can arrange songs with a simple 1-2,1-2,3... pattern arrangement and for some extranotes you can arrange some parallel pattern on different places into song

Yes, and that's very useful, but not really applicable to song-record mode. Song-record mode is equivalent to playing an actual drumkit and recording the resulting audio (only a lot more convenient :) ), which corresponds to a linear timeline. Of course song-record mode may have other uses, but this one is what I was thinking of when I asked for the feature.

In any case, the problem is fixed in the above patch.

>also in moment if parallel pattern playing h2 records into the first pattern. not into all parallel pattern together. imo, that's very important too.

That is quite a complex thing. One could trivially forward the recorded notes to all patterns that are played simultanously, but that is hardly of any use (just copy the pattern to achieve the same effect). More generally, one would want to record to a given pattern at each point in the playlist, and to do that there should be a mechanism for complex selections of multiple patterns in the playlist. And I'm not sure that functionality would be all that valuable...

wolke
wolke's picture
Offline
Joined: 03/30/2010

hey,
i have apply your patch. thx, works perfect for me:-). later i will commit them into branch.
wolke

pablomme
Offline
Joined: 04/17/2010

Thanks!

To round things up, here's another patch which:
- unifies song/pattern-mode recording and playback, as per one of my comments at the beginning of this thread and one of mauser's. That is, the global 'mode' determines what to do with both playback and recording.
- moves the recording button from the pattern editor to the player panel, which is IMO where one would expect to find it. The record button behaves more or less like Ardour's: you toggle it before pressing play, and when playback+recording stops (or pauses), the button pops out. The record mode flag is not stored in the XML preferences any more, as it probably shouldn't.

Let me know what you think.

BTW, I've attached the patch as exported by git. I can produce a tarball instead if you prefer it.

wolke
wolke's picture
Offline
Joined: 03/30/2010

hi, how can i bring in the patch with the binaries. 'patch -p1

pablomme
Offline
Joined: 04/17/2010

Ok, it's simplest if I attach a tarball with the changed/new files instead.

wolke
wolke's picture
Offline
Joined: 03/30/2010

hey, thx.
i checked in your patch. see rev 781.
looks very much better than before.

maybe one thing can be improve. the rec button also toggle off if you press the play/pause toggle (keys space bar) button. normal e.g. on tapedeck you press record and than record only release if you press the stop button. toggle play/pause don't release the rec button. i prefer if the rec toggle button working like an tape deck button. it save time and clicking.
what do you think?

pablomme
Offline
Joined: 04/17/2010

Thanks!

The pause behaviour was intentional. I tried popping out the rec button on stop only and on stop and pause, and the latter felt more convenient. But we can change it if you prefer it the other way around.

I see you've changed the background colour of the rec_on button to red, but there's no antialiasing on the circle and rec_over icon flashes blue. I've attached two possible alternative sets of buttons, one with a black circle on red background (like the one you have done) and one with a red circle on blue background (which I think was the original colouring of the little pattern record button). Pick the one you like best!

wolke
wolke's picture
Offline
Joined: 03/30/2010

>The pause behaviour was intentional. I tried popping out the rec button on stop only and on stop and pause, and the latter felt more convenient. But we can change it if you prefer it the other way around.
think..., i am not sure in moment.

also i think about punch in / out.
all transport controls can control by mmc. mmc allow to toggle punch in and punch out.
maybe we make it possible that you can toggle the rec button if sequencer is in status running. than you can also do a punch in and punch out with the mmc control.

thank you for the really quick produced buttons. do you use gimp? i always need hours to create or change buttons :-).

i like both sets! a little bit more the red_on_blue set. so i will add this one.

pablomme
Offline
Joined: 04/17/2010

> also i think about punch in / out. all transport controls can control by mmc. mmc allow to toggle punch in and punch out. maybe we make it possible that you can toggle the rec button if sequencer is in status running. than you can also do a punch in and punch out with the mmc control.

The punch in/out functionality is most useful if you can decide what you want to re-record beforehand, rather than by pressing a button during playback. The reason is that one needs to be ready to play, and preferably to be playing along to the previous part of the song.

For a mockup of what something like that may look like, see the attached PNG. One would select a section of the timeline, and then start the playback at some point earlier. Any MIDI outside of the boundaries is discarded, and only the higlighted section would be recorded. Thus, one can play along to the song and be warm for the section you need to repeat.

In addition it would be very useful to have a delete+record mode to entirely replace the contents of the patterns with the new stuff. I had a go at coding up a delete+record mode (without the punch in/out selection thing) this weekend, but couldn't get it to work because it would delete the notes I had just recorded as well as the old ones, and I don't know how to avoid that...

> do you use gimp? i always need hours to create or change buttons :-).

Yep, I use gimp. But I cheated, I already had the button backgrounds and the circle symbol, so it was just copying and pasting :-)

wolke
wolke's picture
Offline
Joined: 03/30/2010

the image looks great.
it looks like a classic punch in / out function. super!! if you have time and passion to implement this please please please do it :-).

for my personal use it would be good enough if you can toggle the rec button over mmc footswitch. normally i use a midi keyboard to record the pattern. i have no external drum controller for the moment. so it's useful for me if i can record a new instrument e.g. hihat on any point into song by pushing the rec-mmc-toggle-foot-controller. so i can try to play during h2 playback and found out a good rhythm and than at the right moment i press my foot-controller to record the new notes. hope you understand what i mean.

its true, all this can do with a classic punch in / out function. but for my small mini punch in / out function we only have to make the rec button switchable during playback.

delete+record! this sounds a bit more complicated. also a bit dangerous without a undo function. imo, the first step is a small undo function. only for the patten and song editor. maybe than also the delete / overwrite problem is solved. if you record a bad track you only have to press ctrl+z. and you can restart recording.
wolke