'Create Phrase' always enters its own C4 note in the first lin

Any way to un-do this ‘helpful’ action? (unhelpful for me because I always need to cut it)

Any way to un-do this ‘helpful’ action? (unhelpful for me because I always need to cut it)

Renoise does not have that ability (there is no option that prevents creating that note).

Using a tool it would be possible to make a fix, but it would not be very elegant, because there is no notifier to notify when Renoise adds a new phrase (that particular act).

The only thing that occurs to me is to do 4 checks:

function auto_clear_phrase()
  local song = renoise.song()
  if ( song.selected_phrase ) then
    if ( song.selected_phrase_index == #song.selected_instrument.phrases ) then
      if ( song.selected_phrase.number_of_lines == 32 ) and ( song.selected_instrument:phrase(song.selected_phrase_index):line(1):note_column(1).note_value == 48 ) then --48 = C-4
        local state = false
        for ln = 2, 32 do
          if not song.selected_instrument:phrase(song.selected_phrase_index):line(ln):note_column(1).is_empty then
            state = true
            --print(state)
          end
        end
        if ( state == false ) then
          song.selected_instrument:phrase(song.selected_phrase_index):line(1):note_column(1):clear()
        end
      end
    end
  end
end
---
function auto_clear_phrase_obs()
  local song = renoise.song()
  if not song.selected_phrase_observable:has_notifier( auto_clear_phrase ) then
    song.selected_phrase_observable:add_notifier( auto_clear_phrase )
  end
end
auto_clear_phrase_obs()

This is a test run. Here check 4 things:

  1. that the selected phrase is the last.
  2. that the selected phrasehas 32 lines (default number of lines).
  3. that the note placed on the first line of the first column is a “C-4”.
  4. that there is no other data in the first column, from line 2 to line 32.

Only then will the function erase the note C-4.This could be wrapped in a tool for the drop-down menu within the phrase, to activate or deactivate it.

Personally, I do not like the result, since it eliminates something that “in theory” should not be there. The best thing would be that Renoise had a panel of options for the new phrases, with some predefined characteristics, similar to the song:

  1. Include first note (C-0 to C-9 or empty)
  2. Select the number of lines (01 to 512)
  3. visible note column number (01 to 12)
  4. LPB value (1 to 256)
  5. Etc?

Regarding the note C-4, I suppose it is added so that the phrase sounds like “something” if it is triggered from the pattern editor.

I would’ve thought Raul (not that this requires a huge debate mind you, how picky is this topic?), that if the user clicks on the last phrase created and it happens to have a single C-4 note in column 1 and at 32 lines long (but maybe other notes in other columns), I would think that all your if statements would become true so it would then proceed to delete that C-4 note (which is not really what the user wanted.) Sure, rare, but it can happen. Personally I would’ve wrote two shortcut keys for creating/inserting new phrases with a C-4 ‘note deleter’ incorporated. Next up write an offline ‘RAS’ tool where the user selects a style say ‘waltz’ or ‘rock’ with a chord progression and the tool proceeds to write out a pattern… Nah, even better write a Renoise Composer System ‘RCS’ where the user selects a style, hits a big button and the tool writes out a complete original song complete with melody…

I would’ve thought Raul (not that this requires a huge debate mind you, how picky is this topic?), that if the user clicks on the last phrase created and it happens to have a single C-4 note in column 1 and at 32 lines long (but maybe other notes in other columns), I would think that all your if statements would become true so it would then proceed to delete that C-4 note (which is not really what the user wanted.) Sure, rare, but it can happen. Personally I would’ve wrote two shortcut keys for creating/inserting new phrases with a C-4 ‘note deleter’ incorporated.

IMO, this is an unimportant matter (the happy note C-4). I have contributed the code to see what I could think of to solve it.

Maybe a function that creates the clean phrase (instead of pressing the + button to add a new phrase), and triggered from a specific keyboard command (which should be recorded by the user), would be a cleaner solution, instead of activating a “tester”

In the function that I have written, I could also check the rest of the columns of note (2 to 12, which should be empty). But for what? Particularly, I do not like that the function is checking every time you select a new phrase. At least, in the most common cases it will work.

At least here there are 2 solutions, a somewhat dubious check function and another function that creates the clean phrase (it is much simpler), but the user will have to control it by means of keyboard commands.It is almost better to erase the C-4 note directly and that’s it. Unless the user creates more than 100 phrases all the time.

Having said that, I would like it if the phrases had a panel of options, to configure some things.This panel could be here: Renoise Menu: Song/Song Options…/Phrase Options

Anyway, for a long time no one answers. So I doubt that zooterman appears around here…

…Next up write an offline ‘RAS’ tool where the user selects a style say ‘waltz’ or ‘rock’ with a chord progression and the tool proceeds to write out a pattern… Nah, even better write a Renoise Composer System ‘RCS’ where the user selects a style, hits a big button and the tool writes out a complete original song complete with melody…

Do you have something in mind that you are going to write? :lol:You already know that my thing is to make virtual pianos and things like that…But for an RCS, you have the math.random to start :slight_smile:

Do you have something in mind that you are going to write? :lol:You already know that my thing is to make virtual pianos and things like that…But for an RCS, you have the math.random to start :slight_smile:

Not me Raul, might need a bit more than math.random (unfortunately) :slight_smile:

Could I just add a quick something though to that (now virtual) ‘RAS’ thread? Danoise said that the people mainly involved in the initial part of that thread (Joule/Renoised/Vic/Yourself) couldn’t agree. But just to clarify it was more of ‘anything Joule/You/Vic/Danoise come up with Renoised would vehemently disagree with’. I knew Raul pretty much within a couple of Renoised posts what Renoised wanted from his ‘RAS’ (I also knew what he was like as a person, certainly how he portrayed himself here anyway.) I assumed that most other people knew as well. He basically wanted ChordPulse (or something similar) integrated into Renoise. Now I haven’t done as much Renoise/Lua programming as say you, Joule and Danoise. But I pretty much reconciled myself that it was a bit heavy to do that (for all sorts of reasons as we are aware) in just plain Renoise/Lua. Maybe through VST whatever, but it is still a difficult (and large) undertaking. Look, the way I thought about it (if I was so inclined) is that you get just two pieces of information from the user. The (simple, no complicated chords yet!) chord progression (over 4 bars C-Amin-F-G say) and the style. Fix the instruments, (in fact fix the style as well! In fact don’t even write an interface) just have a kick, bass and pad (try and make it as simple as possible.) That’s it. It is up to your magical Renoise/Lua function(s) to generate a pattern from that data. (This would not be any use to Renoised. He wanted a more ‘realtime/interactive’ approach.) Always start programming with the most stupid simplest idea (no matter how crap) and simplify the ‘main engine or core algorithm(s)’ (which in the case of an accompaniment system is how the computer selects the notes for a bass and pad from a template rhythm (which let’s face it is the interesting aspect of the whole thing)) then (if possible) go up from there. I do believe that Danoise/Joule/maybe yourself and maybe even Vic could’ve started to think and discuss this in a logical manner (so long as you all agree on the basic principle of what you are doing.) Anyway, blah, blah blah Raul, it is all water under the bridge… Do what Danoise has done and go to the beach :slight_smile:

@4Tey. Maybe in the case of the RAS, what happened is that a person, who is no longer here, asked for something, and after the passing of time there was no real result (a tool or a will on the part of the Renoise team) and anger.Honestly, I do not think there would have been any problem that some users agree or disagree. I think that’s not what happened. Also, disagreeing is not a problem. The thread was not closed for that cause. And if he gave that impression, it was more an excuse.

For me, the main problem in that matter was to create a “database” for the different accompaniments and others things, which was where the work was. As no one is willing to waste time on these things, and also, would not be fully integrated with Renoise, the result would not be usable, and less for the creator of the thread.

Creating a tool that automatically adds patterns and notes according to certain standards is feasible. But there is no direct relationship between pattern and instrument. So, in the end, part of the process has to go through the user’s hands, and that breaks with the “automatic process”. For me it is easier to have a tool to clone several patterns in the pattern sequence and write the notes myself. The process is very fast. A little automatic tool would be even slower, since it will never be 100% integrated, it’s like a strange addition.Oh by the way. Doing this kind of tool does not free you from certain mistakes either. In the end, making an elaborate tool has its risks. As the tool, or Renoise return some error, it loses all interest, and in a situation where there is no support, better to build things that you are more sure of not shitting it…

I have already made a few tools with my own GUI. I can tell you that having to control a secondary GUI for the data to fall into another GUI (Renoise) is a bit complicated to control. You are not controlling Renoise, but a window tool. That breaks the workflow. For a novice who does not know how to put notes, it would be like an added difficulty, not to mention that window tools usually have a personal touch of the author.So, yeah, better go to the beach! :smiley:

Better to leave this topic of RAS (or RCS?) and not derail the thread…

Maybe in the case of the RAS, what happened is that a person, who is no longer here, asked for something, and after the passing of time there was no real result (a tool or a will on the part of the Renoise team) and anger.Honestly, I do not think there would have been any problem that some users agree or disagree. I think that’s not what happened. Also, disagreeing is not a problem.

I agree Raul, disagreeing isn’t a problem…but it all depends on how the people involved handle the disagreement? Renoised found people who even slightly disagree with his ideology troublesome. You have to be able to agree to disagree. For hypothetical example, if I said to you that I wouldn’t personally use Renoise for orchestral composition, you’d probably come back and say ‘Hey, no 4Tey, you talk utter bullshit, Renoise can be used for classical orchestral composition!’ And I’d say I agree with you. You’ve interpreted what I said as: ‘You can’t use Renoise for classical orchestral composition.’ Whereas what I said was: ‘I’d personally not use Renoise for orchestral composition.’ I didn’t say you or other people couldn’t though. Small things like this Raul that make the difference. Reading and interpretation and twisting and turning what people write/say to form argument (as demoed by Vic to extreme in the Flat Earth thread.) It’s difficult. OTOH, you could of interpreted correctly what I said in the first place, and then try and convince me that Renoise is perfectly suited to writing John Williams movie soundtracks. Then I could come back and argue against. And so on and so on, until one of us just lets the other have the last say on the matter (to make it look as though that person has won the argument.) The human race Raul, I try not to get involved (and fail), go to the beach instead :slight_smile:

Taking the ‘RAS’ thread seriously (what parts you could) the other reason I believe (again you can disagree vehemently if you like Raul) why really nothing came from it is because the subject matter to say the least can get complicated (depending on how deep you go into computer generated music helper algorithms and such. You are trying to get a computer to give the illusion that it is ‘thinking’ about music.) Another hypothetical example. Let’s say I want to write a tool that exports say MusicXML format from Renoise. I start a thread in this forum asking for help. How many people would reply? Yourself? Danoise? Maybe Joule? But do I expect them to drop everything, start writing functions in lua that accomplishes this for me? Nah. I don’t. I know how much time that would take (and even if it does work out to be a small amount of time, it is still damn annoying.) Similar with the ‘RAS’ thread. Renoised wanted results like yesterday. Pretty much everybody else had worked out the magnitude of the task and was using the thread as a nice discussion lounge. Drinks around, comfy chairs, a little jazz in the background. I don’t mind discussing computer chord generating algorithms…no nothing about the subject, but doesn’t matter (wearn’t going to actually code that complexity anyway), it is just an informal relaxing lounge atmosphere. Fine by me Raul, I didn’t mind :slight_smile:

As for off topic derailing threads, I’m sure dBlue would just delete the offending posts Raul.

Oh yes, I use Renoise for orchestral music (also electronic, new age …). Personally, I do not like the experimental IDM style (not the style itself, but the results that emerge from experimentation in general). Renoise does the same thing as other DAWs, including some things that others can not, and vice versa. It is clear that it has to do with the choice and capacity of each person, both the style and the choice of the DAW.On the old thread of RAS, nothing matters now.

However, thanks to the fact that I have been able to dig a little deeper with LUA and the Renoise API, I have realized that it has many capacities and certain limitations. These limitations, for example, prevent making a pianorroll as a window tool in conditions, or a more or less automatic accompaniment program (based on pre-established data, not mathematical calculations and strange algorithms). In fact, I do not stop running from the notifiers myself, because on rare occasions they cause errors, supposedly because they do not work in real time.For me, a tool with errors (which fails) is useless, because it is not reliable. It is not the first time that I create a tool of my own and I end up forgetting it. There are so many tools with errors in these forums that it is worrisome, as to waste time on great tools for consumer tastes.

Even for the solution of removing the note C-4, the selected_phrase_observable must exist. But this method involves checking other things so that the tool is as integrated as possible (that the user continues to handle Renoise, not a button of a floating window). Even so, the best result would be to create the phrase from the tool, copying the native features of a newly added native phrase. That is to replace one thing with another, instead of applying a patch. In the end everything is a mess. Therefore, zooterman asked something, and was ignored for more than 40 days, regardless of the importance of what he asks.

Maybe this issue of the C-4 note is the trigger to review the editor of phrases, to see if it can be done better.I do not like how they are arranged or how the phrases are named. It is not possible to group them, reorder them and things like that. Operations that you take for granted, such as creating a new phrase, and having the pattern empty (without C-4), with nothing to disturb you to start…

These limitations, for example, prevent making a pianorroll as a window tool in conditions, or a more or less automatic accompaniment program (based on pre-established data, not mathematical calculations and strange algorithms). In fact, I do not stop running from the notifiers myself, because on rare occasions they cause errors, supposedly because they do not work in real time.

This must be fake news, surely? :wink: A piano roll can be done. It won’t have a resizable window or keyboard modifiers, but other than that most standard things are technically possible. An automatic accompaniment system could also be done, depending on what you mean by that. An arrangement following chord inputs in realtime (or better and much easier: offline), for example.

And as far as I remember, I’ve never yet encountered a notifier that didn’t work in a predictable way.

Esto debe ser noticias falsas, ¿no? :wink:

No, I do not dedicate myself to posting false news. If I affirm a thing it will be for some reason, and I could be wrong. I still think that it is not possible to do “a pianoroll in conditions”, I have not said that is not possible to make a “pianorroll” (in fact we already saw one in a fairly advanced video). And in conditions it means that it is worthwhile and easy to control. The fact of not having zoom already removes all the charm, not to mention the limitation with the control of the mouse, which only accepts a type of click, there is no difference between the left, right or central clip, at least, far as I know). “A pianoroll” can mean many things. We put a vertical virtual piano, and a few blocks to the right so that they insert/clear notes in the pattern editor and voila, done pianoroll. But that will not be used by anyone.Also, one thing that we do not usually comment on is the fact of controlling a floating window. To make it look integrated, you should have all the most used keyboard commands “copied” from Renoise, otherwise, something seems to be missing.

Regarding notifiers, the fact that they have a delay in time limits their use in more extreme cases (it will be predictable as you say, but that does not prevent it from being delayed, and that limits its use). This can return operational problems, which may not have to do with the notifier itself, but what it has to return (the notifier works, but “sometimes” does not return what it has to return because it is not in real time, and if something else depends on it, it may not work in specific cases).Yes, they are minor cases at high speeds, but you have to take them into account.

Regarding an automatic accompaniment program, I’d like to see it working. Let’s see how you link the pattern with the instrument so that it sounds like something, that it’s automatic. Both the blocks of notes to be inserted (or phrases) and the instruments used should be predefined. In the end you waste more time preparing these things than programming code.When I do that, I prefer to be composing music, not waste time on these tasks.

Having said all this, I am very surprised that there is not yet a pianorroll tool or an accompanying program if they are tools to use in conditions. I guess it is not possible to prepare them well so that the user does not bombard you with requests because “something” is missing.

In the end you waste more time preparing these things than programming code.When I do that, I prefer to be composing music, not waste time on these tasks.

Unfortunately most of the time Raul, a computer program generally consists of more data (and the preparation of it) than just writing logic code. Shame I know.

The other I didn’t get about Renoised is didn’t he have access to Cubase? Did he not say that that had an accompaniment system in it? In other words what real difference would it of made if a system was nicely integrated into Renoise? Answer not a lot apart from some convenience? I’ve used the demo version of ChordPulse. I’m not a particular brilliant musician and I suspect Renoised wasn’t/isn’t either, so if I can’t really get anything from it…(sure it helps quickly hear chord progressions)…but you still have to have some musical integrity (and still do a lot of work afterword.) This is another reason Raul why I didn’t bother. If it was integrated into Renoise suddenly Renoised would’ve been a super fantastic amazing musician? You’d have to write a pretty damn good accompaniment engine. I put it more into the category of research/AI.

@4Tey.In the end, it does not matter why or why a person want an accompaniment system. In the end we ask ourselves if it is possible to do it (in the field of programming), what the road would be, how many solutions are possible, and even after building it, we wonder if it is useful enough, or does it really serve a general purpose.

The fact of entering rhythms automatically so that the user can play live can be feasible by adding patterns in the sequence and in them insert notes that trigger phrases, before the user gets to reproduce those patterns. But those phrases will have to be configured within an instrument. I guess it would be the simplest and cleanest thing. Either you make a tool that has many instruments with its samples and phrases, or you manage to enter those phrases into the instruments to be able to trigger them, and the phrases must necessarily be linked to a type of instrument. I do not know to what extent this would be automatic, especially if we consider using VSTi instruments as well (I mean that the user should not make additional steps, but, is no longer automatic). So, basically what is it about? Of having a prepared library of accompaniment rhythms for direct use and for specific instruments? Then you press a style button and that works automatically for live recording?I still have my doubts about mathematical programming. Following the sequence, the program can change phrases automatically, according to the index of the sequence, and the ability to change style on the fly, at least one of two patterns before. It is probably necessary to make a mathematical formula within the range between 1 and 1000 to know which phrase or phrases to shoot within each pattern in the sequence.

It would not be easier to manually write 4 patterns on a track to establish a rhythm style, then clone those 4 patterns “to infinity” with a basic cloning tool, and you’re done? So you could manipulate each accompaniment pattern to your liking, adjust the rhythm at certain points. Well, then you think, it would be more fun to have a panel full of style buttons, press one of the buttons and automatically add the notes “magically”, linking them with the selected instrument.We could be like this all day, commenting on these things. But let’s see who is the brave who spends his time putting together a well-defined library of styles (instruments with phrases I supose) to use it in a specific tool.

Now you can come or another user and say, no, you do not need all this, it is possible to do it in another way. But nobody starts to program. Why will it be?

Ah! Yes it’s come back to me now Raul about that thread. I see, you see it as a live playing auto accomp system via instrument/phrases (and you get Renoise via phrases to do simple transposition, but you’ve still got to map phrase note style in. Okay.) Whereas I initially thought about it as similar to ChordPulse, you just give a time line of the chord progression (via some simple interface) that you want and click ‘Generate accomp’ and it maps the accompaniment into a set of tracks/patterns directly. With that system (like ChordPulse) you can’t hear the chords until the sequencer has actually passed through it (i.e. you are playing it back.) Whereas you are seeing it as a like ‘single fingered’ Yamaha chord instant feedback of what that chord sounds like played through a style. Going out on a limb (I don’t know) but I would imagine that your system Raul is more difficult to implement (even before you get to the quality and manual generation of the style data. Both ways have that problem though.) What I’m not sure about is how that would be managed…isn’t that quite complicated?..but no it doesn’t matter Raul. What I would do personally is no style at all. It’s just say a kick on every beat (acting as a metronome) and just map the chord that the user has specified and probably the most difficult part of it is just the calculation of a bass line (but even that (for me) could be simplified to just the note.) Talk about plain Jane when it comes to ‘style’. Mind you you are probably already pretty much done that with both your own and Joules Chord tools anyway. Fair enough Raul, more time at the beach :slight_smile:

The only problem i’ve stumbled upon with an offline system (like chordpulse) is how to remap phrase voices if the figure contains three pitch classes, but you want a four voiced chord. Or vice versa.

  1. If the user has to make different versions of the same ‘figure’, depending on if a 3, 4 or 5-voiced chord is being played, it becomes way too tedious constructing the phrases in the first place.

  2. One cheap ‘solution’ could be to only use the three top-most voices, and settle for that. Perhaps the result is good enough even on larger chords, since the bass is always present. I haven’t tried it in practice.

  3. Making all figures, say, 4-voiced and just skip/double one of the ‘voice channels’ if it’s another type of chord would break the figure too much.

  4. Another simple solution would be to remap voices according to how many chord-steps from the fundamental a note is. This has the drawback of making chord figures more dense if it’s a 5-voiced chord, while triads become more open. You probably want the opposite, musically.

I’m happy on any input on this particular dilemma :slight_smile: I’m not sure how yamaha’s handling it.

PS. Imagine you have a picking figure spanning over two octaves to understand the dilemma.

Personally joule you’ve only got to start looking at say the source code/engine in Improv-visor -> https://www.cs.hmc.edu/~keller/jazz/improvisor/ to know that it is quite deep (or can be) how the computer starts selecting the chord voicing (in jazz as well ouch). Unfortunately I couldn’t possibly begin to answer your question/dilemma joule.